Skip to content

Commit 081d12a

Browse files
authored
Merge pull request #4366 from rouault/cpp_17
Build: Update to C++17 version
2 parents 0dd04bd + cdd7809 commit 081d12a

File tree

12 files changed

+419
-358
lines changed

12 files changed

+419
-358
lines changed

.github/workflows/clang_static_analyzer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ permissions:
1818
jobs:
1919

2020
clang_static_analyzer:
21-
runs-on: ubuntu-22.04
21+
runs-on: ubuntu-24.04
2222
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
2323
steps:
2424
- name: Checkout

.github/workflows/windows.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,13 @@ jobs:
7171
cd %PROJ_BUILD%
7272
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
7373
:: Not directly linked to BUILD_SHARED_LIBS, but a way to test different C++ standard versions
74-
if "${{ env.BUILD_SHARED_LIBS }}"=="ON" (set EXTRA_CXX_FLAGS="/std:c++20")
74+
if "${{ env.BUILD_SHARED_LIBS }}"=="ON" (set CMAKE_CXX_STANDARD="-DCMAKE_CXX_STANDARD=20")
7575
if "${{ env.BUILD_TYPE }}"=="Release" (set CMAKE_UNITY_BUILD_OPT="-DCMAKE_UNITY_BUILD=ON")
7676
cmake -D CMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" ^
7777
-D BUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" ^
7878
-D CMAKE_C_FLAGS="/WX" ^
79-
-D CMAKE_CXX_FLAGS="/WX %EXTRA_CXX_FLAGS%" ^
79+
-D CMAKE_CXX_FLAGS="/WX" ^
80+
%CMAKE_CXX_STANDARD% ^
8081
-D CMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake ^
8182
-D CMAKE_INSTALL_PREFIX="%PROJ_DIR%" ^
8283
-D PROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% ^

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ cmake_policy(SET CMP0054 NEW)
2121

2222
# Set C++ version
2323
# Make CMAKE_CXX_STANDARD available as cache option overridable by user
24-
set(CMAKE_CXX_STANDARD 11
25-
CACHE STRING "C++ standard version to use (default is 11)")
24+
set(CMAKE_CXX_STANDARD 17
25+
CACHE STRING "C++ standard version to use (default is 17)")
2626
message(STATUS "Requiring C++${CMAKE_CXX_STANDARD}")
2727
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2828
set(CMAKE_CXX_EXTENSIONS OFF)

docs/source/install.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ Build requirements
146146
++++++++++++++++++
147147

148148
- C99 compiler
149-
- C++11 compiler
149+
- C++17 compiler
150150
- CMake >= 3.16
151151
- SQLite3 >= 3.11: headers and library for target architecture, and sqlite3 executable for build architecture
152152
- libtiff >= 4.0 (optional but recommended)
@@ -160,7 +160,7 @@ Test requirements
160160

161161
These are only required if testing is built (see :option:`BUILD_TESTING`, default ON)
162162

163-
- GoogleTest (GTest) >= 1.8.1; if not found and :option:`TESTING_USE_NETWORK` is ON, then version 1.12.1 is fetched from GitHub and locally installed
163+
- GoogleTest (GTest) >= 1.8.1; if not found and :option:`TESTING_USE_NETWORK` is ON, then version 1.15.2 is fetched from GitHub and locally installed
164164
- Python >= 3.7
165165
- `importlib_metadata <https://pypi.org/project/importlib-metadata/>`_ only needed for Python 3.7
166166
- One of either `PyYAML <https://pypi.org/project/PyYAML/>`_ or `ruamel.yaml <https://pypi.org/project/ruamel.yaml/>`_

src/iso19111/coordinates.cpp

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,18 @@ CoordinateMetadataNNPtr
213213
CoordinateMetadata::promoteTo3D(const std::string &newName,
214214
const io::DatabaseContextPtr &dbContext) const {
215215
auto crs = d->crs_->promoteTo3D(newName, dbContext);
216-
auto coordinateMetadata(
217-
d->coordinateEpoch_.has_value()
218-
? CoordinateMetadata::nn_make_shared<CoordinateMetadata>(
219-
crs, coordinateEpochAsDecimalYear())
220-
: CoordinateMetadata::nn_make_shared<CoordinateMetadata>(crs));
221-
coordinateMetadata->assignSelf(coordinateMetadata);
222-
return coordinateMetadata;
216+
if (d->coordinateEpoch_.has_value()) {
217+
auto coordinateMetadata(
218+
CoordinateMetadata::nn_make_shared<CoordinateMetadata>(
219+
crs, coordinateEpochAsDecimalYear()));
220+
coordinateMetadata->assignSelf(coordinateMetadata);
221+
return coordinateMetadata;
222+
} else {
223+
auto coordinateMetadata(
224+
CoordinateMetadata::nn_make_shared<CoordinateMetadata>(crs));
225+
coordinateMetadata->assignSelf(coordinateMetadata);
226+
return coordinateMetadata;
227+
}
223228
}
224229

225230
// ---------------------------------------------------------------------------

src/iso19111/datum.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -818,13 +818,17 @@ EllipsoidNNPtr Ellipsoid::createSphere(const util::PropertyMap &properties,
818818
EllipsoidNNPtr Ellipsoid::createFlattenedSphere(
819819
const util::PropertyMap &properties, const common::Length &semiMajorAxisIn,
820820
const common::Scale &invFlattening, const std::string &celestialBody) {
821-
auto ellipsoid(invFlattening.value() == 0
822-
? Ellipsoid::nn_make_shared<Ellipsoid>(semiMajorAxisIn,
823-
celestialBody)
824-
: Ellipsoid::nn_make_shared<Ellipsoid>(
825-
semiMajorAxisIn, invFlattening, celestialBody));
826-
ellipsoid->setProperties(properties);
827-
return ellipsoid;
821+
if (invFlattening.value() == 0) {
822+
auto ellipsoid(Ellipsoid::nn_make_shared<Ellipsoid>(semiMajorAxisIn,
823+
celestialBody));
824+
ellipsoid->setProperties(properties);
825+
return ellipsoid;
826+
} else {
827+
auto ellipsoid(Ellipsoid::nn_make_shared<Ellipsoid>(
828+
semiMajorAxisIn, invFlattening, celestialBody));
829+
ellipsoid->setProperties(properties);
830+
return ellipsoid;
831+
}
828832
}
829833

830834
// ---------------------------------------------------------------------------

src/iso19111/factory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3114,9 +3114,9 @@ std::string
31143114
DatabaseContext::suggestsCodeFor(const common::IdentifiedObjectNNPtr &object,
31153115
const std::string &authName,
31163116
bool numericCode) {
3117-
const char *tableName = "";
3117+
const char *tableName = "prime_meridian";
31183118
if (dynamic_cast<const datum::PrimeMeridian *>(object.get())) {
3119-
tableName = "prime_meridian";
3119+
// tableName = "prime_meridian";
31203120
} else if (dynamic_cast<const datum::Ellipsoid *>(object.get())) {
31213121
tableName = "ellipsoid";
31223122
} else if (dynamic_cast<const datum::GeodeticReferenceFrame *>(

src/iso19111/io.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2832,9 +2832,9 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */
28322832
children[1]->GP()->value()));
28332833
}
28342834
} else {
2835-
const char *csTypeCStr = "";
2835+
const char *csTypeCStr = CartesianCS::WKT2_TYPE;
28362836
if (ci_equal(parentNodeName, WKTConstants::GEOCCS)) {
2837-
csTypeCStr = CartesianCS::WKT2_TYPE;
2837+
// csTypeCStr = CartesianCS::WKT2_TYPE;
28382838
isGeocentric = true;
28392839
if (axisCount == 0) {
28402840
auto unit =

0 commit comments

Comments
 (0)