build: refactor CMake scripts to use functions for variable scope (#87)
* build: refactor CMake scripts to use functions for variable scope Wrap multiple CMake scripts in functions to restrict variable scope and prevent unintended resets. This ensures better modularity and maintainability in the build process while adhering to modern CMake best practices. * refactor: simplify opentelemetry fetch logic Streamline the handling of OpenTelemetry dependencies by removing unnecessary function wrappers and directly implementing the fetching logic. This improves readability and maintainability while ensuring that relevant variables are correctly set within the proper scope. * refactor: encapsulate OpenTelemetry configuration in a function Wrap the OpenTelemetry setup in a function to limit variable scope, improving code organization and maintainability.
This commit is contained in:
parent
8b6283e684
commit
0a63cb9fe1
@ -5,6 +5,11 @@ cmake_minimum_required(VERSION 3.24)
|
||||
|
||||
project(aimrt LANGUAGES C CXX)
|
||||
|
||||
# Prevent variables from being reset by option
|
||||
# This setting allows predefined variables to take precedence for FetchContent_MakeAvailable()
|
||||
# see: https://cmake.org/cmake/help/latest/policy/CMP0077.html
|
||||
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
||||
|
||||
# Set cmake path
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
|
||||
|
@ -22,8 +22,10 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(asio)
|
||||
if(NOT asio_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_asio)
|
||||
FetchContent_GetProperties(asio)
|
||||
if(NOT asio_POPULATED)
|
||||
FetchContent_Populate(asio)
|
||||
|
||||
add_library(asio INTERFACE)
|
||||
@ -76,7 +78,10 @@ if(NOT asio_POPULATED)
|
||||
DESTINATION include/asio)
|
||||
|
||||
install(EXPORT asio-config DESTINATION lib/cmake/asio)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_asio()
|
||||
|
||||
# import targets:
|
||||
# asio::asio
|
||||
|
@ -22,13 +22,16 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(boost)
|
||||
if(NOT boost_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_boost)
|
||||
FetchContent_GetProperties(boost)
|
||||
if(NOT boost_POPULATED)
|
||||
set(BOOST_INCLUDE_LIBRARIES asio beast)
|
||||
|
||||
set(Boost_USE_STATIC_LIBS
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
|
||||
FetchContent_MakeAvailable(boost)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_boost()
|
||||
|
@ -23,8 +23,10 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(cpptoml)
|
||||
if(NOT cpptoml_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_cpptoml)
|
||||
FetchContent_GetProperties(cpptoml)
|
||||
if(NOT cpptoml_POPULATED)
|
||||
FetchContent_Populate(cpptoml)
|
||||
|
||||
file(READ ${cpptoml_SOURCE_DIR}/include/cpptoml.h CPPTOML_TMP_VAR)
|
||||
@ -46,4 +48,7 @@ if(NOT cpptoml_POPULATED)
|
||||
|
||||
add_subdirectory(${cpptoml_SOURCE_DIR} ${cpptoml_BINARY_DIR})
|
||||
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_cpptoml()
|
||||
|
@ -22,17 +22,19 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(fmt)
|
||||
if(NOT fmt_POPULATED)
|
||||
set(FMT_MASTER_PROJECT
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(FMT_INSTALL
|
||||
${AIMRT_INSTALL}
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_fmt)
|
||||
FetchContent_GetProperties(fmt)
|
||||
if(NOT fmt_POPULATED)
|
||||
set(FMT_MASTER_PROJECT OFF)
|
||||
|
||||
set(FMT_INSTALL ON)
|
||||
|
||||
FetchContent_MakeAvailable(fmt)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_fmt()
|
||||
|
||||
# import targets:
|
||||
# fmt::fmt
|
||||
|
@ -22,13 +22,13 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(gflags)
|
||||
if(NOT gflags_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_gflags)
|
||||
FetchContent_GetProperties(gflags)
|
||||
if(NOT gflags_POPULATED)
|
||||
FetchContent_Populate(gflags)
|
||||
|
||||
set(BUILD_TESTING
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(BUILD_TESTING OFF)
|
||||
|
||||
file(READ ${gflags_SOURCE_DIR}/CMakeLists.txt TMP_VAR)
|
||||
string(REPLACE " set (PKGCONFIG_INSTALL_DIR " "# set (PKGCONFIG_INSTALL_DIR " TMP_VAR "${TMP_VAR}")
|
||||
@ -36,7 +36,10 @@ if(NOT gflags_POPULATED)
|
||||
|
||||
add_subdirectory(${gflags_SOURCE_DIR} ${gflags_BINARY_DIR})
|
||||
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_gflags()
|
||||
|
||||
# import targets:
|
||||
# gflags::gflags
|
||||
|
@ -22,19 +22,20 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(googletest)
|
||||
if(NOT googletest_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_googletest)
|
||||
FetchContent_GetProperties(googletest)
|
||||
if(NOT googletest_POPULATED)
|
||||
if(WIN32)
|
||||
set(gtest_force_shared_crt
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(gtest_force_shared_crt ON)
|
||||
endif()
|
||||
set(INSTALL_GTEST
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(INSTALL_GTEST OFF)
|
||||
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_googletest()
|
||||
|
||||
# import targets:
|
||||
# GTest::gtest
|
||||
|
@ -25,12 +25,17 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(iceoryx)
|
||||
if(NOT iceoryx_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_iceoryx)
|
||||
FetchContent_GetProperties(iceoryx)
|
||||
if(NOT iceoryx_POPULATED)
|
||||
|
||||
FetchContent_Populate(iceoryx)
|
||||
|
||||
# iceoryx‘s cmake file in ./iceoryx_meta
|
||||
add_subdirectory(${iceoryx_SOURCE_DIR}/iceoryx_meta ${iceoryx_BINARY_DIR})
|
||||
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_iceoryx()
|
||||
|
@ -22,33 +22,22 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(jsoncpp)
|
||||
if(NOT jsoncpp_POPULATED)
|
||||
set(JSONCPP_WITH_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(JSONCPP_WITH_POST_BUILD_UNITTEST
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_jsoncpp)
|
||||
FetchContent_GetProperties(jsoncpp)
|
||||
if(NOT jsoncpp_POPULATED)
|
||||
set(JSONCPP_WITH_TESTS OFF)
|
||||
|
||||
set(BUILD_OBJECT_LIBS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(JSONCPP_WITH_POST_BUILD_UNITTEST OFF)
|
||||
|
||||
set(BUILD_OBJECT_LIBS OFF)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(BUILD_SHARED_LIBS
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(BUILD_STATIC_LIBS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
set(BUILD_STATIC_LIBS OFF)
|
||||
else()
|
||||
set(BUILD_SHARED_LIBS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(BUILD_STATIC_LIBS
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
set(BUILD_STATIC_LIBS ON)
|
||||
endif()
|
||||
|
||||
FetchContent_MakeAvailable(jsoncpp)
|
||||
@ -58,7 +47,10 @@ if(NOT jsoncpp_POPULATED)
|
||||
elseif(TARGET jsoncpp_lib)
|
||||
add_library(jsoncpp::jsoncpp ALIAS jsoncpp_lib)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_jsoncpp()
|
||||
|
||||
# import targets:
|
||||
# jsoncpp::jsoncpp
|
||||
|
@ -22,11 +22,11 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(libunifex)
|
||||
if(NOT libunifex_POPULATED)
|
||||
set(UNIFEX_BUILD_EXAMPLES
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_libunifex)
|
||||
FetchContent_GetProperties(libunifex)
|
||||
if(NOT libunifex_POPULATED)
|
||||
set(UNIFEX_BUILD_EXAMPLES OFF)
|
||||
|
||||
FetchContent_MakeAvailable(libunifex)
|
||||
|
||||
@ -35,7 +35,10 @@ if(NOT libunifex_POPULATED)
|
||||
endif()
|
||||
|
||||
add_library(unifex::unifex ALIAS unifex)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_libunifex()
|
||||
|
||||
# import targets:
|
||||
# unifex::unifex
|
||||
|
@ -22,8 +22,10 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(nghttp2)
|
||||
if(NOT nghttp2_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_nghttp2)
|
||||
FetchContent_GetProperties(nghttp2)
|
||||
if(NOT nghttp2_POPULATED)
|
||||
FetchContent_Populate(nghttp2)
|
||||
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
@ -37,7 +39,10 @@ if(NOT nghttp2_POPULATED)
|
||||
file(WRITE ${nghttp2_CMAKE_FILE} "${NEW_CONTENTS}")
|
||||
|
||||
add_subdirectory(${nghttp2_SOURCE_DIR} ${nghttp2_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_nghttp2()
|
||||
|
||||
# import targets:
|
||||
# nghttp2::nghttp2
|
||||
|
@ -22,10 +22,15 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(nlohmann_json)
|
||||
if(NOT nlohmann_json_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_nlohmann_json)
|
||||
FetchContent_GetProperties(nlohmann_json)
|
||||
if(NOT nlohmann_json_POPULATED)
|
||||
FetchContent_MakeAvailable(nlohmann_json)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_nlohmann_json()
|
||||
|
||||
# import targets:
|
||||
# nlohmann_json::nlohmann_json
|
||||
|
@ -18,35 +18,23 @@ else()
|
||||
DOWNLOAD_EXTRACT_TIMESTAMP TRUE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(opentelemetry_cpp)
|
||||
if(NOT opentelemetry_cpp_POPULATED)
|
||||
set(BUILD_TESTING
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_opentelemetry_cpp)
|
||||
FetchContent_GetProperties(opentelemetry_cpp)
|
||||
if(NOT opentelemetry_cpp_POPULATED)
|
||||
set(BUILD_TESTING OFF)
|
||||
|
||||
set(WITH_BENCHMARK
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(WITH_BENCHMARK OFF)
|
||||
|
||||
set(WITH_EXAMPLES
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(WITH_EXAMPLES OFF)
|
||||
|
||||
set(WITH_FUNC_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(WITH_FUNC_TESTS OFF)
|
||||
|
||||
set(WITH_NO_DEPRECATED_CODE
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(WITH_NO_DEPRECATED_CODE ON)
|
||||
|
||||
set(WITH_DEPRECATED_SDK_FACTORY
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(WITH_DEPRECATED_SDK_FACTORY OFF)
|
||||
|
||||
set(WITH_OTLP_HTTP
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(WITH_OTLP_HTTP ON)
|
||||
|
||||
set(WITH_STL
|
||||
"CXX20"
|
||||
@ -56,13 +44,9 @@ if(NOT opentelemetry_cpp_POPULATED)
|
||||
${opentelemetry_proto_SOURCE_DIR}
|
||||
CACHE PATH "")
|
||||
|
||||
set(PROTOBUF_PROTOC_EXECUTABLE
|
||||
${Protobuf_PROTOC_EXECUTABLE}
|
||||
CACHE STRING "")
|
||||
set(PROTOBUF_PROTOC_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE})
|
||||
|
||||
set(BUILD_SHARED_LIBS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
FetchContent_MakeAvailable(opentelemetry_cpp)
|
||||
|
||||
@ -134,7 +118,10 @@ if(NOT opentelemetry_cpp_POPULATED)
|
||||
add_library(opentelemetry-cpp::http_client_curl ALIAS opentelemetry_http_client_curl)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_opentelemetry_cpp()
|
||||
|
||||
# import targets:
|
||||
# opentelemetry-cpp::api
|
||||
|
@ -22,35 +22,29 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(protobuf)
|
||||
if(NOT protobuf_POPULATED)
|
||||
set(protobuf_BUILD_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_BUILD_CONFORMANCE
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_BUILD_EXAMPLES
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_DISABLE_RTTI
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_WITH_ZLIB
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_MSVC_STATIC_RUNTIME
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(protobuf_INSTALL
|
||||
${AIMRT_INSTALL}
|
||||
CACHE BOOL "")
|
||||
set(protobuf_VERBOSE
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_protobuf)
|
||||
FetchContent_GetProperties(protobuf)
|
||||
if(NOT protobuf_POPULATED)
|
||||
set(protobuf_BUILD_TESTS OFF)
|
||||
|
||||
set(protobuf_BUILD_CONFORMANCE OFF)
|
||||
|
||||
set(protobuf_DISABLE_RTTI OFF)
|
||||
|
||||
set(protobuf_WITH_ZLIB OFF)
|
||||
|
||||
set(protobuf_MSVC_STATIC_RUNTIME OFF)
|
||||
|
||||
set(protobuf_INSTALL ${AIMRT_INSTALL})
|
||||
|
||||
set(protobuf_VERBOSE ON)
|
||||
|
||||
FetchContent_MakeAvailable(protobuf)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_protobuf()
|
||||
|
||||
# import targets:
|
||||
# protobuf::libprotobuf
|
||||
|
@ -22,7 +22,12 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(pybind11)
|
||||
if(NOT pybind11_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_pybind11)
|
||||
FetchContent_GetProperties(pybind11)
|
||||
if(NOT pybind11_POPULATED)
|
||||
FetchContent_MakeAvailable(pybind11)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_pybind11()
|
||||
|
@ -23,8 +23,10 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(sqlite)
|
||||
if(NOT sqlite_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_sqlite)
|
||||
FetchContent_GetProperties(sqlite)
|
||||
if(NOT sqlite_POPULATED)
|
||||
FetchContent_Populate(sqlite)
|
||||
|
||||
# sqlite lib
|
||||
@ -40,7 +42,10 @@ if(NOT sqlite_POPULATED)
|
||||
if(UNIX)
|
||||
target_link_libraries(libsqlite PUBLIC pthread dl)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_sqlite()
|
||||
|
||||
# import targets:
|
||||
# sqlite::libsqlite
|
||||
|
@ -22,22 +22,19 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(stdexec)
|
||||
if(NOT stdexec_POPULATED)
|
||||
set(STDEXEC_ENABLE_IO_URING_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
|
||||
set(STDEXEC_BUILD_EXAMPLES
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
|
||||
set(STDEXEC_BUILD_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_stdexec)
|
||||
FetchContent_GetProperties(stdexec)
|
||||
if(NOT stdexec_POPULATED)
|
||||
set(STDEXEC_ENABLE_IO_URING_TESTS OFF)
|
||||
set(STDEXEC_BUILD_EXAMPLES OFF)
|
||||
set(STDEXEC_BUILD_TESTS OFF)
|
||||
|
||||
FetchContent_MakeAvailable(stdexec)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_stdexec()
|
||||
|
||||
# import targets:
|
||||
# STDEXEC::stdexec
|
||||
|
@ -22,26 +22,23 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(tbb)
|
||||
if(NOT tbb_POPULATED)
|
||||
set(TBB_TEST
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_tbb)
|
||||
FetchContent_GetProperties(tbb)
|
||||
if(NOT tbb_POPULATED)
|
||||
set(TBB_TEST OFF)
|
||||
|
||||
set(TBB_DIR
|
||||
""
|
||||
CACHE STRING "" FORCE)
|
||||
set(TBB_DIR "")
|
||||
|
||||
set(TBB_INSTALL
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(TBB_INSTALL ON)
|
||||
|
||||
set(TBB_STRICT
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(TBB_STRICT OFF)
|
||||
|
||||
FetchContent_MakeAvailable(tbb)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_tbb()
|
||||
|
||||
# import targets:
|
||||
# TBB::tbb
|
||||
|
@ -22,28 +22,27 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(yaml-cpp)
|
||||
if(NOT yaml-cpp_POPULATED)
|
||||
set(BUILD_TESTING
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(YAML_CPP_BUILD_TESTS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(YAML_CPP_BUILD_TOOLS
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(YAML_CPP_INSTALL
|
||||
ON
|
||||
CACHE BOOL "")
|
||||
set(YAML_CPP_FORMAT_SOURCE
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
set(YAML_CPP_BUILD_CONTRIB
|
||||
OFF
|
||||
CACHE BOOL "")
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_yaml_cpp)
|
||||
FetchContent_GetProperties(yaml-cpp)
|
||||
if(NOT yaml-cpp_POPULATED)
|
||||
set(BUILD_TESTING OFF)
|
||||
|
||||
set(YAML_CPP_BUILD_TESTS OFF)
|
||||
|
||||
set(YAML_CPP_BUILD_TOOLS OFF)
|
||||
|
||||
set(YAML_CPP_INSTALL ON)
|
||||
|
||||
set(YAML_CPP_FORMAT_SOURCE OFF)
|
||||
|
||||
set(YAML_CPP_BUILD_CONTRIB OFF)
|
||||
|
||||
FetchContent_MakeAvailable(yaml-cpp)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_yaml_cpp()
|
||||
|
||||
# import targets:
|
||||
# yaml-cpp::yaml-cpp
|
||||
|
@ -23,7 +23,12 @@ else()
|
||||
OVERRIDE_FIND_PACKAGE)
|
||||
endif()
|
||||
|
||||
FetchContent_GetProperties(zenohc)
|
||||
if(NOT zenohc_POPULATED)
|
||||
# Wrap it in a function to restrict the scope of the variables
|
||||
function(get_zenohc)
|
||||
FetchContent_GetProperties(zenohc)
|
||||
if(NOT zenohc_POPULATED)
|
||||
FetchContent_MakeAvailable(zenohc)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
get_zenohc()
|
||||
|
Loading…
x
Reference in New Issue
Block a user