[Cmake-commits] CMake branch, next, updated. v3.1.0-rc2-739-g58f2628
Stephen Kelly
steveire at gmail.com
Tue Nov 18 18:46:41 EST 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 58f262804f3db7d2b0b18bddf2825c0e28818382 (commit)
via 18643c0e9ce0f9353ae6c8899b22c32394563282 (commit)
via b189110d93a399aacd2b2dbae20d089b152b9807 (commit)
via 49e2b689a8d5330cb58a09af7506bf58e17d4ab5 (commit)
via 7565ab2cd1e52356410b655a32241a422d5c93b2 (commit)
from ed3c5ae3a121e1f7e040edc6309b361a09762e16 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58f262804f3db7d2b0b18bddf2825c0e28818382
commit 58f262804f3db7d2b0b18bddf2825c0e28818382
Merge: ed3c5ae 18643c0
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Nov 18 18:46:38 2014 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Nov 18 18:46:38 2014 -0500
Merge topic 'default-lang-dialect-for-master' into next
18643c0e Merge branch 'default-lang-dialect' into default-lang-dialect-for-master
b189110d Features: Fix the default C dialect for Clang and GNU.
49e2b689 Features: Fix references to CXX compiler version in Clang-C.cmake.
7565ab2c Features: Test the CXX compiler only if it has features.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=18643c0e9ce0f9353ae6c8899b22c32394563282
commit 18643c0e9ce0f9353ae6c8899b22c32394563282
Merge: d526ebc b189110
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Nov 19 00:45:59 2014 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 19 00:45:59 2014 +0100
Merge branch 'default-lang-dialect' into default-lang-dialect-for-master
Conflicts:
Modules/Compiler/Clang-C.cmake
diff --cc Modules/Compiler/Clang-C.cmake
index 92119ba,d504d69..ebd5c43
--- a/Modules/Compiler/Clang-C.cmake
+++ b/Modules/Compiler/Clang-C.cmake
@@@ -21,16 -25,16 +25,16 @@@ endif(
macro(cmake_record_c_compile_features)
macro(_get_clang_features std_version list)
- record_compiler_features(C "-std=${std_version}" ${list})
+ record_compiler_features(C "${std_version}" ${list})
endmacro()
- if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+ if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
- _get_clang_features(c11 CMAKE_C11_COMPILE_FEATURES)
+ _get_clang_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} CMAKE_C11_COMPILE_FEATURES)
if (_result EQUAL 0)
- _get_clang_features(c99 CMAKE_C99_COMPILE_FEATURES)
+ _get_clang_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} CMAKE_C99_COMPILE_FEATURES)
endif()
if (_result EQUAL 0)
- _get_clang_features(c90 CMAKE_C90_COMPILE_FEATURES)
+ _get_clang_features(${CMAKE_C90_STANDARD_COMPILE_OPTION} CMAKE_C90_COMPILE_FEATURES)
endif()
else()
set(_result 0)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b189110d93a399aacd2b2dbae20d089b152b9807
commit b189110d93a399aacd2b2dbae20d089b152b9807
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Nov 17 23:24:31 2014 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 19 00:42:51 2014 +0100
Features: Fix the default C dialect for Clang and GNU.
Clang 3.4 uses C99 by default, and Clang 3.6 uses C11 by default:
http://thread.gmane.org/gmane.comp.compilers.clang.devel/39379
GNU 4.9 uses C90 by default, and GNU 5.0 uses C11 by default:
https://gcc.gnu.org/gcc-5/changes.html
Test that the default compiler settings result in the expected dialect
macros being defined for both C and CXX. Remove the unused main.c
file from the CompileFeatures unit test.
diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake
index d8c3601..d504d69 100644
--- a/Modules/Compiler/Clang-C.cmake
+++ b/Modules/Compiler/Clang-C.cmake
@@ -17,7 +17,11 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
endif()
-set(CMAKE_C_STANDARD_DEFAULT 90)
+if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6)
+ set(CMAKE_C_STANDARD_DEFAULT 11)
+elseif(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
+ set(CMAKE_C_STANDARD_DEFAULT 99)
+endif()
macro(cmake_record_c_compile_features)
macro(_get_clang_features std_version list)
diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake
index 35954be..24d439d 100644
--- a/Modules/Compiler/GNU-C.cmake
+++ b/Modules/Compiler/GNU-C.cmake
@@ -12,8 +12,11 @@ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
endif()
-# This may change in a future GNU version.
-set(CMAKE_C_STANDARD_DEFAULT 90)
+if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
+ set(CMAKE_C_STANDARD_DEFAULT 11)
+else(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
+ set(CMAKE_C_STANDARD_DEFAULT 90)
+endif()
macro(cmake_record_c_compile_features)
macro(_get_gcc_features std_version list)
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 5ce188a..cf86072 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -77,7 +77,23 @@ foreach(lang CXX C)
endif()
endforeach()
+if (CMAKE_C_COMPILE_FEATURES)
+ add_executable(default_dialect_C default_dialect.c)
+ target_compile_definitions(default_dialect_C PRIVATE
+ DEFAULT_C11=$<EQUAL:${CMAKE_C_STANDARD_DEFAULT},11>
+ DEFAULT_C99=$<EQUAL:${CMAKE_C_STANDARD_DEFAULT},99>
+ DEFAULT_C90=$<EQUAL:${CMAKE_C_STANDARD_DEFAULT},90>
+ )
+endif()
+
if (CMAKE_CXX_COMPILE_FEATURES)
+ add_executable(default_dialect default_dialect.cpp)
+ target_compile_definitions(default_dialect PRIVATE
+ DEFAULT_CXX14=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},14>
+ DEFAULT_CXX11=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},11>
+ DEFAULT_CXX98=$<EQUAL:${CMAKE_CXX_STANDARD_DEFAULT},98>
+ )
+
add_executable(CompileFeatures main.cpp)
set_property(TARGET CompileFeatures
PROPERTY COMPILE_FEATURES "cxx_auto_type"
diff --git a/Tests/CompileFeatures/default_dialect.c b/Tests/CompileFeatures/default_dialect.c
new file mode 100644
index 0000000..1b39dec
--- /dev/null
+++ b/Tests/CompileFeatures/default_dialect.c
@@ -0,0 +1,22 @@
+
+#if DEFAULT_C11
+# if __STDC_VERSION__ != 201112L
+# error Unexpected value for __STDC_VERSION__.
+# endif
+#elif DEFAULT_C99
+# if __STDC_VERSION__ != 199901L
+# error Unexpected value for __STDC_VERSION__.
+# endif
+#else
+# if !DEFAULT_C90
+# error Buildsystem error
+# endif
+# if defined(__STDC_VERSION__)
+# error Unexpected __STDC_VERSION__ definition
+# endif
+#endif
+
+int main()
+{
+ return 0;
+}
diff --git a/Tests/CompileFeatures/default_dialect.cpp b/Tests/CompileFeatures/default_dialect.cpp
new file mode 100644
index 0000000..10d2170
--- /dev/null
+++ b/Tests/CompileFeatures/default_dialect.cpp
@@ -0,0 +1,22 @@
+
+#if DEFAULT_CXX14
+# if __cplusplus != 201402L
+# error Unexpected value for __cplusplus.
+# endif
+#elif DEFAULT_CXX11
+# if __cplusplus != 201103L
+# error Unexpected value for __cplusplus.
+# endif
+#else
+# if !DEFAULT_CXX98
+# error Buildsystem error
+# endif
+# if __cplusplus != 199711L
+# error Unexpected __cplusplus value
+# endif
+#endif
+
+int main()
+{
+ return 0;
+}
diff --git a/Tests/CompileFeatures/main.c b/Tests/CompileFeatures/main.c
deleted file mode 100644
index 831c5eb2..0000000
--- a/Tests/CompileFeatures/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-
-int foo(int * restrict a, int * restrict b)
-{
- (void)a;
- (void)b;
- return 0;
-}
-
-int main()
-{
- return 0;
-}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49e2b689a8d5330cb58a09af7506bf58e17d4ab5
commit 49e2b689a8d5330cb58a09af7506bf58e17d4ab5
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Nov 18 22:02:17 2014 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 19 00:42:51 2014 +0100
Features: Fix references to CXX compiler version in Clang-C.cmake.
diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake
index 05d3c0b..d8c3601 100644
--- a/Modules/Compiler/Clang-C.cmake
+++ b/Modules/Compiler/Clang-C.cmake
@@ -6,7 +6,7 @@ if(WIN32 OR (APPLE AND NOT appleClangPolicy STREQUAL NEW))
return()
endif()
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
@@ -24,7 +24,7 @@ macro(cmake_record_c_compile_features)
record_compiler_features(C "-std=${std_version}" ${list})
endmacro()
- if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+ if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
_get_clang_features(c11 CMAKE_C11_COMPILE_FEATURES)
if (_result EQUAL 0)
_get_clang_features(c99 CMAKE_C99_COMPILE_FEATURES)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7565ab2cd1e52356410b655a32241a422d5c93b2
commit 7565ab2cd1e52356410b655a32241a422d5c93b2
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Nov 18 21:33:08 2014 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Nov 19 00:42:35 2014 +0100
Features: Test the CXX compiler only if it has features.
If using different C and CXX compilers, we might not have a
feature-full CXX compiler at this point.
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index d02ddaf..5ce188a 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -77,36 +77,38 @@ foreach(lang CXX C)
endif()
endforeach()
-add_executable(CompileFeatures main.cpp)
-set_property(TARGET CompileFeatures
- PROPERTY COMPILE_FEATURES "cxx_auto_type"
-)
-set_property(TARGET CompileFeatures
- PROPERTY CXX_STANDARD_REQUIRED TRUE
-)
+if (CMAKE_CXX_COMPILE_FEATURES)
+ add_executable(CompileFeatures main.cpp)
+ set_property(TARGET CompileFeatures
+ PROPERTY COMPILE_FEATURES "cxx_auto_type"
+ )
+ set_property(TARGET CompileFeatures
+ PROPERTY CXX_STANDARD_REQUIRED TRUE
+ )
-add_executable(GenexCompileFeatures main.cpp)
-set_property(TARGET GenexCompileFeatures
- PROPERTY COMPILE_FEATURES "$<1:cxx_auto_type>;$<0:not_a_feature>"
-)
+ add_executable(GenexCompileFeatures main.cpp)
+ set_property(TARGET GenexCompileFeatures
+ PROPERTY COMPILE_FEATURES "$<1:cxx_auto_type>;$<0:not_a_feature>"
+ )
-add_library(iface INTERFACE)
-set_property(TARGET iface
- PROPERTY INTERFACE_COMPILE_FEATURES "cxx_auto_type"
-)
-add_executable(IfaceCompileFeatures main.cpp)
-target_link_libraries(IfaceCompileFeatures iface)
+ add_library(iface INTERFACE)
+ set_property(TARGET iface
+ PROPERTY INTERFACE_COMPILE_FEATURES "cxx_auto_type"
+ )
+ add_executable(IfaceCompileFeatures main.cpp)
+ target_link_libraries(IfaceCompileFeatures iface)
-add_executable(CompileFeaturesGenex genex_test.cpp)
-set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11)
-target_compile_definitions(CompileFeaturesGenex PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+ add_executable(CompileFeaturesGenex genex_test.cpp)
+ set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11)
+ target_compile_definitions(CompileFeaturesGenex PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
-add_executable(CompileFeaturesGenex2 genex_test.cpp)
-target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_constexpr)
-target_compile_definitions(CompileFeaturesGenex2 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+ add_executable(CompileFeaturesGenex2 genex_test.cpp)
+ target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_constexpr)
+ target_compile_definitions(CompileFeaturesGenex2 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
-add_library(noexcept_iface INTERFACE)
-target_compile_features(noexcept_iface INTERFACE cxx_noexcept)
-add_executable(CompileFeaturesGenex3 genex_test.cpp)
-target_link_libraries(CompileFeaturesGenex3 PRIVATE noexcept_iface)
-target_compile_definitions(CompileFeaturesGenex3 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+ add_library(noexcept_iface INTERFACE)
+ target_compile_features(noexcept_iface INTERFACE cxx_noexcept)
+ add_executable(CompileFeaturesGenex3 genex_test.cpp)
+ target_link_libraries(CompileFeaturesGenex3 PRIVATE noexcept_iface)
+ target_compile_definitions(CompileFeaturesGenex3 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
+endif()
-----------------------------------------------------------------------
Summary of changes:
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list