@@ -16,233 +16,6 @@ permissions:
1616 contents : read
1717
1818jobs :
19- build_cmake_tinyxml2 :
20-
21- strategy :
22- matrix :
23- os : [macos-13]
24- include :
25- - use_qt6 : On
26- fail-fast : false # Prefer quick result
27-
28- runs-on : ${{ matrix.os }}
29-
30- env :
31- # TODO: figure out why there are cache misses with PCH enabled
32- CCACHE_SLOPPINESS : pch_defines,time_macros
33-
34- steps :
35- - uses : actions/checkout@v4
36-
37- - name : ccache
38- uses : hendrikmuhs/ccache-action@v1.2
39- with :
40- key : ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
41-
42- - name : Install missing software on ubuntu
43- if : contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'Off'
44- run : |
45- sudo apt-get update
46- sudo apt-get install libxml2-utils libtinyxml2-dev qtbase5-dev qttools5-dev libqt5charts5-dev qtchooser
47-
48- - name : Install missing software on ubuntu
49- if : contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'On'
50- run : |
51- sudo apt-get update
52- sudo apt-get install libxml2-utils libtinyxml2-dev
53- # qt6-tools-dev-tools for lprodump
54- # qt6-l10n-tools for lupdate
55- sudo apt-get install qt6-base-dev libqt6charts6-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools libglx-dev libgl1-mesa-dev
56-
57- # coreutils contains "nproc"
58- - name : Install missing software on macos
59- if : contains(matrix.os, 'macos')
60- run : |
61- # pcre was removed from runner images in November 2022
62- brew install coreutils qt@6 tinyxml2 pcre
63-
64- - name : CMake build on ubuntu (with GUI / system tinyxml2)
65- if : contains(matrix.os, 'ubuntu')
66- run : |
67- cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=${{ matrix.use_qt6 }} -DWITH_QCHART=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
68- cmake --build cmake.output.tinyxml2 -- -j$(nproc)
69-
70- - name : CMake build on macos (with GUI / system tinyxml2)
71- if : contains(matrix.os, 'macos')
72- run : |
73- cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
74- cmake --build cmake.output.tinyxml2 -- -j$(nproc)
75-
76- - name : Run CMake test (system tinyxml2)
77- run : |
78- cmake --build cmake.output.tinyxml2 --target check -- -j$(nproc)
79-
80- build_cmake :
81-
82- strategy :
83- matrix :
84- os : [macos-13]
85- include :
86- - use_qt6 : On
87- fail-fast : false # Prefer quick result
88-
89- runs-on : ${{ matrix.os }}
90-
91- env :
92- # TODO: figure out why there are cache misses with PCH enabled
93- CCACHE_SLOPPINESS : pch_defines,time_macros
94-
95- steps :
96- - uses : actions/checkout@v4
97-
98- - name : ccache
99- uses : hendrikmuhs/ccache-action@v1.2
100- with :
101- key : ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
102-
103- - name : Install missing software on ubuntu
104- if : contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'Off'
105- run : |
106- sudo apt-get update
107- sudo apt-get install libxml2-utils qtbase5-dev qttools5-dev libqt5charts5-dev qtchooser
108-
109- # TODO: move latest compiler to separate step
110- # TODO: bail out on warnings with latest GCC
111- - name : Set up GCC
112- uses : egor-tensin/setup-gcc@v1
113- if : false # matrix.os == 'ubuntu-22.04'
114- with :
115- version : 13
116- platform : x64
117-
118- - name : Select compiler
119- if : false # matrix.os == 'ubuntu-22.04'
120- run : |
121- echo "CXX=g++-13" >> $GITHUB_ENV
122-
123- - name : Install missing software on ubuntu
124- if : contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'On'
125- run : |
126- sudo apt-get update
127- sudo apt-get install libxml2-utils
128- # qt6-tools-dev-tools for lprodump
129- # qt6-l10n-tools for lupdate
130- sudo apt-get install qt6-base-dev libqt6charts6-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools libglx-dev libgl1-mesa-dev
131-
132- # coreutils contains "nproc"
133- - name : Install missing software on macos
134- if : contains(matrix.os, 'macos')
135- run : |
136- # pcre was removed from runner images in November 2022
137- brew install coreutils qt@6 pcre
138-
139- - name : CMake build on ubuntu (with GUI)
140- if : contains(matrix.os, 'ubuntu')
141- run : |
142- cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=${{ matrix.use_qt6 }} -DWITH_QCHART=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
143- cmake --build cmake.output -- -j$(nproc)
144-
145- - name : CMake build on macos (with GUI)
146- if : contains(matrix.os, 'macos')
147- run : |
148- cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DQt6_DIR=$(brew --prefix qt@6)/lib/cmake/Qt6
149- cmake --build cmake.output -- -j$(nproc)
150-
151- - name : Run CMake test
152- run : |
153- cmake --build cmake.output --target check -- -j$(nproc)
154-
155- - name : Run CTest
156- run : |
157- pushd cmake.output
158- ctest --output-on-failure -j$(nproc)
159-
160- build_uchar :
161-
162- strategy :
163- matrix :
164- os : [macos-13]
165- fail-fast : false # Prefer quick result
166-
167- runs-on : ${{ matrix.os }}
168-
169- steps :
170- - uses : actions/checkout@v4
171-
172- - name : ccache
173- uses : hendrikmuhs/ccache-action@v1.2
174- with :
175- key : ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
176-
177- # coreutils contains "nproc"
178- - name : Install missing software on macos
179- if : contains(matrix.os, 'macos')
180- run : |
181- brew install coreutils
182-
183- - name : Build with Unsigned char
184- run : |
185- export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
186- make -j$(nproc) CXXFLAGS=-funsigned-char testrunner
187-
188- - name : Test with Unsigned char
189- run : |
190- ./testrunner TestSymbolDatabase
191-
192- build_mathlib :
193-
194- strategy :
195- matrix :
196- os : [macos-13]
197- fail-fast : false # Prefer quick result
198-
199- runs-on : ${{ matrix.os }}
200-
201- steps :
202- - uses : actions/checkout@v4
203-
204- - name : ccache
205- uses : hendrikmuhs/ccache-action@v1.2
206- with :
207- key : ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
208-
209- # coreutils contains "nproc"
210- - name : Install missing software on macos
211- if : contains(matrix.os, 'macos')
212- run : |
213- brew install coreutils
214-
215- - name : Build with TEST_MATHLIB_VALUE
216- run : |
217- export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
218- make -j$(nproc) CPPFLAGS=-DTEST_MATHLIB_VALUE all
219-
220- - name : Test with TEST_MATHLIB_VALUE
221- run : |
222- make -j$(nproc) CPPFLAGS=-DTEST_MATHLIB_VALUE check
223-
224- check_nonneg :
225-
226- strategy :
227- matrix :
228- os : [macos-13]
229- fail-fast : false # Prefer quick result
230-
231- runs-on : ${{ matrix.os }}
232-
233- steps :
234- - uses : actions/checkout@v4
235-
236- # coreutils contains "g++" (default is "c++") and "nproc"
237- - name : Install missing software on macos
238- if : contains(matrix.os, 'macos')
239- run : |
240- brew install coreutils
241-
242- - name : Check syntax with NONNEG
243- run : |
244- ls lib/*.cpp | xargs -n 1 -P $(nproc) g++ -fsyntax-only -std=c++0x -Ilib -Iexternals -Iexternals/picojson -Iexternals/simplecpp -Iexternals/tinyxml2 -DNONNEG
245-
24619 build :
24720
24821 strategy :
0 commit comments