Skip to content

Commit e1ed1df

Browse files
committed
Definition of new CMake presets & usage in CI jobs
Additional interesting changes in this commit: - conan: use cmake-conan for better CMake-Conan integration - cmake+doc: Remove deprecated EXIV2_ENABLE_WIN_UNICODE - Ignore CMakeUserPresets.json - doc: Add notes about the usage of CMake presets
1 parent d4c7e11 commit e1ed1df

14 files changed

+327
-253
lines changed

.github/workflows/on_PR_linux_fuzz.yml

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,8 @@ jobs:
2424
2525
- name: build and compile
2626
run: |
27-
mkdir build && cd build && \
28-
cmake -GNinja -DEXIV2_ENABLE_PNG=ON \
29-
-DEXIV2_BUILD_SAMPLES=ON \
30-
-DEXIV2_ENABLE_WEBREADY=ON \
31-
-DEXIV2_ENABLE_CURL=ON \
32-
-DEXIV2_ENABLE_BMFF=ON \
33-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
34-
-DCMAKE_CXX_COMPILER=$(which clang++) \
35-
-DEXIV2_BUILD_FUZZ_TESTS=ON \
36-
-DEXIV2_TEAM_USE_SANITIZERS=ON \
37-
.. && \
38-
cmake --build . --parallel
27+
cmake --preset linux-sanitizers -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$(which clang++) -DEXIV2_BUILD_FUZZ_TESTS=ON -DEXIV2_BUILD_UNIT_TESTS=OFF
28+
cmake --build build --parallel
3929
4030
- name: Fuzz
4131
run: |

.github/workflows/on_PR_linux_matrix.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,8 @@ jobs:
3939
4040
- name: Build
4141
run: |
42-
cd build && \
43-
cmake -GNinja \
44-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
45-
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
46-
-DEXIV2_BUILD_SAMPLES=ON \
47-
-DEXIV2_ENABLE_PNG=ON \
48-
-DEXIV2_ENABLE_WEBREADY=ON \
49-
-DEXIV2_ENABLE_CURL=ON \
50-
-DEXIV2_BUILD_UNIT_TESTS=ON \
51-
-DEXIV2_ENABLE_BMFF=ON \
52-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
53-
-DCMAKE_INSTALL_PREFIX=install \
54-
.. && \
55-
cmake --build . --parallel
42+
cmake --preset base_linux -S . -B build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}}
43+
cmake --build build --parallel
5644
5745
- name: Install
5846
run: |

.github/workflows/on_PR_linux_special_builds.yml

Lines changed: 9 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,8 @@ jobs:
3737
3838
- name: Build
3939
run: |
40-
cd build && \
41-
cmake -GNinja \
42-
-DCMAKE_BUILD_TYPE=Debug \
43-
-DBUILD_SHARED_LIBS=ON \
44-
-DEXIV2_ENABLE_PNG=ON \
45-
-DEXIV2_ENABLE_WEBREADY=ON \
46-
-DEXIV2_ENABLE_CURL=ON \
47-
-DEXIV2_BUILD_UNIT_TESTS=ON \
48-
-DEXIV2_ENABLE_BMFF=ON \
49-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
50-
-DEXIV2_BUILD_SAMPLES=ON \
51-
-DBUILD_WITH_COVERAGE=ON \
52-
-DCMAKE_INSTALL_PREFIX=install \
53-
.. && \
54-
cmake --build . --parallel
40+
cmake --preset linux-coverage -S . -B build
41+
cmake --build build --parallel
5542
5643
- name: Tests + Upload coverage
5744
run: |
@@ -78,7 +65,6 @@ jobs:
7865

7966
- name: install dependencies
8067
run: |
81-
sudo apt-get update
8268
sudo apt-get install valgrind ninja-build
8369
pip3 install conan==1.45.0
8470
@@ -96,9 +82,8 @@ jobs:
9682
9783
- name: Build
9884
run: |
99-
cd build
100-
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=OFF -DCMAKE_INSTALL_PREFIX=install ..
101-
cmake --build . --parallel
85+
cmake --preset linux-release -S . -B build
86+
cmake --build build --parallel
10287
10388
- name: Tests with valgrind
10489
run: |
@@ -132,22 +117,8 @@ jobs:
132117
133118
- name: Build
134119
run: |
135-
cd build && \
136-
cmake -GNinja \
137-
-DCMAKE_BUILD_TYPE=Release \
138-
-DBUILD_SHARED_LIBS=ON \
139-
-DEXIV2_BUILD_SAMPLES=ON \
140-
-DEXIV2_ENABLE_PNG=ON \
141-
-DEXIV2_ENABLE_WEBREADY=ON \
142-
-DEXIV2_ENABLE_CURL=ON \
143-
-DEXIV2_BUILD_UNIT_TESTS=ON \
144-
-DEXIV2_ENABLE_BMFF=ON \
145-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
146-
-DBUILD_WITH_COVERAGE=OFF \
147-
-DEXIV2_TEAM_USE_SANITIZERS=ON \
148-
-DCMAKE_INSTALL_PREFIX=install \
149-
.. && \
150-
cmake --build . --parallel
120+
cmake --preset linux-sanitizers -S . -B build
121+
cmake --build build --parallel
151122
152123
- name: Tests
153124
run: |
@@ -163,8 +134,7 @@ jobs:
163134

164135
- name: install dependencies
165136
run: |
166-
sudo apt-get update
167-
sudo apt-get install valgrind doxygen graphviz gettext
137+
sudo apt-get install valgrind doxygen graphviz gettext ninja-build
168138
pip3 install conan==1.45.0
169139
170140
- name: Conan common config
@@ -181,22 +151,8 @@ jobs:
181151
182152
- name: Build
183153
run: |
184-
cd build && \
185-
cmake -DCMAKE_BUILD_TYPE=Release \
186-
-DBUILD_SHARED_LIBS=ON \
187-
-DEXIV2_BUILD_SAMPLES=ON \
188-
-DEXIV2_ENABLE_PNG=ON \
189-
-DEXIV2_ENABLE_WEBREADY=ON \
190-
-DEXIV2_ENABLE_CURL=ON \
191-
-DEXIV2_BUILD_UNIT_TESTS=ON \
192-
-DEXIV2_ENABLE_BMFF=ON \
193-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
194-
-DBUILD_WITH_COVERAGE=ON \
195-
-DEXIV2_BUILD_DOC=ON \
196-
-DEXIV2_ENABLE_NLS=ON \
197-
-DCMAKE_CXX_FLAGS="-DEXIV2_DEBUG_MESSAGES" \
198-
.. && \
199-
cmake --build . --parallel
154+
cmake --preset linux-release -S . -B build -DEXIV2_BUILD_DOC=ON -DCMAKE_CXX_FLAGS="-DEXIV2_DEBUG_MESSAGES"
155+
cmake --build build --parallel
200156
201157
- name: Generate documentation
202158
run: |

.github/workflows/on_PR_linux_staticAnalysis.yml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,7 @@ jobs:
4040
4141
- name: Configure
4242
run: |
43-
cd build && \
44-
cmake -DCMAKE_BUILD_TYPE=Debug \
45-
-DBUILD_SHARED_LIBS=ON \
46-
-DEXIV2_ENABLE_PNG=ON \
47-
-DEXIV2_ENABLE_WEBREADY=ON \
48-
-DEXIV2_ENABLE_CURL=ON \
49-
-DEXIV2_BUILD_UNIT_TESTS=ON \
50-
-DEXIV2_ENABLE_BMFF=ON \
51-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
52-
-DBUILD_WITH_COVERAGE=ON \
53-
-DCMAKE_INSTALL_PREFIX=install \
54-
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
55-
.. \
43+
cmake --preset linux-debug-NoConan -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
5644
5745
- name: Static Analysis
5846
env:

.github/workflows/on_PR_mac_matrix.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,8 @@ jobs:
3333
3434
- name: Build
3535
run: |
36-
mkdir build && cd build && \
37-
cmake -GNinja \
38-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
39-
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
40-
-DEXIV2_BUILD_SAMPLES=ON \
41-
-DEXIV2_ENABLE_PNG=ON \
42-
-DEXIV2_ENABLE_WEBREADY=ON \
43-
-DEXIV2_ENABLE_CURL=ON \
44-
-DEXIV2_BUILD_UNIT_TESTS=ON \
45-
-DEXIV2_ENABLE_BMFF=ON \
46-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
47-
-DCMAKE_INSTALL_PREFIX=install \
48-
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
49-
.. && \
50-
cmake --build . --parallel
36+
cmake --preset base_mac -S . -B build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations"
37+
cmake --build build --parallel
5138
5239
- name: Install
5340
run: |

.github/workflows/on_PR_mac_special_builds.yml

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,8 @@ jobs:
2828
2929
- name: Build
3030
run: |
31-
mkdir build && cd build && \
32-
cmake -GNinja \
33-
-DCMAKE_BUILD_TYPE=Release \
34-
-DBUILD_SHARED_LIBS=ON \
35-
-DEXIV2_BUILD_SAMPLES=ON \
36-
-DEXIV2_ENABLE_PNG=ON \
37-
-DEXIV2_ENABLE_WEBREADY=ON \
38-
-DEXIV2_ENABLE_CURL=ON \
39-
-DEXIV2_BUILD_UNIT_TESTS=ON \
40-
-DEXIV2_ENABLE_BMFF=ON \
41-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
42-
-DBUILD_WITH_COVERAGE=OFF \
43-
-DEXIV2_TEAM_USE_SANITIZERS=ON \
44-
-DCMAKE_INSTALL_PREFIX=install \
45-
.. && \
46-
cmake --build . --parallel
31+
cmake --preset base_mac -S . -B build -DEXIV2_TEAM_USE_SANITIZERS=ON
32+
cmake --build build --parallel
4733
4834
- name: Tests
4935
run: |

.github/workflows/on_PR_windows_matrix.yml

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,23 +73,12 @@ jobs:
7373
7474
- name: Build
7575
run: |
76-
cmake -GNinja `
77-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} `
78-
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} `
79-
-DEXIV2_ENABLE_NLS=OFF `
80-
-DEXIV2_ENABLE_WEBREADY=ON `
81-
-DEXIV2_ENABLE_BMFF=ON `
82-
-DEXIV2_BUILD_UNIT_TESTS=ON `
83-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON `
84-
-DCMAKE_INSTALL_PREFIX=install `
85-
-S . -B build && `
76+
cmake --preset base_windows -S . -B build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.shared_libraries}}
8677
cmake --build build --parallel
8778
8879
- name: Install
8980
run: |
90-
cd build
91-
cmake --install .
92-
tree /f install
81+
cmake --install build
9382
9483
- name: Test
9584
if: ${{matrix.platform == 'x64'}}
@@ -122,26 +111,26 @@ jobs:
122111
install: >-
123112
base-devel
124113
pacboy: >-
125-
toolchain:p
114+
cc:p
115+
gcc-libs:p
116+
libwinpthread:p
126117
cmake:p
118+
ninja:p
127119
expat:p
128120
gettext:p
129121
gtest:p
130122
libiconv:p
131123
zlib:p
124+
curl:p
132125
133126
- name: Build
134127
run: |
135-
cmake -G"MSYS Makefiles" \
136-
-DCMAKE_CXX_FLAGS=-Wno-deprecated \
128+
cmake --preset base_windows -S . -B build \
137129
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
138130
-DBUILD_SHARED_LIBS=${{matrix.shared_libraries}} \
139-
-DEXIV2_BUILD_SAMPLES=ON \
140-
-DEXIV2_ENABLE_NLS=OFF \
141-
-DEXIV2_ENABLE_WEBREADY=ON \
142-
-DEXIV2_ENABLE_BMFF=ON \
143-
-DEXIV2_BUILD_UNIT_TESTS=ON \
144-
-S . -B build && \
131+
-DCONAN_AUTO_INSTALL=OFF \
132+
-DCMAKE_CXX_FLAGS=-Wno-deprecated \
133+
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=OFF
145134
cmake --build build --parallel
146135
147136
- name: Test
@@ -176,6 +165,7 @@ jobs:
176165
gcc-g++
177166
cmake
178167
ninja
168+
libcurl-devel
179169
libexpat-devel
180170
libxml2-devel
181171
libxslt-devel
@@ -190,6 +180,7 @@ jobs:
190180
-DEXIV2_ENABLE_NLS=OFF \
191181
-DEXIV2_ENABLE_WIN_UNICODE=OFF \
192182
-DEXIV2_ENABLE_WEBREADY=ON \
183+
-DEXIV2_ENABLE_CURL=ON \
193184
-DEXIV2_ENABLE_BMFF=ON \
194185
-DEXIV2_BUILD_UNIT_TESTS=OFF \
195186
-S . -B build && \

.github/workflows/on_push_BasicWinLinMac.yml

Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,9 @@ jobs:
4848
conan profile update settings.compiler.version=17 default
4949
conan config set storage.path=$Env:GITHUB_WORKSPACE/conanCache
5050
51-
- name: Run Conan
52-
run: |
53-
md build
54-
cd build
55-
conan profile list
56-
conan install .. --build missing
57-
5851
- name: Build
5952
run: |
60-
cmake -GNinja `
61-
-DCMAKE_BUILD_TYPE=Release `
62-
-DBUILD_SHARED_LIBS=ON `
63-
-DEXIV2_BUILD_SAMPLES=ON `
64-
-DEXIV2_ENABLE_NLS=OFF `
65-
-DEXIV2_ENABLE_PNG=ON `
66-
-DEXIV2_ENABLE_WEBREADY=ON `
67-
-DEXIV2_ENABLE_BMFF=ON `
68-
-DEXIV2_BUILD_UNIT_TESTS=ON `
69-
-DEXIV2_ENABLE_WIN_UNICODE=OFF `
70-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON `
71-
-DCMAKE_INSTALL_PREFIX=install .. `
72-
-S . -B build && `
53+
cmake --preset win-release -S . -B build
7354
cmake --build build --parallel
7455
7556
@@ -100,20 +81,8 @@ jobs:
10081
10182
- name: build and compile
10283
run: |
103-
cd build && \
104-
cmake -GNinja \
105-
-DCMAKE_BUILD_TYPE=Release \
106-
-DBUILD_SHARED_LIBS=ON \
107-
-DEXIV2_BUILD_SAMPLES=ON \
108-
-DEXIV2_ENABLE_PNG=ON \
109-
-DEXIV2_ENABLE_WEBREADY=ON \
110-
-DEXIV2_ENABLE_CURL=ON \
111-
-DEXIV2_BUILD_UNIT_TESTS=ON \
112-
-DEXIV2_ENABLE_BMFF=ON \
113-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
114-
-DCMAKE_INSTALL_PREFIX=install \
115-
.. && \
116-
cmake --build . --parallel
84+
cmake --preset linux-release-NoConan -S . -B build
85+
cmake --build build --parallel
11786
11887
- name: Test
11988
run: |
@@ -141,21 +110,8 @@ jobs:
141110
142111
- name: build and compile
143112
run: |
144-
mkdir build && cd build && \
145-
cmake -GNinja \
146-
-DCMAKE_BUILD_TYPE=Release \
147-
-DBUILD_SHARED_LIBS=ON \
148-
-DEXIV2_BUILD_SAMPLES=ON \
149-
-DEXIV2_ENABLE_PNG=ON \
150-
-DEXIV2_ENABLE_WEBREADY=ON \
151-
-DEXIV2_ENABLE_CURL=ON \
152-
-DEXIV2_BUILD_UNIT_TESTS=ON \
153-
-DEXIV2_ENABLE_BMFF=ON \
154-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
155-
-DCMAKE_INSTALL_PREFIX=install \
156-
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
157-
.. && \
158-
cmake --build . --parallel
113+
cmake --preset base_mac -S . -B build -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations"
114+
cmake --build build --parallel
159115
160116
- name: Test
161117
run: |

.github/workflows/on_push_ExtraJobsForMain.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,8 @@ jobs:
3636
3737
- name: Build
3838
run: |
39-
cd build && \
40-
cmake -DCMAKE_BUILD_TYPE=Debug \
41-
-DBUILD_SHARED_LIBS=ON \
42-
-DEXIV2_ENABLE_PNG=ON \
43-
-DEXIV2_ENABLE_WEBREADY=ON \
44-
-DEXIV2_ENABLE_CURL=ON \
45-
-DEXIV2_BUILD_UNIT_TESTS=ON \
46-
-DEXIV2_ENABLE_BMFF=ON \
47-
-DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON \
48-
-DEXIV2_BUILD_SAMPLES=ON \
49-
-DBUILD_WITH_COVERAGE=ON \
50-
-DCMAKE_INSTALL_PREFIX=install \
51-
.. && \
52-
cmake --build .
39+
cmake --preset linux-coverage -S . -B build
40+
cmake --build build
5341
5442
- name: Tests + Upload coverage
5543
run: |

0 commit comments

Comments
 (0)