Merge topic 'GNU-4.4-compile-features'
965a50dc
Features: Fix GNU 4.4 and 4.5 C standard level flags7f4154a4
Features: Fix CompileFeatures non-feature tests for space in pathf40c19b5
Features: Fix CompileFeatures test for C non-features
This commit is contained in:
commit
be2a74dbcb
|
@ -1,10 +1,15 @@
|
|||
include(Compiler/GNU)
|
||||
__compiler_gnu(C)
|
||||
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
|
||||
endif()
|
||||
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
endif()
|
||||
|
@ -12,7 +17,7 @@ endif()
|
|||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c1x")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu1x")
|
||||
endif()
|
||||
|
@ -29,8 +34,10 @@ macro(cmake_record_c_compile_features)
|
|||
endmacro()
|
||||
|
||||
set(_result 0)
|
||||
if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
|
||||
_get_gcc_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} CMAKE_C11_COMPILE_FEATURES)
|
||||
endif()
|
||||
if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
if (_result EQUAL 0)
|
||||
_get_gcc_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} CMAKE_C99_COMPILE_FEATURES)
|
||||
endif()
|
||||
|
|
|
@ -103,8 +103,9 @@ foreach(lang CXX C)
|
|||
try_compile(${feature}_works
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${feature}_test"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/feature_test.${${lang}_ext}"
|
||||
COMPILE_DEFINITIONS "-DTEST=${CMAKE_CURRENT_SOURCE_DIR}/${feature}.${${lang}_ext}"
|
||||
COMPILE_DEFINITIONS "-DTEST=${feature}.${${lang}_ext}"
|
||||
CMAKE_FLAGS "-DCMAKE_${lang}_STANDARD=${${lang}_standard_flag}"
|
||||
"-DINCLUDE_DIRECTORIES=${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
)
|
||||
if (${feature}_works)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
#define STRINGIFY_IMPL(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_IMPL(X)
|
||||
|
||||
#include STRINGIFY(TEST)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue