Skip to content

Commit 8d118f8

Browse files
authored
Merge pull request #246 from CastXML/extend
ci: test all c++ versions
2 parents e6f4b19 + 84da222 commit 8d118f8

File tree

3 files changed

+88
-35
lines changed

3 files changed

+88
-35
lines changed

.github/workflows/tests.yml

+70-34
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
tests:
10-
name: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.version }}-python-${{ matrix.python-version }}-${{ matrix.castxml-epic }}
10+
name: ${{ matrix.os }} ${{ matrix.compiler }}${{ matrix.clang-version }} ${{ matrix.cppstd }} Python ${{ matrix.python-version }} Epic ${{ matrix.castxml-epic }}
1111
runs-on: ${{ matrix.os }}
1212

1313
strategy:
@@ -16,87 +16,116 @@ jobs:
1616
include:
1717
# UBUNTU 22.04 - CASTXML EPIC 0
1818
- os: ubuntu-22.04
19-
compiler: gcc
20-
version: "11"
19+
compiler: clang++
20+
clang-version: 13
21+
python-version: "3.13"
22+
castxml-epic: 0
23+
cppstd: "-std=c++98"
24+
25+
- os: ubuntu-22.04
26+
compiler: clang++
27+
clang-version: 14
28+
python-version: "3.13"
29+
castxml-epic: 0
30+
cppstd: "-std=c++98"
31+
32+
- os: ubuntu-22.04
33+
compiler: clang++
34+
clang-version: 15
2135
python-version: "3.13"
22-
castxml: "castxml"
2336
castxml-epic: 0
2437
cppstd: "-std=c++98"
2538

2639
- os: ubuntu-22.04
27-
compiler: gcc
28-
version: "11"
40+
compiler: clang++
41+
clang-version: 15
2942
python-version: "3.13"
30-
castxml: "castxml"
3143
castxml-epic: 1
3244
cppstd: "-std=c++98"
3345

3446
# UBUNTU 24.04 - CASTXML EPIC 0
3547
- os: ubuntu-24.04
36-
compiler: gcc
37-
version: "13"
48+
compiler: clang++
49+
clang-version: 16
3850
python-version: "3.9"
39-
castxml: "castxml"
4051
castxml-epic: 0
4152
cppstd: "-std=c++98"
4253

4354
- os: ubuntu-24.04
44-
compiler: gcc
45-
version: "13"
55+
compiler: clang++
56+
clang-version: 16
4657
python-version: "3.10"
47-
castxml: "castxml"
4858
castxml-epic: 0
4959
cppstd: "-std=c++98"
5060

5161
- os: ubuntu-24.04
52-
compiler: gcc
53-
version: "13"
62+
compiler: clang++
63+
clang-version: 16
5464
python-version: "3.11"
55-
castxml: "castxml"
5665
castxml-epic: 0
5766
cppstd: "-std=c++98"
5867

5968
- os: ubuntu-24.04
60-
compiler: gcc
61-
version: "13"
69+
compiler: clang++
70+
clang-version: 16
6271
python-version: "3.12"
63-
castxml: "castxml"
6472
castxml-epic: 0
6573
cppstd: "-std=c++98"
6674

6775
- os: ubuntu-24.04
68-
compiler: gcc
69-
version: "13"
76+
compiler: clang++
77+
clang-version: 16
7078
python-version: "3.13"
71-
castxml: "castxml"
7279
castxml-epic: 0
7380
cppstd: "-std=c++98"
7481

82+
# UBUNTU 24.04 - CASTXML EPIC 0 - c++XX
83+
- os: ubuntu-24.04
84+
compiler: clang++
85+
clang-version: 16
86+
python-version: "3.13"
87+
castxml-epic: 0
88+
cppstd: "-std=c++11"
89+
90+
- os: ubuntu-24.04
91+
compiler: clang++
92+
clang-version: 16
93+
python-version: "3.13"
94+
castxml-epic: 0
95+
cppstd: "-std=c++14"
96+
97+
- os: ubuntu-24.04
98+
compiler: clang++
99+
clang-version: 16
100+
python-version: "3.13"
101+
castxml-epic: 0
102+
cppstd: "-std=c++17"
103+
75104
# UBUNTU 24.04 - CASTXML EPIC 1
76105
- os: ubuntu-24.04
77-
compiler: gcc
78-
version: "13"
106+
compiler: clang++
107+
clang-version: 16
79108
python-version: "3.13"
80-
castxml: "castxml"
81109
castxml-epic: 1
82110
cppstd: "-std=c++98"
83111

84112
- os: ubuntu-24.04
85-
compiler: gcc
86-
version: "13"
113+
compiler: clang++
114+
clang-version: 16
87115
python-version: "3.13"
88-
castxml: "castxml"
89116
castxml-epic: 1
90117
cppstd: "-std=c++11"
91118

92119
# MACOS
93120
- os: macos-13
94-
compiler: xcode
95-
version: "default"
121+
compiler: clang++
122+
python-version: "3.13"
123+
castxml-epic: 0
124+
125+
- os: macos-14
126+
compiler: clang++
96127
python-version: "3.13"
97-
castxml: "castxml"
98128
castxml-epic: 0
99-
cppstd: "-std=c++98"
100129

101130
steps:
102131
- uses: actions/checkout@v4
@@ -116,12 +145,19 @@ jobs:
116145
- name: Run pycodestyle
117146
run: pycodestyle . --exclude=docs
118147

148+
- name: Write xml_generator.cfg
149+
if: contains(matrix.os, 'ubuntu')
150+
run: |
151+
echo "[xml_generator]" > tests/xml_generator.cfg
152+
echo "compiler_path=/usr/bin/${{ matrix.compiler }}-${{ matrix.clang-version }}" >> tests/xml_generator.cfg
153+
echo "ccflags=${{ matrix.cppstd }}" >> tests/xml_generator.cfg
154+
119155
- name: Setup castxml for Linux
120-
if: contains(matrix.os, 'ubuntu') && matrix.castxml == 'castxml'
156+
if: contains(matrix.os, 'ubuntu')
121157
run: |
122158
wget -q -O - https://data.kitware.com/api/v1/file/hashsum/sha512/bdbb67a10c5f8d1b738cd19cb074f409d4803e8077cb8c1072ef4eaf738fa871a73643f9c8282d58cae28d188df842c82ad6620b6d590b0396a0172a27438dce/download | tar zxf - -C ~/
123159
- name: Setup castxml for Mac
124-
if: matrix.os == 'macos-13'
160+
if: contains(matrix.os, 'macos')
125161
run: |
126162
wget -q -O - https://data.kitware.com/api/v1/file/hashsum/sha512/5d937e938f7b882a3a3e7941e68f8312d0898aaf2082e00003dd362b1ba70b98b0a08706a1be28e71652a6a0f1e66f89768b5eaa20e5a100592d5b3deefec3f0/download | tar zxf - -C ~/
127163
- name: Run tests

src/pygccxml/parser/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ def load_xml_generator_configuration(configuration, **defaults):
374374
375375
An example configuration file skeleton can be found
376376
`here <https://github.com/gccxml/pygccxml/blob/develop/
377-
unittests/xml_generator.cfg>`_.
377+
tests/xml_generator.cfg>`_.
378378
379379
"""
380380
parser = configuration

tests/xml_generator.cfg

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[xml_generator]
2+
# Specify which xml generator you want to use "castxml" or "gccxml"
3+
# "castxml is the default"
4+
xml_generator=
5+
# Path to castxml or gccxml executable file
6+
xml_generator_path=
7+
# Set the path to the compiler (for example "/usr/bin/gcc") for CastXML
8+
compiler_path=
9+
# Gccxml working directory - optional, could be set to your source code directory
10+
working_directory=
11+
# Additional include directories, as list of paths ["path1/file1.h", "path2/file2.h", ...]
12+
include_paths=
13+
# You can explicitly set what compiler it should emulate (for GCCXML)
14+
# Valid options are: g++, msvc6, msvc7, msvc71, msvc8, cl.
15+
compiler=
16+
# Keep xml files after errors (useful for debugging)
17+
keep_xml=

0 commit comments

Comments
 (0)