diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2023-08-27 22:37:55 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2023-08-27 22:37:55 +0200 |
commit | 091fd4d11654949e2d8e6c8f03cc9c675d472a91 (patch) | |
tree | 4fae5d9797926e3f92d500e0085c2104555db3ee | |
parent | dfb8d3379f73de254a56b7b80d00fa19023cfd58 (diff) |
Added CMake option BUILD_NDPI_FORCE_GIT_UPDATE to fix broken submodule caches in GitLab CIs..
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | .gitlab-ci.yml | 6 | ||||
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rwxr-xr-x | scripts/get-and-build-libndpi.sh | 10 |
3 files changed, 14 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6a7198ba..3829baf3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -31,7 +31,7 @@ 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=ON -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 -DBUILD_NDPI_FORCE_GIT_UPDATE=ON -DENABLE_SANITIZER_THREAD=ON -DENABLE_ZLIB=ON - make clean-libnDPI - make libnDPI - tree libnDPI @@ -48,7 +48,7 @@ build_and_test_static_libndpi: script: - mkdir build-cmake-submodule - cd build-cmake-submodule - - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DENABLE_ZLIB=ON + - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DBUILD_NDPI_FORCE_GIT_UPDATE=ON -DENABLE_ZLIB=ON - make clean-libnDPI - make libnDPI - tree libnDPI @@ -77,7 +77,7 @@ 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 + - env CMAKE_C_FLAGS='-Werror' cmake .. -DENABLE_SYSTEMD=ON -DENABLE_COVERAGE=ON -DBUILD_EXAMPLES=ON -DBUILD_NDPI=ON -DBUILD_NDPI_FORCE_GIT_UPDATE=ON -DENABLE_SANITIZER=ON -DENABLE_ZLIB=ON - make clean-libnDPI - make libnDPI - tree libnDPI diff --git a/CMakeLists.txt b/CMakeLists.txt index d9ed352cf..b328ed1ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ option(ENABLE_SYSTEMD "Install systemd components." OFF) option(BUILD_EXAMPLES "Build C examples." ON) option(BUILD_NDPI "Clone and build nDPI from github." OFF) if(BUILD_NDPI) + option(BUILD_NDPI_FORCE_GIT_UPDATE "Forcefully instruments nDPI build script to update the git submodule." OFF) unset(NDPI_NO_PKGCONFIG CACHE) unset(STATIC_LIBNDPI_INSTALLDIR CACHE) else() @@ -219,6 +220,7 @@ if(BUILD_NDPI) ADDITIONAL_ARGS=${NDPI_ADDITIONAL_ARGS} MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} DEST_INSTALL=${CMAKE_BINARY_DIR}/libnDPI + FORCE_GIT_UPDATE=${BUILD_NDPI_FORCE_GIT_UPDATE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/get-and-build-libndpi.sh BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/libnDPI/lib/libndpi.a BUILD_COMMAND "" diff --git a/scripts/get-and-build-libndpi.sh b/scripts/get-and-build-libndpi.sh index 102909d18..cd8be48ab 100755 --- a/scripts/get-and-build-libndpi.sh +++ b/scripts/get-and-build-libndpi.sh @@ -50,6 +50,7 @@ MAKE_PROGRAM=${MAKE_PROGRAM:-} MAKEFLAGS=${MAKEFLAGS} DEST_INSTALL=${DEST_INSTALL:-} NDPI_COMMIT_HASH=${NDPI_COMMIT_HASH:-} +FORCE_GIT_UPDATE=${FORCE_GIT_UPDATE:-} ----------------------------------- EOF @@ -60,7 +61,14 @@ cd "$(dirname "${0}")/.." GIT_SUCCESS=0 if [ -d ./.git -o -f ./.git ]; then GIT_SUCCESS=1 - LINES_CHANGED="$(git --no-pager diff ./libnDPI 2>/dev/null | wc -l || printf '0')" + + if [ ! -z "${FORCE_GIT_UPDATE}" ]; then + git submodule deinit --force -- ./libnDPI || { GIT_SUCCESS=0; true; } + LINES_CHANGED=0 + else + LINES_CHANGED="$(git --no-pager diff ./libnDPI 2>/dev/null | wc -l || printf '0')" + fi + if [ ${LINES_CHANGED} -eq 0 ]; then git submodule update --progress --init ./libnDPI || { GIT_SUCCESS=0; true; } else |