@@ -3,10 +3,12 @@ name: CI
3
3
on : [push, pull_request]
4
4
5
5
env :
6
- BUILD_DIR : _build
6
+ M_BUILD_DIR : _build_meson
7
+ C_BUILD_DIR : _build_cmake
7
8
PIP_PACKAGES : >-
8
9
meson==0.55.3
9
10
ninja
11
+ cmake
10
12
gcovr
11
13
PIP_EXTRAS : >-
12
14
pkgconfig
60
62
61
63
- name : Configure build
62
64
run : >-
63
- meson setup ${{ env.BUILD_DIR }}
65
+ meson setup ${{ env.M_BUILD_DIR }}
64
66
--buildtype=debug
65
67
--prefix=$PWD/_dist
66
68
--libdir=lib
@@ -70,16 +72,33 @@ jobs:
70
72
-Dpython=true
71
73
72
74
- name : Build library
73
- run : meson compile -C ${{ env.BUILD_DIR }}
75
+ run : meson compile -C ${{ env.M_BUILD_DIR }}
74
76
75
77
- name : Run unit tests
76
78
run : |
77
- meson test -C ${{ env.BUILD_DIR }} --print-errorlogs --no-rebuild --num-processes 2 -t 2
78
- ninja -C ${{ env.BUILD_DIR }} coverage
79
+ meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild --num-processes 2 -t 2
80
+ ninja -C ${{ env.M_BUILD_DIR }} coverage
81
+
82
+ - name : Configure CMake build
83
+ run : >-
84
+ cmake
85
+ -B ${{ env.C_BUILD_DIR }}
86
+ -G Ninja
87
+ -DCMAKE_INSTALL_PREFIX=$PWD/_cdist
88
+
89
+ - name : Build project (CMake)
90
+ run : cmake --build ${{ env.C_BUILD_DIR }}
91
+
92
+ - name : Run unit tests (CTest)
93
+ run : ctest
94
+ working-directory : ${{ env.C_BUILD_DIR }}
95
+
96
+ - name : Install project (CMake)
97
+ run : cmake --install ${{ env.C_BUILD_DIR }}
79
98
80
99
- name : Install project
81
100
run : |
82
- meson install -C ${{ env.BUILD_DIR }} --no-rebuild
101
+ meson install -C ${{ env.M_BUILD_DIR }} --no-rebuild
83
102
echo "DFTD3_PREFIX=$PWD/_dist" >> $GITHUB_ENV
84
103
85
104
- name : Create package
@@ -107,7 +126,7 @@ jobs:
107
126
108
127
- name : Configure out-of-tree build
109
128
run : >-
110
- meson setup ${{ env.BUILD_DIR }}
129
+ meson setup ${{ env.M_BUILD_DIR }}
111
130
--prefix=$PWD/_dist
112
131
--libdir=lib
113
132
--warnlevel=0
@@ -116,11 +135,11 @@ jobs:
116
135
PKG_CONFIG_PATH : ${{ env.PKG_CONFIG_PATH }}:${{ env.DFTD3_PREFIX }}/lib/pkgconfig
117
136
118
137
- name : Build Python extension module
119
- run : meson compile -C ${{ env.BUILD_DIR }}
138
+ run : meson compile -C ${{ env.M_BUILD_DIR }}
120
139
working-directory : python
121
140
122
141
- name : Install Python extension module (meson)
123
- run : meson install -C ${{ env.BUILD_DIR }} --no-rebuild
142
+ run : meson install -C ${{ env.M_BUILD_DIR }} --no-rebuild
124
143
working-directory : python
125
144
126
145
python-build :
@@ -219,22 +238,35 @@ jobs:
219
238
mingw-w64-${{ matrix.arch }}-gcc-fortran
220
239
mingw-w64-${{ matrix.arch }}-python
221
240
mingw-w64-${{ matrix.arch }}-python-pip
241
+ mingw-w64-${{ matrix.arch }}-cmake
222
242
mingw-w64-${{ matrix.arch }}-ninja
223
243
224
244
- name : Install meson
225
245
run : pip3 install meson==0.55.3
226
246
227
247
- name : Configure build
228
- run : meson setup ${{ env.BUILD_DIR }} --warnlevel=0
248
+ run : meson setup ${{ env.M_BUILD_DIR }} --warnlevel=0
229
249
env :
230
250
FC : gfortran
231
251
CC : gcc
232
252
233
253
- name : Build project
234
- run : meson compile -C ${{ env.BUILD_DIR }}
254
+ run : meson compile -C ${{ env.M_BUILD_DIR }}
235
255
236
256
- name : Run unit tests
237
- run : meson test -C ${{ env.BUILD_DIR }} --print-errorlogs --no-rebuild
257
+ run : meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild
258
+ env :
259
+ OMP_NUM_THREADS : 2,1
260
+
261
+ - name : Configure cmake build
262
+ run : cmake -B ${{ env.C_BUILD_DIR }} -G Ninja -DWITH_BLAS=FALSE
263
+
264
+ - name : Build project (CMake)
265
+ run : cmake --build ${{ env.C_BUILD_DIR }}
266
+
267
+ - name : Run unit tests (CTest)
268
+ run : ctest
269
+ working-directory : ${{ env.C_BUILD_DIR }}
238
270
env :
239
271
OMP_NUM_THREADS : 2,1
240
272
@@ -276,10 +308,20 @@ jobs:
276
308
run : pip3 install meson ninja
277
309
278
310
- name : Configure meson build
279
- run : meson setup ${{ env.BUILD_DIR }}
311
+ run : meson setup ${{ env.M_BUILD_DIR }}
280
312
281
313
- name : Build library
282
- run : meson compile -C ${{ env.BUILD_DIR }}
314
+ run : meson compile -C ${{ env.M_BUILD_DIR }}
283
315
284
316
- name : Run unit tests
285
- run : meson test -C ${{ env.BUILD_DIR }} --print-errorlogs --no-rebuild
317
+ run : meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild
318
+
319
+ - name : Configure cmake build
320
+ run : cmake -B ${{ env.C_BUILD_DIR }} -G Ninja
321
+
322
+ - name : Build library (CMake)
323
+ run : cmake --build ${{ env.C_BUILD_DIR }}
324
+
325
+ - name : Run unit tests (CTest)
326
+ run : ctest
327
+ working-directory : ${{ env.C_BUILD_DIR }}
0 commit comments