CMakeLists.txt 1.7 KB
Newer Older
Joshua Warner's avatar
Joshua Warner committed
1

2
# Tests ========================================================================
3

4 5
if(BUILD_TESTING)
  include(CTest)
6

7
  if(EXTERNAL_CAPNP)
8 9
    # Setup CAPNP_GENERATE_CPP for compiling test schemas
    find_package(CapnProto CONFIG QUIET)
10
    if(NOT CapnProto_FOUND)
11 12 13 14 15 16
      # No working installation of Cap'n Proto found, so fall back to searching the environment.
      #
      # We search for the external capnp compiler binaries via $CAPNP, $CAPNPC_CXX, and
      # find_program(). find_program() will use various paths in its search, among them
      # ${CMAKE_PREFIX_PATH}/bin and $PATH.

17 18
      if(NOT CAPNP_EXECUTABLE)
        if(DEFINED ENV{CAPNP})
19 20 21
          set(CAPNP_EXECUTABLE "$ENV{CAPNP}")
        else()
          find_program(CAPNP_EXECUTABLE capnp)
22
        endif()
23
      endif()
24

25
      if(NOT CAPNPC_CXX_EXECUTABLE)
26
        if(DEFINED ENV{CAPNPC_CXX})
27 28 29 30 31
          set(CAPNPC_CXX_EXECUTABLE "$ENV{CAPNPC_CXX}")
        else()
          # Also search in the same directory that `capnp` was found in
          get_filename_component(capnp_dir "${CAPNP_EXECUTABLE}" DIRECTORY)
          find_program(CAPNPC_CXX_EXECUTABLE capnpc-c++ HINTS "${capnp_dir}")
32 33 34 35
        endif()
      endif()
    endif()

36 37 38
    set(CAPNP_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
    #TODO(someday) It would be nice to use targets instead of variables in CAPNP_GENERATE_CPP macro
  endif()
39

40
  # Sadly, we can't use the 'test' target, as that's coopted by ctest
41
  add_custom_target(check "${CMAKE_CTEST_COMMAND}" -V)
42
endif()  # BUILD_TESTING
43

44
# kj ===========================================================================
45

46
add_subdirectory(kj)
47

48
# capnp ========================================================================
49

50
add_subdirectory(capnp)