diff --git a/cmake/modules/cpp-httplib.cmake b/cmake/modules/cpp-httplib.cmake index 38f370f4..72b93144 100644 --- a/cmake/modules/cpp-httplib.cmake +++ b/cmake/modules/cpp-httplib.cmake @@ -32,6 +32,8 @@ else() set(CPPHTTPLIB_SRC "${PROJECT_BINARY_DIR}/cpp-httplib-prefix/src/cpp-httplib") set(CPPHTTPLIB_INCLUDE "${CPPHTTPLIB_SRC}") + message(STATUS "Using bundled cpp-httplib in ${CPPHTTPLIB_SRC}") + ExternalProject_Add(cpp-httplib PREFIX "${PROJECT_BINARY_DIR}/cpp-httplib-prefix" URL "https://github.com/yhirose/cpp-httplib/archive/refs/tags/v0.13.1.tar.gz" diff --git a/cmake/modules/cxxopts.cmake b/cmake/modules/cxxopts.cmake index 66c73103..45427e4c 100644 --- a/cmake/modules/cxxopts.cmake +++ b/cmake/modules/cxxopts.cmake @@ -44,5 +44,5 @@ else() endif() if(NOT TARGET cxxopts) - add_custom_target(cxxopts) + add_custom_target(cxxopts) endif() diff --git a/cmake/modules/falcosecurity-libs.cmake b/cmake/modules/falcosecurity-libs.cmake index b9831e0e..ba3e644d 100644 --- a/cmake/modules/falcosecurity-libs.cmake +++ b/cmake/modules/falcosecurity-libs.cmake @@ -83,7 +83,6 @@ set(BUILD_LIBSCAP_EXAMPLES OFF CACHE BOOL "") set(USE_BUNDLED_TBB ON CACHE BOOL "") set(USE_BUNDLED_JSONCPP ON CACHE BOOL "") -set(USE_BUNDLED_NLOHMANN_JSON ON CACHE BOOL "") set(USE_BUNDLED_VALIJSON ON CACHE BOOL "") set(USE_BUNDLED_RE2 ON CACHE BOOL "") set(USE_BUNDLED_UTHASH ON CACHE BOOL "") diff --git a/cmake/modules/njson.cmake b/cmake/modules/njson.cmake index dd5a332b..055cc0e4 100644 --- a/cmake/modules/njson.cmake +++ b/cmake/modules/njson.cmake @@ -12,16 +12,34 @@ # specific language governing permissions and limitations under the License. # -if(USE_BUNDLED_NLOHMANN_JSON) +# +# njson (https://github.com/nlohmann/json) +# + +option(USE_BUNDLED_NLOHMANN_JSON "Enable building of the bundled nlohmann-json" ${USE_BUNDLED_DEPS}) + +if(nlohmann_json_INCLUDE_DIRS) + # we already have nlohmnann-json +elseif(NOT USE_BUNDLED_NLOHMANN_JSON) + find_path(nlohmann_json_INCLUDE_DIRS NAMES nlohmann) + + if(nlohmann_json_INCLUDE_DIRS) + message(STATUS "Found nlohmann-json: include: ${nlohmann_json_INCLUDE_DIRS}") + else() + message(FATAL_ERROR "Couldn't find system nlohmann-json") + endif() +else() + set(nlohmann_json_INCLUDE_DIRS "${PROJECT_BINARY_DIR}/njson-prefix/include") + + message(STATUS "Using bundled nlohmann-json in ${nlohmann_json_INCLUDE_DIRS}") + ExternalProject_Add(njson URL "https://github.com/nlohmann/json/archive/v3.3.0.tar.gz" URL_HASH "SHA256=2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801" CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/njson-prefix -DJSON_BuildTests=OFF -DBUILD_TESTING=OFF ) +endif() - set(nlohmann_json_INCLUDE_DIRS ${PROJECT_BINARY_DIR}/njson-prefix/include) -else() - find_package(nlohmann_json CONFIG REQUIRED) - get_target_property(nlohmann_json_INCLUDE_DIRS nlohmann_json::nlohmann_json INTERFACE_INCLUDE_DIRECTORIES) +if(NOT TARGET njson) add_custom_target(njson) endif() diff --git a/cmake/modules/yaml-cpp.cmake b/cmake/modules/yaml-cpp.cmake index 3d3d43e4..542d698c 100644 --- a/cmake/modules/yaml-cpp.cmake +++ b/cmake/modules/yaml-cpp.cmake @@ -11,31 +11,46 @@ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. # -mark_as_advanced(YAMLCPP_INCLUDE_DIR YAMLCPP_LIB) -if(NOT USE_BUNDLED_DEPS) - find_path(YAMLCPP_INCLUDE_DIR NAMES yaml-cpp/yaml.h) - find_library(YAMLCPP_LIB NAMES yaml-cpp) - if(YAMLCPP_INCLUDE_DIR AND YAMLCPP_LIB) - message(STATUS "Found yamlcpp: include: ${YAMLCPP_INCLUDE_DIR}, lib: ${YAMLCPP_LIB}") - else() - message(FATAL_ERROR "Couldn't find system yamlcpp") - endif() - add_custom_target(yamlcpp) + +# +# yamlcpp (https://github.com/jbeder/yaml-cpp) +# + +option(USE_BUNDLED_YAMLCPP "Enable building of the bundled yamlcpp" ${USE_BUNDLED_DEPS}) + +if(YAMLCPP_INCLUDE_DIR) + # we already have yamlcpp +elseif(NOT USE_BUNDLED_YAMLCPP) + find_path(YAMLCPP_INCLUDE_DIR NAMES yaml-cpp/yaml.h) + find_library(YAMLCPP_LIB NAMES yaml-cpp) + + if(YAMLCPP_INCLUDE_DIR) + message(STATUS "Found yamlcpp: include: ${YAMLCPP_INCLUDE_DIR}") + else() + message(FATAL_ERROR "Couldn't find system yamlcpp") + endif() else() - set(YAMLCPP_SRC "${PROJECT_BINARY_DIR}/yamlcpp-prefix/src/yamlcpp") - message(STATUS "Using bundled yaml-cpp in '${YAMLCPP_SRC}'") - if(NOT WIN32) - set(YAMLCPP_LIB "${YAMLCPP_SRC}/libyaml-cpp.a") - else() - set(YAMLCPP_LIB "${YAMLCPP_SRC}/${CMAKE_BUILD_TYPE}/yaml-cpp.lib") - endif() - set(YAMLCPP_INCLUDE_DIR "${YAMLCPP_SRC}/include") - ExternalProject_Add( - yamlcpp - URL "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.7.0.tar.gz" - URL_HASH "SHA256=43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" - BUILD_BYPRODUCTS ${YAMLCPP_LIB} - CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DYAML_MSVC_SHARED_RT=Off -DYAML_BUILD_SHARED_LIBS=Off -DYAML_CPP_BUILD_TESTS=Off -DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_CONTRIB=OFF -DCMAKE_DEBUG_POSTFIX='' - BUILD_IN_SOURCE 1 - INSTALL_COMMAND "") + set(YAMLCPP_SRC "${PROJECT_BINARY_DIR}/yamlcpp-prefix/src/yamlcpp") + set(YAMLCPP_INCLUDE_DIR "${YAMLCPP_SRC}/include") + + message(STATUS "Using bundled yaml-cpp in '${YAMLCPP_SRC}'") + + if(NOT WIN32) + set(YAMLCPP_LIB "${YAMLCPP_SRC}/libyaml-cpp.a") + else() + set(YAMLCPP_LIB "${YAMLCPP_SRC}/${CMAKE_BUILD_TYPE}/yaml-cpp.lib") + endif() + + ExternalProject_Add( + yamlcpp + URL "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.7.0.tar.gz" + URL_HASH "SHA256=43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" + BUILD_BYPRODUCTS ${YAMLCPP_LIB} + CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DYAML_MSVC_SHARED_RT=Off -DYAML_BUILD_SHARED_LIBS=Off -DYAML_CPP_BUILD_TESTS=Off -DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_CONTRIB=OFF -DCMAKE_DEBUG_POSTFIX='' + BUILD_IN_SOURCE 1 + INSTALL_COMMAND "") +endif() + +if(NOT TARGET yamlcpp) + add_custom_target(yamlcpp) endif()