Проверка доступности стандарта C++17

This commit is contained in:
Andrei Astafev 2020-12-21 16:05:42 +03:00
parent 81bed8b385
commit a0cc72077c

View File

@ -34,16 +34,25 @@ endif()
# Выбор стандарта по умолчанию (можно переопределить в проекте) # Выбор стандарта по умолчанию (можно переопределить в проекте)
set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_CXX_STANDARD_REQUIRED YES)
check_cxx_compiler_flag(-std=c++14 HAVE_FLAG_STD_CXX14) check_cxx_compiler_flag(-std=c++17 HAVE_FLAG_STD_CXX17)
if(HAVE_FLAG_STD_CXX14) if(HAVE_FLAG_STD_CXX17)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 17)
check_cxx_compiler_flag(-std=gnu++14 HAVE_FLAG_STD_GNUXX14) check_cxx_compiler_flag(-std=gnu++17 HAVE_FLAG_STD_GNUXX17)
if(HAVE_FLAG_STD_GNUXX14) if(HAVE_FLAG_STD_GNUXX17)
set(CMAKE_CXX_EXTENSIONS YES) set(CMAKE_CXX_EXTENSIONS YES)
endif() endif()
else() else()
set(CMAKE_CXX_STANDARD 11) check_cxx_compiler_flag(-std=c++14 HAVE_FLAG_STD_CXX14)
set(CMAKE_CXX_EXTENSIONS YES) if(HAVE_FLAG_STD_CXX14)
set(CMAKE_CXX_STANDARD 14)
check_cxx_compiler_flag(-std=gnu++14 HAVE_FLAG_STD_GNUXX14)
if(HAVE_FLAG_STD_GNUXX14)
set(CMAKE_CXX_EXTENSIONS YES)
endif()
else()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS YES)
endif()
endif() endif()
# Common configuration for GCC, clang and Intel. # Common configuration for GCC, clang and Intel.