Skip to content

Commit 3e8d89d

Browse files
authored
fix: use the latest supported standard instead of forcing C++-11 (#109)
1 parent 46690dd commit 3e8d89d

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

CMakeLists.txt

+15-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,21 @@ endif()
99

1010
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
1111
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
12-
set (CMAKE_CXX_STANDARD 11)
12+
13+
# if standard not provided, use the latest supported by the compiler
14+
if("${CMAKE_CXX_STANDARD}" STREQUAL "")
15+
function(_set_language_standard output language)
16+
foreach(version IN LISTS ARGN)
17+
if(DEFINED "CMAKE_${language}${version}_STANDARD_COMPILE_OPTION"
18+
OR DEFINED "CMAKE_${language}${version}_EXTENSION_COMPILE_OPTION"
19+
)
20+
set("${output}" "${version}" PARENT_SCOPE)
21+
break()
22+
endif()
23+
endforeach()
24+
endfunction()
25+
_set_language_standard(CMAKE_CXX_STANDARD CXX 20 17 14 11)
26+
endif()
1327

1428
include(GNUInstallDirs)
1529

0 commit comments

Comments
 (0)