diff --git a/CMakeLists.txt b/CMakeLists.txt index 17bec256..760205ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,16 +148,7 @@ include(falcosecurity-libs) include(jq) # nlohmann-json -set(NJSON_SRC "${PROJECT_BINARY_DIR}/njson-prefix/src/njson") -message(STATUS "Using bundled nlohmann-json in '${NJSON_SRC}'") -set(NJSON_INCLUDE "${NJSON_SRC}/single_include") -ExternalProject_Add( - njson - URL "https://github.com/nlohmann/json/archive/v3.3.0.tar.gz" - URL_HASH "SHA256=2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "") +include(njson) # b64 include(b64) diff --git a/cmake/modules/njson.cmake b/cmake/modules/njson.cmake new file mode 100644 index 00000000..1009da15 --- /dev/null +++ b/cmake/modules/njson.cmake @@ -0,0 +1,34 @@ +# +# Copyright (C) 2023 The Falco Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an +# "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. +# + +# +# nlohmann-json +# +if(NJSON_INCLUDE) + # Adding the custom target we can use it with `add_dependencies()` + if(NOT TARGET njson) + add_custom_target(njson) + endif() +else() + # We always use the bundled version + set(NJSON_SRC "${PROJECT_BINARY_DIR}/njson-prefix/src/njson") + set(NJSON_INCLUDE "${NJSON_SRC}/single_include") + ExternalProject_Add( + njson + URL "https://github.com/nlohmann/json/archive/v3.3.0.tar.gz" + URL_HASH "SHA256=2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "") + message(STATUS "Using bundled nlohmann-json in '${NJSON_SRC}'") +endif() diff --git a/cmake/modules/yaml-cpp.cmake b/cmake/modules/yaml-cpp.cmake index 5f47fae6..b565ab70 100644 --- a/cmake/modules/yaml-cpp.cmake +++ b/cmake/modules/yaml-cpp.cmake @@ -19,6 +19,7 @@ if(NOT USE_BUNDLED_DEPS) else() message(FATAL_ERROR "Couldn't find system yamlcpp") endif() + add_custom_target(yamlcpp) else() set(YAMLCPP_SRC "${PROJECT_BINARY_DIR}/yamlcpp-prefix/src/yamlcpp") message(STATUS "Using bundled yaml-cpp in '${YAMLCPP_SRC}'") diff --git a/userspace/engine/CMakeLists.txt b/userspace/engine/CMakeLists.txt index 60e5b946..a46548d7 100644 --- a/userspace/engine/CMakeLists.txt +++ b/userspace/engine/CMakeLists.txt @@ -29,9 +29,7 @@ set(FALCO_ENGINE_SOURCE_FILES add_library(falco_engine STATIC ${FALCO_ENGINE_SOURCE_FILES}) -if(USE_BUNDLED_DEPS) - add_dependencies(falco_engine yamlcpp njson) -endif() +add_dependencies(falco_engine yamlcpp njson) if(MINIMAL_BUILD) target_include_directories(