diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2023-01-06 01:03:34 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2023-01-10 01:03:34 +0100 |
commit | 07efb1efd49e7e2417e362f5e6ce50cb4abd0993 (patch) | |
tree | 5773a0e9438e58169aa0b3d5f8f7fcd4da76397d | |
parent | 464450486b7021ff5a070c7dfebf45fb542331fd (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.yml | 27 | ||||
-rw-r--r-- | CMakeLists.txt | 46 |
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) |