Mercurial > repos > rliterman > csp2
diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/cmake/CapnProto/CapnProtoConfig.cmake @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/cmake/CapnProto/CapnProtoConfig.cmake Tue Mar 18 17:55:14 2025 -0400 @@ -0,0 +1,123 @@ +# 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). +# +set(CAPNP_PKG_CONFIG_FILES pkgconfig/capnp.pc pkgconfig/capnpc.pc pkgconfig/capnp-rpc.pc pkgconfig/capnp-json.pc pkgconfig/capnp-websocket.pc pkgconfig/kj.pc pkgconfig/kj-async.pc pkgconfig/kj-http.pc pkgconfig/kj-gzip.pc pkgconfig/kj-tls.pc pkgconfig/kj-test.pc ) + +set(CapnProto_VERSION 1.0.2) + +set(CAPNP_EXECUTABLE $<TARGET_FILE:CapnProto::capnp_tool> + CACHE FILEPATH "Location of capnp executable") +set(CAPNPC_CXX_EXECUTABLE $<TARGET_FILE:CapnProto::capnpc_cpp> + CACHE FILEPATH "Location of capnpc-c++ executable") +set(CAPNP_INCLUDE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/../../../include") + +# work around http://public.kitware.com/Bug/view.php?id=15258 +if(NOT _IMPORT_PREFIX) + set(_IMPORT_PREFIX ${PACKAGE_PREFIX_DIR}) +endif() + +if (NO) # WITH_OPENSSL + include(CMakeFindDependencyMacro) + if (CMAKE_VERSION VERSION_LESS 3.9) + # find_dependency() did not support COMPONENTS until CMake 3.9 + # + # in practice, this call can be erroneous + # if the user has only libcrypto installed, but not libssl + find_dependency(OpenSSL) + else() + find_dependency(OpenSSL COMPONENTS Crypto SSL) + endif() +endif() + +if (@WITH_ZLIB@) # WITH_ZLIB + include(CMakeFindDependencyMacro) + find_dependency(ZLIB) +endif() + +if (NO) # _WITH_LIBUCONTEXT + set(forwarded_config_flags) + if(CapnProto_FIND_QUIETLY) + list(APPEND forwarded_config_flags QUIET) + endif() + if(CapnProto_FIND_REQUIRED) + list(APPEND forwarded_config_flags REQUIRED) + endif() + # If the consuming project called find_package(CapnProto) with the QUIET or REQUIRED flags, forward + # them to calls to find_package(PkgConfig) and pkg_check_modules(). Note that find_dependency() + # would do this for us in the former case, but there is no such forwarding wrapper for + # pkg_check_modules(). + + find_package(PkgConfig ${forwarded_config_flags}) + if(NOT ${PkgConfig_FOUND}) + # If we're here, the REQUIRED flag must not have been passed, else we would have had a fatal + # error. Nevertheless, a diagnostic for this case is probably nice. + if(NOT CapnProto_FIND_QUIETLY) + message(WARNING "pkg-config cannot be found") + endif() + set(CapnProto_FOUND OFF) + return() + endif() + + if (CMAKE_VERSION VERSION_LESS 3.6) + # CMake >= 3.6 required due to the use of IMPORTED_TARGET + message(SEND_ERROR "libucontext support requires CMake >= 3.6.") + endif() + + pkg_check_modules(libucontext IMPORTED_TARGET ${forwarded_config_flags} libucontext) +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) + +set(CAPNP_DEFINITIONS) +if(TARGET CapnProto::capnp AND NOT TARGET CapnProto::capnp-rpc) + set(CAPNP_DEFINITIONS -DCAPNP_LITE) +endif() + +set(CAPNP_FOUND ${CapnProto_FOUND})