Skip to content

Commit 5c02c62

Browse files
committed
CMake config: More modern way of defining the C++ version to use
We declare that we need to use C++17, but this can be overridden on the cmake command line with "-DCMAKE_CXX_STANDARD=20" or so. Fixes #1010.
1 parent a83bc2d commit 5c02c62

File tree

4 files changed

+7
-21
lines changed

4 files changed

+7
-21
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ jobs:
9292
LUAJIT_OPTION: OFF
9393
POSTGRESQL_VERSION: 10
9494
POSTGIS_VERSION: 3
95-
CPP_VERSION: 17
9695
BUILD_TYPE: Debug
9796

9897
steps:
@@ -111,7 +110,6 @@ jobs:
111110
LUAJIT_OPTION: OFF
112111
POSTGRESQL_VERSION: 11
113112
POSTGIS_VERSION: 2.5
114-
CPP_VERSION: 17
115113
BUILD_TYPE: Debug
116114

117115
steps:
@@ -129,7 +127,6 @@ jobs:
129127
LUAJIT_OPTION: ON
130128
POSTGRESQL_VERSION: 12
131129
POSTGIS_VERSION: 2.5
132-
CPP_VERSION: 17
133130
BUILD_TYPE: Debug
134131

135132
steps:
@@ -148,7 +145,6 @@ jobs:
148145
LUAJIT_OPTION: ON
149146
POSTGRESQL_VERSION: 13
150147
POSTGIS_VERSION: 3
151-
CPP_VERSION: 17
152148
BUILD_TYPE: Debug
153149

154150
steps:
@@ -166,7 +162,6 @@ jobs:
166162
LUAJIT_OPTION: OFF
167163
POSTGRESQL_VERSION: 13
168164
POSTGIS_VERSION: 3
169-
CPP_VERSION: 17
170165
USE_PROJ_LIB: 6
171166
BUILD_TYPE: Debug
172167

@@ -185,7 +180,6 @@ jobs:
185180
LUAJIT_OPTION: OFF
186181
POSTGRESQL_VERSION: 13
187182
POSTGIS_VERSION: 3
188-
CPP_VERSION: 17
189183
USE_PROJ_LIB: off
190184
BUILD_TYPE: Debug
191185

@@ -204,7 +198,6 @@ jobs:
204198
LUAJIT_OPTION: OFF
205199
POSTGRESQL_VERSION: 14
206200
POSTGIS_VERSION: 3
207-
CPP_VERSION: 17
208201
USE_PROJ_LIB: 6
209202
BUILD_TYPE: Debug
210203

@@ -223,7 +216,6 @@ jobs:
223216
LUAJIT_OPTION: ON
224217
POSTGRESQL_VERSION: 13
225218
POSTGIS_VERSION: 2.5
226-
CPP_VERSION: 17
227219
BUILD_TYPE: Release
228220

229221
steps:
@@ -239,7 +231,6 @@ jobs:
239231
CXX: g++-10
240232
POSTGRESQL_VERSION: 13
241233
POSTGIS_VERSION: 2.5
242-
CPP_VERSION: 17
243234
BUILD_TYPE: Release
244235

245236
steps:
@@ -257,7 +248,6 @@ jobs:
257248
LUAJIT_OPTION: ON
258249
POSTGRESQL_VERSION: 14
259250
POSTGIS_VERSION: 3
260-
CPP_VERSION: 17
261251
BUILD_TYPE: Debug
262252

263253
steps:
@@ -275,7 +265,6 @@ jobs:
275265
LUAJIT_OPTION: OFF
276266
POSTGRESQL_VERSION: 14
277267
POSTGIS_VERSION: 3
278-
CPP_VERSION: 17
279268
USE_PROJ_LIB: 6
280269
BUILD_TYPE: Debug
281270

@@ -294,7 +283,6 @@ jobs:
294283
LUAJIT_OPTION: OFF
295284
POSTGRESQL_VERSION: 14
296285
POSTGIS_VERSION: 3
297-
CPP_VERSION: 17
298286
USE_PROJ_LIB: off
299287
BUILD_TYPE: Debug
300288

@@ -313,7 +301,6 @@ jobs:
313301
LUAJIT_OPTION: OFF
314302
POSTGRESQL_VERSION: 14
315303
POSTGIS_VERSION: 3
316-
CPP_VERSION: 17
317304
USE_PROJ_LIB: 6
318305
BUILD_TYPE: Debug
319306

@@ -333,7 +320,6 @@ jobs:
333320
LUAJIT_OPTION: ON
334321
POSTGRESQL_VERSION: 14
335322
POSTGIS_VERSION: 3
336-
CPP_VERSION: 17
337323
BUILD_TYPE: Release
338324

339325
steps:
@@ -350,7 +336,6 @@ jobs:
350336
EXTRA_FLAGS: -Wno-stringop-overread
351337
POSTGRESQL_VERSION: 14
352338
POSTGIS_VERSION: 3
353-
CPP_VERSION: 17
354339
BUILD_TYPE: Release
355340

356341
steps:

CMakeLists.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
cmake_minimum_required(VERSION 3.5.0)
2+
cmake_minimum_required(VERSION 3.8.0)
33

44
project(osm2pgsql VERSION 1.8.1 LANGUAGES CXX C)
55

@@ -37,12 +37,8 @@ if (NOT CMAKE_BUILD_TYPE)
3737
set(CMAKE_BUILD_TYPE RelWithDebInfo)
3838
endif()
3939

40-
if (NOT "${CMAKE_CXX_STANDARD}")
41-
set(CMAKE_CXX_STANDARD 17)
42-
endif()
43-
message(STATUS "Building in C++${CMAKE_CXX_STANDARD} mode")
40+
# We don't want to use special compiler extensions because we want portability
4441
set(CMAKE_CXX_EXTENSIONS OFF)
45-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
4642

4743
if (MSVC)
4844
add_definitions(-D_CRT_SECURE_NO_WARNINGS -DNOMINMAX)

src/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11

22
add_library(osm2pgsql_lib STATIC)
33

4+
# Set the minimum required C++ version for the library and hence for all
5+
# binaries that use it.
6+
target_compile_features(osm2pgsql_lib PUBLIC cxx_std_17)
7+
48
target_sources(osm2pgsql_lib PRIVATE
59
db-copy.cpp
610
debug-output.cpp

tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ add_definitions(-DTESTDATA_DIR=\"${osm2pgsql_SOURCE_DIR}/tests/data/\")
3636
add_definitions(-DOSM2PGSQLDATA_DIR=\"${osm2pgsql_SOURCE_DIR}/\")
3737

3838
add_library(catch_main_lib STATIC catch-main.cpp)
39+
target_compile_features(catch_main_lib PUBLIC cxx_std_17)
3940

4041
set_test(test-check-input LABELS NoDB)
4142
set_test(test-db-copy-thread)

0 commit comments

Comments
 (0)