summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2023-01-06 01:03:34 +0100
committerToni Uhlig <matzeton@googlemail.com>2023-01-10 01:03:34 +0100
commit07efb1efd49e7e2417e362f5e6ce50cb4abd0993 (patch)
tree5773a0e9438e58169aa0b3d5f8f7fcd4da76397d
parent464450486b7021ff5a070c7dfebf45fb542331fd (diff)
Added distclean-libnDPI target to CMake.
* Gitlab-CI: Additional job for debian packages * Install Python examples iff BUILD_EXAMPLES=ON Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r--.gitlab-ci.yml27
-rw-r--r--CMakeLists.txt46
2 files changed, 51 insertions, 22 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ed42abbfe..fb8d726d7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,7 +31,8 @@ build_and_test_static_libndpi_tsan:
# static linked build
- mkdir build-clang-tsan
- cd build-clang-tsan
- - env CMAKE_C_FLAGS='-Werror' CMAKE_C_COMPILER='clang' cmake .. -DBUILD_EXAMPLES=OFF -DBUILD_NDPI=ON -DENABLE_SANITIZER_THREAD=ON -DENABLE_ZLIB=ON
+ - env CMAKE_C_FLAGS='-Werror' CMAKE_C_COMPILER='clang' cmake .. -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DENABLE_SANITIZER_THREAD=ON -DENABLE_ZLIB=ON
+ - make distclean-libnDPI
- make libnDPI
- tree libnDPI
- make install VERBOSE=1 DESTDIR="$(realpath ../_install)"
@@ -47,7 +48,8 @@ build_and_test_static_libndpi:
script:
- mkdir build-cmake-submodule
- cd build-cmake-submodule
- - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DENABLE_COVERAGE=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DENABLE_SANITIZER=ON -DENABLE_ZLIB=ON
+ - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DENABLE_ZLIB=ON
+ - make distclean-libnDPI
- make libnDPI
- tree libnDPI
- make install VERBOSE=1 DESTDIR="$(realpath ../_install)"
@@ -60,6 +62,27 @@ build_and_test_static_libndpi:
- test -x /bin/systemctl && sudo systemctl status ndpisrvd.service ndpid@lo.service
- test -x /bin/systemctl && sudo systemctl stop ndpid@lo
- ./test/run_tests.sh ./libnDPI ./build-cmake-submodule/nDPId-test
+ - >
+ if ldd ./build-cmake-submodule/nDPId | grep -qoEi libndpi; then \
+ echo 'nDPId linked against a static libnDPI should not contain a shared linked libnDPI.' >&2; false; fi
+ artifacts:
+ expire_in: 1 week
+ paths:
+ - build-cmake-submodule/*.deb
+ - _install/
+ stage: build_and_test
+
+build_and_test_static_libndpi_coverage:
+ script:
+ - mkdir build-cmake-submodule
+ - cd build-cmake-submodule
+ - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DENABLE_COVERAGE=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DENABLE_SANITIZER=ON -DENABLE_ZLIB=ON
+ - make distclean-libnDPI
+ - make libnDPI
+ - tree libnDPI
+ - make install VERBOSE=1 DESTDIR="$(realpath ../_install)"
+ - cd ..
+ - ./test/run_tests.sh ./libnDPI ./build-cmake-submodule/nDPId-test
# generate coverage report
- make -C ./build-cmake-submodule coverage
- >
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 438ae5988..ecb1dece3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -216,6 +216,10 @@ if(BUILD_NDPI)
add_custom_target(clean-libnDPI
COMMAND rm -rf ${CMAKE_BINARY_DIR}/libnDPI ${CMAKE_BINARY_DIR}/libnDPI-prefix
)
+ add_custom_target(distclean-libnDPI
+ COMMAND cd ${CMAKE_SOURCE_DIR}/libnDPI && git clean -df . && git clean -dfX .
+ )
+ add_dependencies(distclean-libnDPI clean-libnDPI)
set(STATIC_LIBNDPI_INSTALLDIR "${CMAKE_BINARY_DIR}/libnDPI")
add_dependencies(nDPId libnDPI)
@@ -332,26 +336,28 @@ endif()
install(TARGETS nDPId DESTINATION sbin)
install(TARGETS nDPIsrvd nDPId-test DESTINATION bin)
-install(FILES dependencies/nDPIsrvd.py examples/py-flow-dashboard/plotly_dash.py
- DESTINATION share/nDPId)
-install(FILES examples/py-flow-info/flow-info.py
- DESTINATION bin RENAME nDPIsrvd-flow-info.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-install(FILES examples/py-flow-dashboard/flow-dash.py
- DESTINATION bin RENAME nDPIsrvd-flow-dash.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-install(FILES examples/py-json-stdout/json-stdout.py
- DESTINATION bin RENAME nDPIsrvd-json-stdout.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-install(FILES examples/py-schema-validation/py-schema-validation.py
- DESTINATION bin RENAME nDPIsrvd-schema-validation.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-install(FILES examples/py-semantic-validation/py-semantic-validation.py
- DESTINATION bin RENAME nDPIsrvd-semantic-validation.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-install(FILES examples/py-machine-learning/sklearn-random-forest.py
- DESTINATION bin RENAME nDPIsrvd-sklearn.py
- PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+if(BUILD_EXAMPLES)
+ install(FILES dependencies/nDPIsrvd.py examples/py-flow-dashboard/plotly_dash.py
+ DESTINATION share/nDPId)
+ install(FILES examples/py-flow-info/flow-info.py
+ DESTINATION bin RENAME nDPIsrvd-flow-info.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES examples/py-flow-dashboard/flow-dash.py
+ DESTINATION bin RENAME nDPIsrvd-flow-dash.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES examples/py-json-stdout/json-stdout.py
+ DESTINATION bin RENAME nDPIsrvd-json-stdout.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES examples/py-schema-validation/py-schema-validation.py
+ DESTINATION bin RENAME nDPIsrvd-schema-validation.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES examples/py-semantic-validation/py-semantic-validation.py
+ DESTINATION bin RENAME nDPIsrvd-semantic-validation.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES examples/py-machine-learning/sklearn-random-forest.py
+ DESTINATION bin RENAME nDPIsrvd-sklearn.py
+ PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+endif()
install(FILES schema/error_event_schema.json schema/daemon_event_schema.json
schema/flow_event_schema.json schema/packet_event_schema.json DESTINATION share/nDPId/json-schema)