From b647914d8e54bdcc1408cc473f5722eb93d18b48 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Mon, 13 Jan 2025 21:50:09 +0000 Subject: [PATCH] Install ICU from package repositories in CI Ubuntu 24.04 provides a new-enough version of ICU to be accepted by the libloot build. --- .github/workflows/ci.yml | 18 ++++-------------- .github/workflows/release.yml | 18 ++++-------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7118e5c..464e53f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,6 @@ jobs: runs-on: ubuntu-24.04 env: - ICU_MAJOR_VERSION: 71 LIBLOOT_VERSION: 0.24.5 steps: @@ -31,8 +30,7 @@ jobs: uses: actions/cache@v4 with: path: ${{ env.LIBLOOT_INSTALL_PATH }} - # Key includes ICU major version because libloot links against it as a shared library. - key: ${{ runner.os }}-libloot-${{ env.LIBLOOT_VERSION }}-icu-${{ env.ICU_MAJOR_VERSION }} + key: ${{ runner.os }}-libloot-${{ env.LIBLOOT_VERSION }} - name: Get descriptive version id: get-version @@ -49,17 +47,9 @@ jobs: sudo apt-get install -y --no-upgrade \ cbindgen \ libboost-dev \ + libicu-dev \ libtbb-dev - - name: Get ICU - id: get-icu - run: | - wget https://github.com/unicode-org/icu/releases/download/release-${ICU_MAJOR_VERSION}-1/icu4c-${ICU_MAJOR_VERSION}_1-Ubuntu20.04-x64.tgz - tar -xf icu4c-${ICU_MAJOR_VERSION}_1-Ubuntu20.04-x64.tgz - ICU_INSTALL_PATH="${{ github.workspace }}/icu/usr/local" - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ICU_INSTALL_PATH/lib" >> "$GITHUB_ENV" - echo "root=$ICU_INSTALL_PATH" >> $GITHUB_OUTPUT - - name: Download and build libloot run: | wget https://github.com/loot/libloot/archive/$LIBLOOT_VERSION.tar.gz @@ -68,7 +58,7 @@ jobs: mkdir libloot-$LIBLOOT_VERSION/build cd libloot-$LIBLOOT_VERSION/build - cmake .. -DICU_ROOT="${{ steps.get-icu.outputs.root }}" -DLIBLOOT_BUILD_TESTS=OFF -DLIBLOOT_INSTALL_DOCS=OFF -DCMAKE_INSTALL_PREFIX="$LIBLOOT_INSTALL_PATH" + cmake .. -DLIBLOOT_BUILD_TESTS=OFF -DLIBLOOT_INSTALL_DOCS=OFF -DCMAKE_INSTALL_PREFIX="$LIBLOOT_INSTALL_PATH" cmake --build . --target loot --config Release cmake --install . --config Release @@ -78,7 +68,7 @@ jobs: run: | mkdir build cd build - cmake .. -DICU_ROOT="${{ steps.get-icu.outputs.root }}" -DCMAKE_PREFIX_PATH="${{ env.LIBLOOT_INSTALL_PATH }}" -DCPACK_PACKAGE_VERSION="${{ steps.get-version.outputs.version }}" + cmake .. -DCMAKE_PREFIX_PATH="${{ env.LIBLOOT_INSTALL_PATH }}" -DCPACK_PACKAGE_VERSION="${{ steps.get-version.outputs.version }}" make all - name: Build archive diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c53b9b0..ef1b4dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,6 @@ jobs: needs: create_release env: - ICU_MAJOR_VERSION: 71 LIBLOOT_VERSION: 0.24.5 steps: @@ -52,8 +51,7 @@ jobs: uses: actions/cache@v4 with: path: ${{ env.LIBLOOT_INSTALL_PATH }} - # Key includes ICU major version because libloot links against it as a shared library. - key: ${{ runner.os }}-libloot-${{ env.LIBLOOT_VERSION }}-icu-${{ env.ICU_MAJOR_VERSION }} + key: ${{ runner.os }}-libloot-${{ env.LIBLOOT_VERSION }} - name: Get descriptive version id: get-version @@ -70,17 +68,9 @@ jobs: sudo apt-get install -y --no-upgrade \ cbindgen \ libboost-dev \ + libicu-dev \ libtbb-dev - - name: Get ICU - id: get-icu - run: | - wget https://github.com/unicode-org/icu/releases/download/release-${ICU_MAJOR_VERSION}-1/icu4c-${ICU_MAJOR_VERSION}_1-Ubuntu20.04-x64.tgz - tar -xf icu4c-${ICU_MAJOR_VERSION}_1-Ubuntu20.04-x64.tgz - ICU_INSTALL_PATH="${{ github.workspace }}/icu/usr/local" - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ICU_INSTALL_PATH/lib" >> "$GITHUB_ENV" - echo "root=$ICU_INSTALL_PATH" >> $GITHUB_OUTPUT - - name: Download and build libloot run: | wget https://github.com/loot/libloot/archive/$LIBLOOT_VERSION.tar.gz @@ -89,7 +79,7 @@ jobs: mkdir libloot-$LIBLOOT_VERSION/build cd libloot-$LIBLOOT_VERSION/build - cmake .. -DICU_ROOT="${{ steps.get-icu.outputs.root }}" -DLIBLOOT_BUILD_TESTS=OFF -DLIBLOOT_INSTALL_DOCS=OFF -DCMAKE_INSTALL_PREFIX="$LIBLOOT_INSTALL_PATH" + cmake .. -DLIBLOOT_BUILD_TESTS=OFF -DLIBLOOT_INSTALL_DOCS=OFF -DCMAKE_INSTALL_PREFIX="$LIBLOOT_INSTALL_PATH" cmake --build . --target loot --config Release cmake --install . --config Release @@ -99,7 +89,7 @@ jobs: run: | mkdir build cd build - cmake .. -DICU_ROOT="${{ steps.get-icu.outputs.root }}" -DCMAKE_PREFIX_PATH="${{ env.LIBLOOT_INSTALL_PATH }}" -DCPACK_PACKAGE_VERSION="${{ steps.get-version.outputs.version }}" + cmake .. -DCMAKE_PREFIX_PATH="${{ env.LIBLOOT_INSTALL_PATH }}" -DCPACK_PACKAGE_VERSION="${{ steps.get-version.outputs.version }}" make all - name: Build archive