CMakeLists.txt 1.53 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# A Cap'n Proto sample project.
#
# To build (non-MSVC):
#   1. Install Cap'n Proto somewhere ($PREFIX below):
#
#      mkdir capnproto/build
#      cd capnproto/build
#      cmake ../c++ -DCMAKE_INSTALL_PREFIX=$PREFIX
#      cmake --build . --target install
#
#   2. Ensure Cap'n Proto's executables are on the PATH, then build the sample project:
#
#      export PATH=$PREFIX/bin:$PATH
#      mkdir ../build-samples
#      cd ../build-samples
#      cmake ../c++/samples
#      cmake --build .

project("Cap'n Proto Samples" CXX)
20
cmake_minimum_required(VERSION 3.1)
21 22 23 24 25

find_package(CapnProto CONFIG REQUIRED)

capnp_generate_cpp(addressbookSources addressbookHeaders addressbook.capnp)
add_executable(addressbook addressbook.c++ ${addressbookSources})
26
target_link_libraries(addressbook PRIVATE CapnProto::capnp)
27 28
target_include_directories(addressbook PRIVATE ${CMAKE_CURRENT_BINARY_DIR})

29 30 31 32 33
# Don't build the rpc sample if find_package() found an installation of Cap'n Proto lite.
if(TARGET CapnProto::capnp-rpc)
  capnp_generate_cpp(calculatorSources calculatorHeaders calculator.capnp)
  add_executable(calculator-client calculator-client.c++ ${calculatorSources})
  add_executable(calculator-server calculator-server.c++ ${calculatorSources})
34 35
  target_link_libraries(calculator-client PRIVATE CapnProto::capnp-rpc)
  target_link_libraries(calculator-server PRIVATE CapnProto::capnp-rpc)
36 37 38
  target_include_directories(calculator-client PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
  target_include_directories(calculator-server PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
endif()