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.
This commit is contained in:
Jochen Topf
2023-06-29 20:09:18 +02:00
parent a83bc2dcf6
commit 5c02c62679
4 changed files with 7 additions and 21 deletions

View File

@ -92,7 +92,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 10
POSTGIS_VERSION: 3
CPP_VERSION: 17
BUILD_TYPE: Debug
steps:
@ -111,7 +110,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 11
POSTGIS_VERSION: 2.5
CPP_VERSION: 17
BUILD_TYPE: Debug
steps:
@ -129,7 +127,6 @@ jobs:
LUAJIT_OPTION: ON
POSTGRESQL_VERSION: 12
POSTGIS_VERSION: 2.5
CPP_VERSION: 17
BUILD_TYPE: Debug
steps:
@ -148,7 +145,6 @@ jobs:
LUAJIT_OPTION: ON
POSTGRESQL_VERSION: 13
POSTGIS_VERSION: 3
CPP_VERSION: 17
BUILD_TYPE: Debug
steps:
@ -166,7 +162,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 13
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: 6
BUILD_TYPE: Debug
@ -185,7 +180,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 13
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: off
BUILD_TYPE: Debug
@ -204,7 +198,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: 6
BUILD_TYPE: Debug
@ -223,7 +216,6 @@ jobs:
LUAJIT_OPTION: ON
POSTGRESQL_VERSION: 13
POSTGIS_VERSION: 2.5
CPP_VERSION: 17
BUILD_TYPE: Release
steps:
@ -239,7 +231,6 @@ jobs:
CXX: g++-10
POSTGRESQL_VERSION: 13
POSTGIS_VERSION: 2.5
CPP_VERSION: 17
BUILD_TYPE: Release
steps:
@ -257,7 +248,6 @@ jobs:
LUAJIT_OPTION: ON
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
BUILD_TYPE: Debug
steps:
@ -275,7 +265,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: 6
BUILD_TYPE: Debug
@ -294,7 +283,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: off
BUILD_TYPE: Debug
@ -313,7 +301,6 @@ jobs:
LUAJIT_OPTION: OFF
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
USE_PROJ_LIB: 6
BUILD_TYPE: Debug
@ -333,7 +320,6 @@ jobs:
LUAJIT_OPTION: ON
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
BUILD_TYPE: Release
steps:
@ -350,7 +336,6 @@ jobs:
EXTRA_FLAGS: -Wno-stringop-overread
POSTGRESQL_VERSION: 14
POSTGIS_VERSION: 3
CPP_VERSION: 17
BUILD_TYPE: Release
steps:

View File

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.5.0)
cmake_minimum_required(VERSION 3.8.0)
project(osm2pgsql VERSION 1.8.1 LANGUAGES CXX C)
@ -37,12 +37,8 @@ if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()
if (NOT "${CMAKE_CXX_STANDARD}")
set(CMAKE_CXX_STANDARD 17)
endif()
message(STATUS "Building in C++${CMAKE_CXX_STANDARD} mode")
# We don't want to use special compiler extensions because we want portability
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -DNOMINMAX)

View File

@ -1,6 +1,10 @@
add_library(osm2pgsql_lib STATIC)
# Set the minimum required C++ version for the library and hence for all
# binaries that use it.
target_compile_features(osm2pgsql_lib PUBLIC cxx_std_17)
target_sources(osm2pgsql_lib PRIVATE
db-copy.cpp
debug-output.cpp

View File

@ -36,6 +36,7 @@ add_definitions(-DTESTDATA_DIR=\"${osm2pgsql_SOURCE_DIR}/tests/data/\")
add_definitions(-DOSM2PGSQLDATA_DIR=\"${osm2pgsql_SOURCE_DIR}/\")
add_library(catch_main_lib STATIC catch-main.cpp)
target_compile_features(catch_main_lib PUBLIC cxx_std_17)
set_test(test-check-input LABELS NoDB)
set_test(test-db-copy-thread)