# Cap'n Proto CMake Package Configuration # # When configured and installed, this file enables client projects to find Cap'n Proto using # CMake's find_package() command. It adds imported targets in the CapnProto:: namespace, such as # CapnProto::kj, CapnProto::capnp, etc. (one target for each file in pkgconfig/*.pc.in), defines # the capnp_generate_cpp() function, and exposes some variables for compatibility with the original # FindCapnProto.cmake module. # # Example usage: # find_package(CapnProto) # capnp_generate_cpp(CAPNP_SRCS CAPNP_HDRS schema.capnp) # add_executable(foo main.cpp ${CAPNP_SRCS}) # target_link_libraries(foo PRIVATE CapnProto::capnp) # target_include_directories(foo PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # # If you are using RPC features, use 'CapnProto::capnp-rpc' in the target_link_libraries() call. # # Paths to `capnp` and `capnpc-c++` are exposed in the following variables: # CAPNP_EXECUTABLE # Path to the `capnp` tool (can be set to override). # CAPNPC_CXX_EXECUTABLE # Path to the `capnpc-c++` tool (can be set to override). # # For FindCapnProto.cmake compatibility, the following variables are also provided. Please prefer # using the imported targets in new CMake code. # CAPNP_INCLUDE_DIRS # Include directories for the library's headers. # CANP_LIBRARIES # The Cap'n Proto library paths. # CAPNP_LIBRARIES_LITE # Paths to only the 'lite' libraries. # CAPNP_DEFINITIONS # Compiler definitions required for building with the library. # CAPNP_FOUND # Set if the libraries have been located (prefer using CapnProto_FOUND in new code). # @PACKAGE_INIT@ set(CapnProto_VERSION @VERSION@) set(CAPNP_EXECUTABLE $ CACHE FILEPATH "Location of capnp executable") set(CAPNPC_CXX_EXECUTABLE $ CACHE FILEPATH "Location of capnpc-c++ executable") set(CAPNP_INCLUDE_DIRECTORY "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@") # work around http://public.kitware.com/Bug/view.php?id=15258 if(NOT _IMPORT_PREFIX) set(_IMPORT_PREFIX ${PACKAGE_PREFIX_DIR}) endif() include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoMacros.cmake") # FindCapnProto.cmake provides dependency information via several CAPNP_-prefixed variables. New # code should not rely on these variables, but prefer linking directly to the imported targets we # now provide. However, we should still set these variables to ease the transition for projects # which currently depend on the find-module. set(CAPNP_INCLUDE_DIRS ${CAPNP_INCLUDE_DIRECTORY}) # No need to list all libraries, just the leaves of the dependency tree. set(CAPNP_LIBRARIES_LITE CapnProto::capnp) set(CAPNP_LIBRARIES CapnProto::capnp-rpc CapnProto::capnp-json CapnProto::kj-http CapnProto::kj-test) set(CAPNP_DEFINITIONS) if(TARGET CapnProto::capnp AND NOT TARGET CapnProto::capnp-rpc) set(CAPNP_DEFINITIONS -DCAPNP_LITE) endif() set(CAPNP_FOUND ${CapnProto_FOUND})