Skip to content

Commit dc552fb

Browse files
MariusCausemannMrDiverYixin-HuMarius Causemann
authored
Update dependencies, cmake and CI (including macOS ARM) (#86)
* Update tbb git tag * Revert "handle sizing field better; rm fast winding number" This reverts commit f2b09d3. * revert tbb hash * Migrated from tbb to oneapi/tbb * remove -Wfatal-errors * set c++11 * make c++17 conforming * use windingnumber from (updated) libigl * ensure new igl is used * remove include * handle sizing field better; rm fast winding number * revert sizing field + WN due to crash * update geogram * update cmake * revert libigl update * update CI * Update cache * Update continuous.yml * add libxrandr for geogram * conda prefix * add libxrandr devel * install cmake=3.29 * install librandr apt-get * update CLI and libigl * use conda-run * revert conda-run * allow populate(Eigen) via cmake policy * force conda cmake * add default shell to activate condo * add geogram dips * disable exact envelope * Update windows runner * add lib dep for windows * make run with gcc13 * add latest OS * bump TBB * build geogram static * update os names * update warnings * bump TBB to 2022 * disable warning as error * build static libigl * build static geogram * correctly set geogram options * set VORPALINE_PLATFORM * set correct windows platform * fix run example on windows * fix windows exe paths * try windows run example again * another attempt * fix failing test * try windows again * remove geogram graphics deps * and another * yet again * one more time * add debug tux * try mate again * remove checkout * fix win + add mate * add unix tools for win * yet another attempt * yet again * again * yet again v3 * yet again v4 * yet again v5 * yet again v6 * add TBB thread and stack controls again * initialization fix --------- Co-authored-by: Tristan Schulz <[email protected]> Co-authored-by: Yixin-Hu <[email protected]> Co-authored-by: Marius Causemann <[email protected]>
1 parent 5bd0135 commit dc552fb

19 files changed

+4280
-11132
lines changed

.github/workflows/continuous.yml

Lines changed: 63 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ env:
1212
CTEST_OUTPUT_ON_FAILURE: ON
1313
CTEST_PARALLEL_LEVEL: 2
1414

15+
defaults:
16+
run:
17+
shell: bash -el {0}
18+
1519
jobs:
1620
####################
1721
# Linux / macOS
@@ -23,145 +27,90 @@ jobs:
2327
strategy:
2428
fail-fast: false
2529
matrix:
26-
os: [ubuntu-18.04, macos-latest]
30+
os: [ubuntu-22.04, ubuntu-latest, macOS-13, macOS-14, macOS-latest, windows-2022]
2731
config: [Debug, Release]
28-
envelope: [ON, OFF]
32+
envelope: [OFF]
2933
include:
34+
- os: ubuntu-22.04
35+
name: ubuntu-22.04
36+
- os: ubuntu-latest
37+
name: ubuntu-latest
38+
- os: macos-13
39+
name: macOS-13
40+
- os: macos-14
41+
name: macOS-14 ARM64
3042
- os: macos-latest
31-
name: macOS
32-
- os: ubuntu-18.04
33-
name: Linux
43+
name: macOS-latest ARM64
44+
- os: windows-2022
45+
name: Windows
46+
3447
steps:
3548
- name: Checkout repository
36-
uses: actions/checkout@v1
49+
uses: actions/checkout@v4
3750
with:
3851
fetch-depth: 10
52+
submodules: "recursive"
53+
54+
- name: Setup tmate session
55+
uses: mxschmitt/action-tmate@v3
56+
timeout-minutes: 20
57+
with:
58+
detached: true
59+
60+
- name: Setup NMake (Windows)
61+
if: runner.os == 'Windows'
62+
uses: ilammy/msvc-dev-cmd@v1
63+
64+
- name: Setup Conda
65+
uses: conda-incubator/setup-miniconda@v3
66+
with:
67+
channels: conda-forge
68+
python-version: ${{ matrix.python-version }}
69+
channel-priority: true
70+
activate-environment: test-env
3971

40-
- name: Dependencies (Linux)
41-
if: runner.os == 'Linux'
42-
run: |
43-
sudo apt-get update
44-
sudo apt-get install \
45-
libblas-dev \
46-
libboost-filesystem-dev \
47-
libboost-system-dev \
48-
libboost-thread-dev \
49-
libglu1-mesa-dev \
50-
libsuitesparse-dev \
51-
xorg-dev \
52-
ccache
72+
- name: Install Dependencies
73+
run: conda install cmake=3.29 git -y
5374

54-
- name: Dependencies (macOS)
55-
if: runner.os == 'macOS'
56-
run: brew install suite-sparse ccache gmp
75+
- name: Install Dependencies (Windows)
76+
if: runner.os == 'Windows'
77+
run: conda install mpir zlib -y
5778

58-
- name: Cache Build
59-
id: cache-build
60-
uses: actions/cache@v1
61-
with:
62-
path: ~/.ccache
63-
key: ${{ runner.os }}-${{ matrix.config }}-${{ matrix.envelope }}-cache
79+
- name: Envs (Windows)
80+
if: runner.os == 'Windows'
81+
run: echo "CMAKE_GENERATOR=NMake Makefiles" >> $GITHUB_ENV
6482

65-
- name: Prepare ccache
66-
run: |
67-
ccache --max-size=1.0G
68-
ccache -V && ccache --show-stats && ccache --zero-stats
83+
- name: Configure ssl certificate
84+
if : runner.os == 'Windows'
85+
run: git config --global http.sslBackend schannel
6986

7087
- name: Configure
7188
run: |
7289
mkdir -p build
7390
cd build
7491
cmake .. \
75-
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
92+
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
7693
-DCMAKE_BUILD_TYPE=${{ matrix.config }} \
77-
-DFLOAT_TETWILD_WITH_EXACT_ENVELOPE=${{ matrix.envelope }} \
94+
-DFLOAT_TETWILD_WITH_EXACT_ENVELOPE=${{ matrix.envelope }}
7895
7996
- name: Build
80-
run: cd build; make -j2; ccache --show-stats
81-
97+
run: cd build; conda run -n test-env cmake --build . --parallel 2
98+
8299
- name: Tests
83100
run: cd build; ctest --verbose --output-on-failure
84101

85-
- name: Run Example
102+
- name: Run Example (Unix)
103+
if: runner.os != 'Windows'
86104
run: cd build; ./FloatTetwild_bin --input ../tests/bunny.off --level 0 --stop-energy 100
87105

88-
####################
89-
# Windows
90-
####################
91-
92-
Windows:
93-
name: Windows-${{ matrix.envelope }} (${{ matrix.config }})
94-
runs-on: windows-2019
95-
env:
96-
CC: cl.exe
97-
CXX: cl.exe
98-
SCCACHE_IDLE_TIMEOUT: "12000"
99-
strategy:
100-
fail-fast: false
101-
matrix:
102-
config: [Debug, Release]
103-
envelope: [ON, OFF]
104-
steps:
105-
- name: Stetup Conda
106-
uses: s-weigand/setup-conda@v1
107-
with:
108-
conda-channels: anaconda, conda-forge
109-
python-version: 3.6
110-
111-
- name: Install Dependencies
112-
shell: powershell
113-
run: |
114-
conda install -c conda-forge mpir -y
115-
116-
- name: Checkout repository
117-
uses: actions/checkout@v1
118-
with:
119-
fetch-depth: 10
120-
- uses: seanmiddleditch/gha-setup-ninja@master
121-
# https://github.com/actions/cache/issues/101
122-
- name: Set env
123-
run: |
124-
echo "appdata=$env:LOCALAPPDATA" >> ${env:GITHUB_ENV}
125-
echo "GMP_INC=C:\Miniconda\Library\include" >> ${env:GITHUB_ENV}
126-
echo "GMP_LIB=C:\Miniconda\Library\lib" >> ${env:GITHUB_ENV}
127-
128-
- name: Cache build
129-
id: cache-build
130-
uses: actions/cache@v1
131-
with:
132-
path: ${{ env.appdata }}\Mozilla\sccache
133-
key: ${{ runner.os }}-${{ matrix.config }}-${{ matrix.envelope }}-cache
134-
135-
- name: Prepare sccache
136-
run: |
137-
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
138-
scoop install sccache --global
139-
# Scoop modifies the PATH so we make it available for the next steps of the job
140-
echo "${env:PATH}" >> ${env:GITHUB_PATH}
141-
142-
- name: Configure and build
106+
- name: Run Example (Windows)
107+
if: runner.os == 'Windows'
143108
shell: cmd
144-
run: |
145-
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64
146-
cmake --version
147-
cmake -G Ninja ^
148-
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache ^
149-
-DCMAKE_BUILD_TYPE=${{ matrix.config }} ^
150-
-DFLOAT_TETWILD_WITH_EXACT_ENVELOPE=${{ matrix.envelope }} ^
151-
-B build ^
152-
-S .
153-
cd build
154-
ninja -j1
155-
156-
- name: Tests
157-
run: |
158-
cd build
159-
ctest --verbose --output-on-failure
160-
161-
- name: Run Example
162-
shell: powershell
163109
run: |
164110
cd build
165-
cp C:\Miniconda\Library\bin\mpir.dll .\
166-
cp C:\Miniconda\Library\bin\gmp.dll .\
167-
.\FloatTetwild_bin.exe --input ..\tests\bunny.off --level 0 --stop-energy 200
111+
rem Find the msvc_* directory automatically and copy the DLL
112+
for /d %%d in (msvc_*) do copy "%%d\tbb*.dll" .
113+
rem Copy the other DLL
114+
copy C:\Miniconda\envs\test-env\Library\bin\mpir.dll .
115+
rem Run the executable
116+
FloatTetwild_bin.exe --input ..\tests\bunny.off --level 0 --stop-energy 100

0 commit comments

Comments
 (0)