Rework build system to use prebuilt ICU4C #45
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "FlorisBoard NLP: Build" | |
on: | |
push: | |
branches: [ main ] | |
paths-ignore: | |
- ".github/ISSUE_TEMPLATE/**" | |
- ".github/FUNDING.yml" | |
- ".clang-format" | |
- ".clang-tidy" | |
- ".editorconfig" | |
- "CONTRIBUTING.md" | |
- "LICENSE" | |
- "README.md" | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build_host: | |
name: "Build for Desktop" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up clang-16 dependencies & environment | |
run: | | |
sudo apt-get install -y libncurses5 | |
echo "llvm_toolchain=$HOME/clang+llvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04" >> "$GITHUB_ENV" | |
- name: Cache clang-16 | |
id: restore-clang | |
uses: actions/cache@v3 | |
with: | |
path: "${{ env.llvm_toolchain }}" | |
key: clang-download-ubuntu-22.04 | |
- name: Download and extract clang-16 | |
if: ${{ steps.restore-clang.outputs.cache-hit != 'true' }} | |
run: | | |
cd $HOME | |
wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.3/clang+llvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz | |
tar -xf clang+llvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz | |
- name: "Set up CMake and Ninja" | |
uses: lukka/get-cmake@latest | |
- name: "CMake: Configure release" | |
run: | | |
cmake --preset=release $(pwd) \ | |
-DCMAKE_C_COMPILER="${{ env.llvm_toolchain }}/bin/clang" \ | |
-DCMAKE_CXX_COMPILER="${{ env.llvm_toolchain }}/bin/clang++" | |
- name: "CMake: Build release" | |
run: | | |
cmake --build --preset=release $(pwd) \ | |
-DCMAKE_C_COMPILER="${{ env.llvm_toolchain }}/bin/clang" \ | |
-DCMAKE_CXX_COMPILER="${{ env.llvm_toolchain }}/bin/clang++" | |
- name: "Upload artifacts" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: florisboard-nlp-artifacts | |
path: build/release/bin/* |