mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-09 10:39:28 +00:00
chore(build): allow usage of non-bundled nlohmann-json
Signed-off-by: Federico Aponte <federico.aponte@sysdig.com>
This commit is contained in:
@@ -85,6 +85,7 @@ set(BUILD_LIBSCAP_EXAMPLES OFF CACHE BOOL "")
|
|||||||
|
|
||||||
set(USE_BUNDLED_TBB ON CACHE BOOL "")
|
set(USE_BUNDLED_TBB ON CACHE BOOL "")
|
||||||
set(USE_BUNDLED_JSONCPP 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_VALIJSON ON CACHE BOOL "")
|
||||||
set(USE_BUNDLED_RE2 ON CACHE BOOL "")
|
set(USE_BUNDLED_RE2 ON CACHE BOOL "")
|
||||||
set(USE_BUNDLED_UTHASH ON CACHE BOOL "")
|
set(USE_BUNDLED_UTHASH ON CACHE BOOL "")
|
||||||
|
@@ -12,24 +12,10 @@
|
|||||||
# specific language governing permissions and limitations under the License.
|
# specific language governing permissions and limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
#
|
if(USE_BUNDLED_NLOHMANN_JSON)
|
||||||
# nlohmann-json
|
ExternalProject_Add(njson
|
||||||
#
|
|
||||||
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 "https://github.com/nlohmann/json/archive/v3.3.0.tar.gz"
|
||||||
URL_HASH "SHA256=2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801"
|
URL_HASH "SHA256=2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801"
|
||||||
CONFIGURE_COMMAND ""
|
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DJSON_BuildTests=OFF -DBUILD_TESTING=OFF
|
||||||
BUILD_COMMAND ""
|
)
|
||||||
INSTALL_COMMAND "")
|
|
||||||
message(STATUS "Using bundled nlohmann-json in '${NJSON_SRC}'")
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -11,7 +11,9 @@
|
|||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
# "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.
|
# specific language governing permissions and limitations under the License.
|
||||||
|
|
||||||
set(FALCO_ENGINE_SOURCE_FILES
|
find_package(nlohmann_json CONFIG REQUIRED)
|
||||||
|
|
||||||
|
add_library(falco_engine STATIC
|
||||||
falco_common.cpp
|
falco_common.cpp
|
||||||
falco_engine.cpp
|
falco_engine.cpp
|
||||||
falco_load_result.cpp
|
falco_load_result.cpp
|
||||||
@@ -25,24 +27,26 @@ set(FALCO_ENGINE_SOURCE_FILES
|
|||||||
rule_loader.cpp
|
rule_loader.cpp
|
||||||
rule_loader_reader.cpp
|
rule_loader_reader.cpp
|
||||||
rule_loader_collector.cpp
|
rule_loader_collector.cpp
|
||||||
rule_loader_compiler.cpp)
|
rule_loader_compiler.cpp
|
||||||
|
)
|
||||||
add_library(falco_engine STATIC ${FALCO_ENGINE_SOURCE_FILES})
|
|
||||||
|
|
||||||
if (EMSCRIPTEN)
|
if (EMSCRIPTEN)
|
||||||
target_compile_options(falco_engine PRIVATE "-sDISABLE_EXCEPTION_CATCHING=0")
|
target_compile_options(falco_engine PRIVATE "-sDISABLE_EXCEPTION_CATCHING=0")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dependencies(falco_engine yamlcpp njson)
|
add_dependencies(falco_engine yamlcpp)
|
||||||
|
|
||||||
target_include_directories(
|
target_include_directories(falco_engine
|
||||||
falco_engine
|
PUBLIC
|
||||||
PUBLIC
|
${LIBSCAP_INCLUDE_DIRS}
|
||||||
"${NJSON_INCLUDE}"
|
${LIBSINSP_INCLUDE_DIRS}
|
||||||
"${TBB_INCLUDE_DIR}"
|
${PROJECT_BINARY_DIR}/userspace/engine
|
||||||
"${LIBSCAP_INCLUDE_DIRS}"
|
${TBB_INCLUDE_DIR}
|
||||||
"${LIBSINSP_INCLUDE_DIRS}"
|
${YAMLCPP_INCLUDE_DIR}
|
||||||
"${YAMLCPP_INCLUDE_DIR}"
|
)
|
||||||
"${PROJECT_BINARY_DIR}/userspace/engine")
|
|
||||||
|
|
||||||
target_link_libraries(falco_engine "${FALCO_SINSP_LIBRARY}" "${YAMLCPP_LIB}")
|
target_link_libraries(falco_engine
|
||||||
|
nlohmann_json::nlohmann_json
|
||||||
|
${FALCO_SINSP_LIBRARY}
|
||||||
|
${YAMLCPP_LIB}
|
||||||
|
)
|
||||||
|
Reference in New Issue
Block a user