17
17
run : clang-format --version
18
18
- name : Formatting
19
19
run : find src include test -iregex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|hxx\)$' | xargs clang-format -n -Werror
20
+
20
21
build-linux :
21
22
runs-on : ubuntu-24.04
22
23
env :
@@ -34,17 +35,18 @@ jobs:
34
35
CORES=$(nproc)
35
36
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
36
37
echo "CTEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
38
+ echo "BUILD=build-${TARGET}-${CMAKE_BUILD_TYPE,,}" >> $GITHUB_ENV
37
39
- name : Get Libs
38
40
run : |
39
41
CMAKE_BUILD_TYPE=Release ./getlibs.sh $TARGET
40
- - name : Build
41
- run : |
42
- BUILD=build-${TARGET}-${CMAKE_BUILD_TYPE,,}
43
- cmake -S . -B "$BUILD" -DCMAKE_PREFIX_PATH="$PWD/local/${TARGET}" -DUBSAN=ON -DASAN=ON -DFIND_FATAL=ON
44
- cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
45
- ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
42
+ - name : Configure
43
+ run : cmake -S . -B "$BUILD" -DCMAKE_PREFIX_PATH="$PWD/local/${TARGET}" -DUBSAN=ON -DASAN=ON -DFIND_FATAL=ON
44
+ - name : Compile
45
+ run : cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
46
+ - name : Test
47
+ run : ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
46
48
47
- build-win :
49
+ build-mingw :
48
50
runs-on : ubuntu-24.04
49
51
env :
50
52
TARGET : x86_64-w64-mingw32
@@ -60,25 +62,25 @@ jobs:
60
62
run : |
61
63
sudo apt-get -qq update
62
64
sudo apt-get -qq install cmake ninja-build g++-mingw-w64-x86-64 mingw-w64-x86-64-dev mingw-w64-tools wine wine-binfmt
63
- sudo update-alternatives --set x86_64-w64-mingw32- gcc /usr/bin/x86_64-w64-mingw32 -gcc-posix
64
- sudo update-alternatives --set x86_64-w64-mingw32- g++ /usr/bin/x86_64-w64-mingw32 -g++-posix
65
+ sudo update-alternatives --set ${TARGET}- gcc /usr/bin/${TARGET} -gcc-posix
66
+ sudo update-alternatives --set ${TARGET}- g++ /usr/bin/${TARGET} -g++-posix
65
67
WINEPATH=$(./winepath-for $TARGET)
66
68
echo "WINEPATH=$WINEPATH" >> $GITHUB_ENV
67
69
CORES=$(nproc)
68
70
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
69
71
echo "CTEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
70
-
72
+ echo "BUILD=build-${TARGET}-${CMAKE_BUILD_TYPE,,}" >> $GITHUB_ENV
71
73
- name : Get Libs
72
74
run : |
73
75
CMAKE_BUILD_TYPE=Release ./getlibs.sh $TARGET
74
- - name : Build
75
- run : |
76
- BUILD=build-${TARGET}-${CMAKE_BUILD_TYPE,,}
77
- cmake -S . -B "$BUILD" -DCMAKE_PREFIX_PATH="$PWD/local/${TARGET}" -DFIND_FATAL=ON
78
- cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
79
- ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
76
+ - name : Configure
77
+ run : cmake -S . -B "$BUILD" -DCMAKE_PREFIX_PATH="$PWD/local/${TARGET}" -DFIND_FATAL=ON
78
+ - name : Compile
79
+ run : cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
80
+ - name : Test
81
+ run : ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
80
82
81
- build-macos :
83
+ build-macos-x86_64 :
82
84
runs-on : macos-latest
83
85
env :
84
86
TARGET : x86_64-darwin
@@ -94,34 +96,65 @@ jobs:
94
96
CORES=$(sysctl -n hw.ncpu)
95
97
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
96
98
echo "CTEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
99
+ echo "BUILD=build-${TARGET}-debug" >> $GITHUB_ENV
97
100
- name : Get Libs
98
101
run : |
99
102
CMAKE_BUILD_TYPE=Release ./getlibs.sh $TARGET
100
- - name : Build with getlibs
103
+ - name : Configure
104
+ run : cmake -S . -B "$BUILD" -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain/${TARGET}.cmake" -DCMAKE_PREFIX_PATH="$PWD/local/$TARGET" -DFIND_FATAL=ON
105
+ - name : Compile
106
+ run : cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
107
+ - name : Test
108
+ run : ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
109
+
110
+ build-macos-arm64 :
111
+ runs-on : macos-latest
112
+ env :
113
+ TARGET : arm64-darwin
114
+ CMAKE_GENERATOR : Ninja
115
+ CMAKE_BUILD_TYPE : Debug
116
+ CTEST_OUTPUT_ON_FAILURE : 1
117
+ CTEST_TEST_TIMEOUT : 20
118
+ steps :
119
+ - uses : actions/checkout@v4
120
+ - name : Install Ninja
101
121
run : |
102
- BUILD=build-${TARGET}-debug
103
- cmake -S . -B "$BUILD" -DCMAKE_PREFIX_PATH="$PWD/local/x86_64-darwin" -DFIND_FATAL=ON
104
- cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
105
- ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
122
+ brew install ninja
123
+ CORES=$(sysctl -n hw.ncpu)
124
+ echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
125
+ echo "CTEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
126
+ echo "BUILD=build-${TARGET}-debug" >> $GITHUB_ENV
127
+ - name : Get Libs
128
+ run : |
129
+ CMAKE_BUILD_TYPE=Release ./getlibs.sh $TARGET
130
+ - name : Configure
131
+ run : cmake -S . -B "$BUILD" -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain/${TARGET}.cmake" -DCMAKE_PREFIX_PATH="$PWD/local/$TARGET" -DFIND_FATAL=ON
132
+ - name : Compile
133
+ run : cmake --build "$BUILD" --config $CMAKE_BUILD_TYPE
134
+ - name : Test
135
+ run : ctest --test-dir "$BUILD" -C $CMAKE_BUILD_TYPE
106
136
107
137
build-windows :
108
138
runs-on : windows-latest
109
139
env :
140
+ TARGET : x86_64-windows
110
141
CMAKE_TOOLCHAIN_FILE : C:/vcpkg/scripts/buildsystems/vcpkg.cmake
111
142
CMAKE_BUILD_TYPE : Debug
112
143
STATIC : ON
113
144
CTEST_TEST_TIMEOUT : 20
114
145
CTEST_OUTPUT_ON_FAILURE : 1
115
146
steps :
116
147
- uses : actions/checkout@v4
148
+ - name : Setup
149
+ run : |
150
+ echo "BUILD=build-$env:TARGET-debug" >> $env:GITHUB_ENV
117
151
- name : Get Libs
118
152
run : |
119
153
vcpkg integrate install
120
- vcpkg install doctest --triplet x64-windows
121
- pwsh -Command { $env:CMAKE_BUILD_TYPE=Release; bash ./getlibs.sh x86_64-w64-mingw32 }
122
- - name : Build
123
- run : |
124
- $env:BUILD='build-x86_64-windows-debug'
125
- cmake -S . -B $env:BUILD -DCMAKE_PREFIX_PATH=${{ github.workspace }}/local/x86_64-w64-mingw32
126
- cmake --build $env:BUILD --config $env:CMAKE_BUILD_TYPE
127
- ctest --test-dir $env:BUILD -C $env:CMAKE_BUILD_TYPE
154
+ vcpkg install xxhash boost-math doctest benchmark --triplet x64-windows
155
+ - name : Connfigure
156
+ run : cmake -S . -B $env:BUILD
157
+ - name : Compile
158
+ run : cmake --build $env:BUILD --config $env:CMAKE_BUILD_TYPE
159
+ - name : Test
160
+ run : ctest --test-dir $env:BUILD -C $env:CMAKE_BUILD_TYPE
0 commit comments