-
Notifications
You must be signed in to change notification settings - Fork 0
109 lines (92 loc) · 3.21 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
name: Build
on:
push:
branches:
- main
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
CMAKE_PREFIX_PATH: ${{ matrix.cmake_prefix_path }}
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.osx_target }}
strategy:
fail-fast: false
matrix:
include:
- name: Linux
os: ubuntu-24.04
osx_target: ""
cmake_prefix_path: "/opt/intel/oneapi/tbb/latest"
cmake_flags: ""
cxx_flags: "-march=x86-64-v2"
- name: macOS-X64
os: macos-13
osx_target: "10.15"
cmake_prefix_path: ""
cmake_flags: '-D OpenMP_ROOT=`brew list libomp | grep libomp.a | sed -E "s/\/lib\/.*//"`'
cxx_flags: "-march=x86-64-v2"
- name: macOS-ARM64
os: macos-14
osx_target: "11.0"
cmake_prefix_path: ""
cmake_flags: '-D OpenMP_ROOT=`brew list libomp | grep libomp.a | sed -E "s/\/lib\/.*//"`'
cxx_flags: ""
# - name: Windows
# os: windows-latest
# osx_target: ""
# cmake_flags: ""
# cxx_flags: "-march=x86-64-v2"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
lfs: true
- name: Install dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt update -y
sudo apt install -y libomp-dev ninja-build
pip3 install --break-system-packages conan
- name: Install TBB (Linux)
if: runner.os == 'Linux'
shell: bash
run: |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update -y
sudo apt install -y intel-oneapi-tbb-devel
- name: Install dependencies (macOS)
if: runner.os == 'macOS'
run: brew install conan hdf5 libomp llvm ninja opencv tbb
- name: Install dependencies (Windows)
if: runner.os == 'Windows'
shell: bash
run: |
choco install ninja
pip3 install --upgrade conan
- name: Install clang
if: runner.os != 'macOS'
uses: egor-tensin/setup-clang@v1
- name: Setup conan
run: |
conan profile detect -f
git clone https://github.com/conan-io/cmake-conan.git -b develop2 external/cmake-conan
- name: CMake configure
run: >
cmake
-B build
-G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}"
-D CMAKE_PROJECT_TOP_LEVEL_INCLUDES=external/cmake-conan/conan_provider.cmake
${{ matrix.cmake_flags }}
- name: CMake build
run: cmake --build build
# - name: CTest
# run: ctest --test-dir build -C Release --output-on-failure -j 1