summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2021-05-12 12:24:54 +0200
committerToni Uhlig <matzeton@googlemail.com>2021-05-12 12:46:49 +0200
commitfa079d2346ec105d73fcb3ccf500c48aa9f219c0 (patch)
treedb13d80bf726815c4548036b11241606a2107025 /CMakeLists.txt
parent50f9c1bba149e6cd5cb512087f60ad6e293ea542 (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.txt27
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