Skip to content

Commit 192b717

Browse files
committed
CI: use SymEngine as a dependency.
1 parent 9b686da commit 192b717

File tree

1 file changed

+82
-31
lines changed

1 file changed

+82
-31
lines changed

.github/workflows/ci.yml

Lines changed: 82 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,19 @@ jobs:
2222
- name: 'Windows static - C++'
2323
os: windows-latest
2424
python_bindings: OFF
25-
additional_cmake_options: -DLibXml2_DIR="C:\libxml2\libxml2-2.9.10\CMake" -DZLIB_DIR="C:\zlib\lib\cmake\ZLIB-1.2.12"
25+
additional_cmake_options: -DLibXml2_DIR="C:\libxml2\libxml2-2.9.10\CMake" -DSymEngine_DIR="C:\symengine\CMake" -DZLIB_DIR="C:\zlib\lib\cmake\ZLIB-1.2.12"
2626
- name: 'Windows shared - C++/Python'
2727
os: windows-latest
2828
python_bindings: ON
29-
additional_cmake_options: -DLibXml2_DIR="C:\libxml2\libxml2-2.9.10\CMake" -DZLIB_DIR="C:\zlib\lib\cmake\ZLIB-1.2.12"
29+
additional_cmake_options: -DLibXml2_DIR="C:\libxml2\libxml2-2.9.10\CMake" -DSymEngine_DIR="C:\symengine\CMake" -DZLIB_DIR="C:\zlib\lib\cmake\ZLIB-1.2.12"
3030
- name: 'Linux static - C++'
3131
os: ubuntu-latest
3232
python_bindings: OFF
33+
additional_cmake_options: -DCMAKE_PREFIX_PATH="$HOME"
3334
- name: 'Linux shared - C++/Python'
3435
os: ubuntu-latest
3536
python_bindings: ON
37+
additional_cmake_options: -DCMAKE_PREFIX_PATH="$HOME"
3638
- name: 'macOS static - C++ (Intel)'
3739
os: macos-15-intel
3840
python_bindings: OFF
@@ -62,12 +64,44 @@ jobs:
6264
- name: Configure MSVC (Windows only)
6365
if: ${{ runner.os == 'Windows' }}
6466
uses: ilammy/msvc-dev-cmd@v1
67+
- name: Install GMP (Windows only)
68+
if: ${{ runner.os == 'Windows' }}
69+
run: |
70+
cd C:\
71+
curl -L https://github.com/cellml/gha/releases/download/gha/gmp-Windows.tar.gz -o gmp.tar.gz -s
72+
tar -xzf gmp.tar.gz
73+
- name: Install GMP (Linux only)
74+
if: ${{ runner.os == 'Linux' }}
75+
run: |
76+
cd $HOME
77+
wget https://github.com/cellml/gha/releases/download/gha/gmp-Linux.tar.gz -O - | tar -xz
78+
- name: Install GMP (macOS only)
79+
if: ${{ runner.os == 'macOS' }}
80+
run: |
81+
cd $HOME
82+
wget https://github.com/cellml/gha/releases/download/gha/gmp-macOS.tar.gz -O - | tar -xz
6583
- name: Install libxml2 (Windows only)
6684
if: ${{ runner.os == 'Windows' }}
6785
run: |
6886
cd C:\
6987
curl -L https://github.com/cellml/gha/releases/download/gha/libxml2-Windows.tar.gz -o libxml2.tar.gz -s
7088
tar -xzf libxml2.tar.gz
89+
- name: Install SymEngine (Windows only)
90+
if: ${{ runner.os == 'Windows' }}
91+
run: |
92+
cd C:\
93+
curl -L https://github.com/cellml/gha/releases/download/gha/symengine-Windows.tar.gz -o symengine.tar.gz -s
94+
tar -xzf symengine.tar.gz
95+
- name: Install SymEngine (Linux only)
96+
if: ${{ runner.os == 'Linux' }}
97+
run: |
98+
cd $HOME
99+
wget https://github.com/cellml/gha/releases/download/gha/symengine-Linux.tar.gz -O - | tar -xz
100+
- name: Install SymEngine (macOS only)
101+
if: ${{ runner.os == 'macOS' }}
102+
run: |
103+
brew update
104+
brew install symengine
71105
- name: Install zlib (Windows only)
72106
if: ${{ runner.os == 'Windows' }}
73107
run: |
@@ -97,17 +131,25 @@ jobs:
97131
uses: cscouto/buildcache-action@v1
98132
- name: Install Emscripten
99133
run: brew install --overwrite emscripten
134+
- name: Install GMP
135+
run: |
136+
cd $HOME
137+
wget https://github.com/cellml/gha/releases/download/gha/gmp-WASM.tar.gz -O - | tar -xz
100138
- name: Install libxml2
101139
run: |
102140
cd $HOME
103141
wget https://github.com/cellml/gha/releases/download/gha/libxml2-WASM.tar.gz -O - | tar -xz
142+
- name: Install SymEngine
143+
run: |
144+
cd $HOME
145+
wget https://github.com/cellml/gha/releases/download/gha/symengine-WASM.tar.gz -O - | tar -xz
104146
- name: Install zlib
105147
run: |
106148
cd $HOME
107149
wget https://github.com/cellml/gha/releases/download/gha/zlib-WASM.tar.gz -O - | tar -xz
108150
- name: Configure libCellML
109151
run: |
110-
emcmake cmake -G Ninja -S . -B build-wasm -DBUILD_TYPE=Release -DLIBXML2_INCLUDE_DIR=$HOME/libxml2/include/libxml2 -DLIBXML2_LIBRARY=$HOME/libxml2/lib/libxml2.a -DZLIB_INCLUDE_DIR=$HOME/zlib/include -DZLIB_LIBRARY=$HOME/zlib/lib/libz.a
152+
emcmake cmake -G Ninja -S . -B build-wasm -DBUILD_TYPE=Release -DLIBXML2_DIR=$HOME/libxml2/lib/cmake -DSymEngine_DIR=$HOME/symengine/lib/cmake -DZLIB_DIR=$HOME/zlib/lib/cmake
111153
- name: Build libCellML
112154
run: cmake --build build-wasm
113155
- name: Unit testing
@@ -126,15 +168,18 @@ jobs:
126168
sudo apt install clang-format
127169
- name: Install CMake and Ninja
128170
uses: lukka/get-cmake@latest
129-
- name: Configure libCellML
171+
- name: Install GMP
130172
run: |
131-
mkdir build
132-
cd build
133-
cmake -G Ninja ..
134-
- name: Code formatting
173+
cd $HOME
174+
wget https://github.com/cellml/gha/releases/download/gha/gmp-Linux.tar.gz -O - | tar -xz
175+
- name: Install SymEngine
135176
run: |
136-
cd build
137-
ninja test_clang_format
177+
cd $HOME
178+
wget https://github.com/cellml/gha/releases/download/gha/symengine-Linux.tar.gz -O - | tar -xz
179+
- name: Configure libCellML
180+
run: cmake -G Ninja -S . -B build -DCMAKE_PREFIX_PATH="$HOME"
181+
- name: Code formatting
182+
run: cmake --build build --target test_clang_format
138183
coverage:
139184
name: Code coverage
140185
runs-on: macos-latest
@@ -151,16 +196,16 @@ jobs:
151196
run: |
152197
brew install --overwrite llvm
153198
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.bash_profile
154-
- name: Configure libCellML
199+
- name: Install SymEngine
155200
run: |
156-
mkdir build
157-
cd build
158-
cmake -G Ninja -DBINDINGS_PYTHON=OFF ..
201+
brew update
202+
brew install symengine
203+
- name: Configure libCellML
204+
run: cmake -G Ninja -S . -B build -DBINDINGS_PYTHON=OFF
159205
- name: Code coverage
160206
run: |
161-
cd build
162-
ninja llvm_coverage
163-
if [ `ninja llvm_coverage | grep TOTAL | sed 's/ /\n/g' | grep "100.00%" | wc -l | sed 's/ //g'` -eq 4 ]; then exit 0; else exit 1; fi
207+
cmake --build build --target llvm_coverage
208+
if [ `cmake --build build --target llvm_coverage | grep TOTAL | sed 's/ /\n/g' | grep "100.00%" | wc -l | sed 's/ //g'` -eq 4 ]; then exit 0; else exit 1; fi
164209
memory_leaks:
165210
name: Memory leaks
166211
runs-on: ubuntu-latest
@@ -177,15 +222,18 @@ jobs:
177222
run: |
178223
sudo apt update
179224
sudo apt install valgrind
180-
- name: Configure libCellML
225+
- name: Install GMP
181226
run: |
182-
mkdir build
183-
cd build
184-
cmake -G Ninja -DBINDINGS_PYTHON=OFF ..
185-
- name: Memory leaks
227+
cd $HOME
228+
wget https://github.com/cellml/gha/releases/download/gha/gmp-Linux.tar.gz -O - | tar -xz
229+
- name: Install SymEngine
186230
run: |
187-
cd build
188-
ninja memcheck
231+
cd $HOME
232+
wget https://github.com/cellml/gha/releases/download/gha/symengine-Linux.tar.gz -O - | tar -xz
233+
- name: Configure libCellML
234+
run: cmake -G Ninja -S . -B build -DBINDINGS_PYTHON=OFF -DCMAKE_PREFIX_PATH="$HOME"
235+
- name: Memory leaks
236+
run: cmake --build build --target memcheck
189237
documentation:
190238
name: Documentation
191239
runs-on: ubuntu-latest
@@ -205,12 +253,15 @@ jobs:
205253
- name: Install Sphinx
206254
run: |
207255
pip3 install sphinx
208-
- name: Configure libCellML
256+
- name: Install GMP
209257
run: |
210-
mkdir build
211-
cd build
212-
cmake -G Ninja -DBINDINGS_PYTHON=OFF ..
213-
- name: Documentation
258+
cd $HOME
259+
wget https://github.com/cellml/gha/releases/download/gha/gmp-Linux.tar.gz -O - | tar -xz
260+
- name: Install SymEngine
214261
run: |
215-
cd build
216-
ninja docs
262+
cd $HOME
263+
wget https://github.com/cellml/gha/releases/download/gha/symengine-Linux.tar.gz -O - | tar -xz
264+
- name: Configure libCellML
265+
run: cmake -G Ninja -S . -B build -DBINDINGS_PYTHON=OFF -DCMAKE_PREFIX_PATH="$HOME"
266+
- name: Documentation
267+
run: cmake --build build --target docs

0 commit comments

Comments
 (0)