diff options
-rw-r--r-- | .github/workflows/build.yml | 27 | ||||
-rw-r--r-- | cmake.deps/CMakeLists.txt | 6 |
2 files changed, 32 insertions, 1 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 605ba2b4c0..26197cdcd3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,3 +78,30 @@ jobs: - name: Install run: make install + + use-existing-src: + name: Test USE_EXISTING_SRC_DIR=ON builds with no network access + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + + - name: Install build dependencies + run: ./.github/scripts/install_deps.sh + + - name: Build bundled dependencies + run: make deps + + - name: Clean bundled dependencies à la neovim/deps + run: | + rm -rf ./build + find .deps .deps/build -maxdepth 1 '!' \( -name .deps -o -name build -o -name src \) -exec rm -r '{}' + + cd .deps/build/src + rm -rf ./*-build + rm -rf ./*-stamp/*-{configure,build,install,done} + for d in *; do (cd "$d"; rm -rf ./autom4te.cache; make clean || true; make distclean || true); done + + - name: Re-build bundled dependencies with no network access + run: unshare --map-root-user --net make deps DEPS_CMAKE_FLAGS=-DUSE_EXISTING_SRC_DIR=ON + + - name: Build + run: make CMAKE_FLAGS="-D CI_BUILD=ON" diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt index 4666ed4f1a..86d2228e68 100644 --- a/cmake.deps/CMakeLists.txt +++ b/cmake.deps/CMakeLists.txt @@ -88,7 +88,11 @@ foreach(dep ${DEPENDENCIES}) list(GET dep 0 name) list(GET dep 1 value) if(NOT ${name}) - set(${name} ${value}) + # _URL variables must NOT be set when USE_EXISTING_SRC_DIR is set, + # otherwise ExternalProject will try to re-download the sources. + if(NOT USE_EXISTING_SRC_DIR) + set(${name} ${value}) + endif() endif() endforeach() |