diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-05-12 12:24:54 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-05-12 12:46:49 +0200 |
commit | fa079d2346ec105d73fcb3ccf500c48aa9f219c0 (patch) | |
tree | db13d80bf726815c4548036b11241606a2107025 /CMakeLists.txt | |
parent | 50f9c1bba149e6cd5cb512087f60ad6e293ea542 (diff) |
Git submodule libnDPI update.
* enable ctest to run integration tests (**only** if BUILD_NDPI=ON)
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 93ec301e6..c4fff16df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,21 @@ project(nDPId C) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) find_package(PkgConfig REQUIRED) +function(initialize_submodule DIRECTORY) + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${DIRECTORY}/.git) + find_package(Git QUIET REQUIRED) + message(STATUS "${CMAKE_CURRENT_SOURCE_DIR}/${DIRECTORY}/.git does not exist. " + "Initializing ${DIRECTORY} submodule ...") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init ${DIRECTORY} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_EXIT_CODE) + if(NOT GIT_EXIT_CODE EQUAL "0") + message(FATAL_ERROR "${GIT_EXECUTABLE} submodule update --init dependencies/${DIRECTORY} " + "failed with exit code ${GIT_EXIT_CODE}, please checkout submodules") + endif() + endif() +endfunction(initialize_submodule) + option(ENABLE_SANITIZER "Enable ASAN/LSAN/UBSAN." OFF) option(ENABLE_SANITIZER_THREAD "Enable TSAN (does not work together with ASAN)." OFF) option(ENABLE_MEMORY_PROFILING "Enable dynamic memory tracking." OFF) @@ -16,6 +31,14 @@ add_executable(nDPId nDPId.c utils.c) add_executable(nDPIsrvd nDPIsrvd.c utils.c) add_executable(nDPId-test nDPId-test.c utils.c) +if(BUILD_NDPI) + enable_testing() + add_test(NAME run_tests + COMMAND "${CMAKE_SOURCE_DIR}/test/run_tests.sh" + "${CMAKE_SOURCE_DIR}/libnDPI" + "$<TARGET_FILE:nDPId-test>") +endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -DJSMN_STATIC=1 -DJSMN_STRICT=1") set(BUILD_NDPI_CONFIGURE_OPTS "") @@ -45,12 +68,12 @@ if(ENABLE_SANITIZER_THREAD) endif() if(STATIC_LIBNDPI_INSTALLDIR STREQUAL "" AND BUILD_NDPI) + initialize_submodule(libnDPI) include(ExternalProject) ExternalProject_Add( libnDPI SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libnDPI - CONFIGURE_COMMAND git submodule update --init && - ${CMAKE_CURRENT_SOURCE_DIR}/libnDPI/autogen.sh + CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/libnDPI/autogen.sh --prefix=${CMAKE_CURRENT_BINARY_DIR}/libnDPI ${BUILD_NDPI_CONFIGURE_OPTS} BUILD_COMMAND make |