Bladeren bron

Merge topic 'GNU-4.4-compile-features'

965a50dc Features: Fix GNU 4.4 and 4.5 C standard level flags
7f4154a4 Features: Fix CompileFeatures non-feature tests for space in path
f40c19b5 Features: Fix CompileFeatures test for C non-features
Brad King 11 jaren geleden
bovenliggende
commit
be2a74dbcb
3 gewijzigde bestanden met toevoegingen van 22 en 4 verwijderingen
  1. 10 3
      Modules/Compiler/GNU-C.cmake
  2. 2 1
      Tests/CompileFeatures/CMakeLists.txt
  3. 10 0
      Tests/CompileFeatures/feature_test.c

+ 10 - 3
Modules/Compiler/GNU-C.cmake

@@ -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()

+ 2 - 1
Tests/CompileFeatures/CMakeLists.txt

@@ -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)

+ 10 - 0
Tests/CompileFeatures/feature_test.c

@@ -0,0 +1,10 @@
+
+#define STRINGIFY_IMPL(X) #X
+#define STRINGIFY(X) STRINGIFY_IMPL(X)
+
+#include STRINGIFY(TEST)
+
+int main(void)
+{
+  return 0;
+}