Add some COMPILE_OPTIONS for specifying C++ dialect.
These are compiler-specific, compiler version specific, extension specific and standard version specific.
This commit is contained in:
parent
892243fc3b
commit
8238a6cd5d
|
@ -9,3 +9,16 @@ cmake_policy(GET CMP0025 appleClangPolicy)
|
||||||
if(NOT appleClangPolicy STREQUAL NEW)
|
if(NOT appleClangPolicy STREQUAL NEW)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
|
||||||
|
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
|
||||||
|
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
|
||||||
|
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||||
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
|
||||||
|
elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
|
||||||
|
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
|
||||||
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
|
||||||
|
endif()
|
||||||
|
|
|
@ -10,3 +10,16 @@ else()
|
||||||
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
|
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)
|
||||||
|
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
|
||||||
|
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
|
||||||
|
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||||
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
|
||||||
|
elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)
|
||||||
|
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
|
||||||
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
|
||||||
|
endif()
|
||||||
|
|
|
@ -21,6 +21,10 @@ CMAKE_C_COMPILER_ID == "${CMAKE_C_COMPILER_ID}"
|
||||||
CMAKE_C_COMPILER_VERSION == "${CMAKE_C_COMPILER_VERSION}"
|
CMAKE_C_COMPILER_VERSION == "${CMAKE_C_COMPILER_VERSION}"
|
||||||
CMAKE_CXX_COMPILER_ID == "${CMAKE_CXX_COMPILER_ID}"
|
CMAKE_CXX_COMPILER_ID == "${CMAKE_CXX_COMPILER_ID}"
|
||||||
CMAKE_CXX_COMPILER_VERSION == "${CMAKE_CXX_COMPILER_VERSION}"
|
CMAKE_CXX_COMPILER_VERSION == "${CMAKE_CXX_COMPILER_VERSION}"
|
||||||
|
CMAKE_CXX98_STANDARD_COMPILE_OPTION == "${CMAKE_CXX98_STANDARD_COMPILE_OPTION}"
|
||||||
|
CMAKE_CXX11_STANDARD_COMPILE_OPTION == "${CMAKE_CXX11_STANDARD_COMPILE_OPTION}"
|
||||||
|
CMAKE_CXX98_EXTENSION_COMPILE_OPTION == "${CMAKE_CXX98_EXTENSION_COMPILE_OPTION}"
|
||||||
|
CMAKE_CXX11_EXTENSION_COMPILE_OPTION == "${CMAKE_CXX11_EXTENSION_COMPILE_OPTION}"
|
||||||
|
|
||||||
// C shared library flag
|
// C shared library flag
|
||||||
CMAKE_SHARED_LIBRARY_C_FLAGS == "${CMAKE_SHARED_LIBRARY_C_FLAGS}"
|
CMAKE_SHARED_LIBRARY_C_FLAGS == "${CMAKE_SHARED_LIBRARY_C_FLAGS}"
|
||||||
|
|
Loading…
Reference in New Issue