Skip to content

Commit

Permalink
ENH: Upgrade ITK from C++14 to C++17
Browse files Browse the repository at this point in the history
Follow-up to pull request #2563
commit daec0fd
"ENH: Upgrade ITK from C++11 to C++14"
  • Loading branch information
N-Dekker authored and dzenanz committed Mar 30, 2023
1 parent d4ac0de commit 513507e
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion CMake/ITKInitializeCXXStandard.cmake
@@ -1,6 +1,6 @@
## Set the default target properties for ITK
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14) # Supported values are 14, 17, 20, and 23.
set(CMAKE_CXX_STANDARD 17) # Supported values are 17, 20, and 23.
endif()
if(NOT CMAKE_CXX_STANDARD_REQUIRED)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down
8 changes: 4 additions & 4 deletions CMake/itkCompilerChecks.cmake
Expand Up @@ -28,13 +28,13 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND
message(FATAL_ERROR "Intel C++ (ICC) 17.0 or later is required.")
endif ()

# Make sure we have C++14 enabled.
if(NOT ITK_IGNORE_CMAKE_CXX14_CHECKS)
# Make sure we have C++17 enabled.
if(NOT ITK_IGNORE_CMAKE_CXX17_CHECKS)
# Needed to make sure libraries and executables not built by the
# itkModuleMacros still have the C++14 compiler flags enabled
# itkModuleMacros still have the C++17 compiler flags enabled
# Wrap this in an escape hatch for unknown compilers
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14) # Supported values are 14, 17, 20, and 23.
set(CMAKE_CXX_STANDARD 17) # Supported values are 17, 20, and 23.
endif()
if(NOT CMAKE_CXX_STANDARD_REQUIRED)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Expand Up @@ -33,9 +33,9 @@ endforeach()
include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/ITKInitializeCXXStandard.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/ITKInitializeBuildType.cmake)

# ==== Define language standard configurations requiring at least c++14 standard
if(CMAKE_CXX_STANDARD EQUAL "98" OR CMAKE_CXX_STANDARD LESS "14")
message(FATAL_ERROR "C++98 to C++11 are no longer supported in ITK version 5.3 and greater.")
# ==== Define language standard configurations requiring at least c++17 standard
if(CMAKE_CXX_STANDARD EQUAL "98" OR CMAKE_CXX_STANDARD LESS "17")
message(FATAL_ERROR "C++98 to C++14 are no longer supported in ITK version 5.4 and greater.")
endif()

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH})
Expand Down
4 changes: 2 additions & 2 deletions Wrapping/macro_files/itk_auto_load_submodules.cmake
Expand Up @@ -22,9 +22,9 @@ function(generate_castxml_commandline_flags)
# Avoid missing omp.h include
set(_castxml_cc_flags ${CMAKE_CXX_FLAGS})
if(CMAKE_CXX_EXTENSIONS)
set(_castxml_cc_flags "${_castxml_cc_flags} ${CMAKE_CXX14_EXTENSION_COMPILE_OPTION}")
set(_castxml_cc_flags "${_castxml_cc_flags} ${CMAKE_CXX17_EXTENSION_COMPILE_OPTION}")
else()
set(_castxml_cc_flags "${_castxml_cc_flags} ${CMAKE_CXX14_STANDARD_COMPILE_OPTION}")
set(_castxml_cc_flags "${_castxml_cc_flags} ${CMAKE_CXX17_STANDARD_COMPILE_OPTION}")
endif()

# Aggressive optimization flags cause cast_xml to give invalid error conditions
Expand Down

0 comments on commit 513507e

Please sign in to comment.