hunter: support SuiteSparse-metis v7.5.1-1 without SuiteSparse::metis #19
Workflow file for this run
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: Android | |
on: [push, pull_request] | |
jobs: | |
build-android: | |
name: NDK-${{matrix.abi}}-${{matrix.build_type}}-${{matrix.lib}} | |
runs-on: ${{matrix.os}} | |
defaults: | |
run: | |
shell: bash -e -o pipefail {0} | |
env: | |
CCACHE_DIR: ${{github.workspace}}/ccache | |
CMAKE_GENERATOR: Ninja | |
DEBIAN_FRONTEND: noninteractive | |
strategy: | |
fail-fast: true | |
matrix: | |
os: | |
- ubuntu-20.04 | |
abi: | |
- arm64-v8a | |
- armeabi-v7a | |
- x86 | |
- x86_64 | |
build_type: | |
- Release | |
lib: | |
- shared | |
- static | |
android_api_level: | |
- '28' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
ccache \ | |
ninja-build | |
# Ensure the declared NDK version is always installed even if it's removed | |
# from the virtual environment. | |
- name: Setup NDK | |
env: | |
ANDROID_NDK_VERSION: 23.2.8568313 | |
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk | |
run: | | |
echo 'y' | ${{env.ANDROID_SDK_ROOT}}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{env.ANDROID_NDK_VERSION}}' | |
echo "ANDROID_NDK_ROOT=${{env.ANDROID_SDK_ROOT}}/ndk/${{env.ANDROID_NDK_VERSION}}" >> $GITHUB_ENV | |
- name: Cache Eigen | |
id: cache-eigen | |
uses: actions/cache@v3 | |
with: | |
path: eigen/ | |
key: NDK-${{matrix.os}}-eigen-3.4.0-${{matrix.abi}} | |
- name: Download Eigen | |
if: steps.cache-eigen.outputs.cache-hit != 'true' | |
run: | | |
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip | |
unzip eigen-3.4.0.zip | |
- name: Setup Eigen | |
if: steps.cache-eigen.outputs.cache-hit != 'true' | |
run: | | |
cmake -S eigen-3.4.0 -B build-eigen \ | |
-DBUILD_TESTING=OFF \ | |
-DCMAKE_ANDROID_API=${{matrix.android_api_level}} \ | |
-DCMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \ | |
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ | |
-DCMAKE_Fortran_COMPILER= \ | |
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/eigen \ | |
-DCMAKE_SYSTEM_NAME=Android \ | |
-DEIGEN_BUILD_DOC=OFF | |
cmake --build build-eigen \ | |
--config ${{matrix.build_type}} \ | |
--target install | |
- name: Cache gflags | |
id: cache-gflags | |
uses: actions/cache@v3 | |
with: | |
path: gflags/ | |
key: NDK-${{matrix.os}}-gflags-2.2.2-${{matrix.abi}}-${{matrix.build_type}}-${{matrix.lib}} | |
- name: Download gflags | |
if: steps.cache-gflags.outputs.cache-hit != 'true' | |
run: | | |
wget https://github.com/gflags/gflags/archive/refs/tags/v2.2.2.zip | |
unzip v2.2.2.zip | |
- name: Setup gflags | |
if: steps.cache-gflags.outputs.cache-hit != 'true' | |
run: | | |
cmake -S gflags-2.2.2 -B build-gflags \ | |
-DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \ | |
-DBUILD_TESTING=OFF \ | |
-DCMAKE_ANDROID_API=${{matrix.android_api_level}} \ | |
-DCMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \ | |
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ | |
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \ | |
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/gflags \ | |
-DCMAKE_SYSTEM_NAME=Android | |
cmake --build build-gflags \ | |
--config ${{matrix.build_type}} \ | |
--target install | |
- name: Cache glog | |
id: cache-glog | |
uses: actions/cache@v3 | |
with: | |
path: glog/ | |
key: NDK-${{matrix.os}}-glog-0.5-${{matrix.abi}}-${{matrix.build_type}}-${{matrix.lib}} | |
- name: Download glog | |
if: steps.cache-glog.outputs.cache-hit != 'true' | |
run: | | |
wget https://github.com/google/glog/archive/refs/tags/v0.5.0.zip | |
unzip v0.5.0.zip | |
- name: Setup glog | |
if: steps.cache-glog.outputs.cache-hit != 'true' | |
run: | | |
cmake -S glog-0.5.0 -B build-glog \ | |
-DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \ | |
-DBUILD_TESTING=OFF \ | |
-DCMAKE_ANDROID_API=${{matrix.android_api_level}} \ | |
-DCMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \ | |
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ | |
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \ | |
-DCMAKE_FIND_ROOT_PATH=${{github.workspace}}/gflags \ | |
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/glog \ | |
-DCMAKE_SYSTEM_NAME=Android | |
cmake --build build-glog \ | |
--config ${{matrix.build_type}} \ | |
--target install | |
- name: Cache Build | |
id: cache-build | |
uses: actions/cache@v3 | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: NDK-${{matrix.os}}-ccache-${{matrix.abi}}-${{matrix.build_type}}-${{matrix.lib}}-${{github.run_id}} | |
restore-keys: NDK-${{matrix.os}}-ccache-${{matrix.abi}}-${{matrix.build_type}}-${{matrix.lib}}- | |
- name: Setup Environment | |
if: matrix.build_type == 'Release' | |
run: | | |
echo 'CXXFLAGS=-flto' >> $GITHUB_ENV | |
- name: Configure | |
run: | | |
cmake -S . -B build_${{matrix.abi}} \ | |
-DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \ | |
-DCMAKE_ANDROID_API=${{matrix.android_api_level}} \ | |
-DCMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \ | |
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ | |
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \ | |
-DCMAKE_C_COMPILER_LAUNCHER=$(which ccache) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \ | |
-DCMAKE_FIND_ROOT_PATH="${{github.workspace}}/eigen;${{github.workspace}}/gflags;${{github.workspace}}/glog" \ | |
-DCMAKE_SYSTEM_NAME=Android | |
- name: Build | |
run: | | |
cmake --build build_${{matrix.abi}} \ | |
--config ${{matrix.build_type}} |