summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-01-16 16:07:14 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-01-16 16:07:14 (GMT)
commit8b7db43bc694c2b89b1309fc875bbdb907a90ceb (patch)
tree48b7e19dfb1937184f41aebd883b9a7eb52b8ca1 /Tests
parentba7227a0affed01c67f7a8994bd9373b212314ea (diff)
parent770ba876997d1038acdc1d54419152abd0970312 (diff)
downloadCMake-8b7db43bc694c2b89b1309fc875bbdb907a90ceb.zip
CMake-8b7db43bc694c2b89b1309fc875bbdb907a90ceb.tar.gz
CMake-8b7db43bc694c2b89b1309fc875bbdb907a90ceb.tar.bz2
Merge topic 'GNU-4.6-compile-features'
770ba876 Help: Add notes for topic 'GNU-4.6-compile-features' b15c008f Features: Record for GNU 4.6. f13a2eb1 Features: Adjust the RunCMake test to use more-common features. 1f19ac4d Features: Adjust cxx_variadic_templates unit test for GNU < 4.7. 0798d1e5 Features: Extend the generalized_initializers test for GNU < 4.7. 938bd94e Features: Test __GXX_EXPERIMENTAL_CXX0X__ macro for GNU < 4.7 compatibility. 462c630b Features: Don't test __cplusplus value for CXX98 on GNU. 222ec86f Features: Test an old value of __STDC_VERSION__ for GNU < 4.7 compatibility. 6e909035 Features: Record C/CXX dialect flags for GNU 4.6. bfc995cc Features: Remove wrong content from else() condition. 1532b921 Features: Make cxx_noexcept available from GNU 4.6. 1f4649e6 Features: Update the default_dialect test for old GNU-like compilers. a60027a6 Features: Ensure appropriate return value from feature test macros.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CompileFeatures/CMakeLists.txt8
-rw-r--r--Tests/CompileFeatures/cxx_generalized_initializers.cpp1
-rw-r--r--Tests/CompileFeatures/cxx_variadic_templates.cpp4
-rw-r--r--Tests/CompileFeatures/default_dialect.cpp2
-rw-r--r--Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycle.cmake6
-rw-r--r--Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycleSolved.cmake6
6 files changed, 16 insertions, 11 deletions
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 5ca1eb7..106f29c 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -142,23 +142,24 @@ if (CMAKE_CXX_COMPILE_FEATURES)
add_executable(IfaceCompileFeatures main.cpp)
target_link_libraries(IfaceCompileFeatures iface)
- add_definitions(-DEXPECT_OVERRIDE_CONTROL=1)
-
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=1
-DEXPECT_INHERITING_CONSTRUCTORS=1
-DEXPECT_FINAL=1
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
)
elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=1
-DEXPECT_INHERITING_CONSTRUCTORS=0
-DEXPECT_FINAL=1
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
)
else()
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=0
-DEXPECT_INHERITING_CONSTRUCTORS=0
-DEXPECT_FINAL=0
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
@@ -166,6 +167,7 @@ if (CMAKE_CXX_COMPILE_FEATURES)
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=1
-DEXPECT_INHERITING_CONSTRUCTORS=1
-DEXPECT_FINAL=1
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
@@ -173,12 +175,14 @@ if (CMAKE_CXX_COMPILE_FEATURES)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=1
-DEXPECT_INHERITING_CONSTRUCTORS=1
-DEXPECT_FINAL=1
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
)
else()
add_definitions(
+ -DEXPECT_OVERRIDE_CONTROL=1
-DEXPECT_INHERITING_CONSTRUCTORS=0
-DEXPECT_FINAL=1
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
diff --git a/Tests/CompileFeatures/cxx_generalized_initializers.cpp b/Tests/CompileFeatures/cxx_generalized_initializers.cpp
index 8013ef5..7bf356b 100644
--- a/Tests/CompileFeatures/cxx_generalized_initializers.cpp
+++ b/Tests/CompileFeatures/cxx_generalized_initializers.cpp
@@ -8,6 +8,7 @@ namespace std {
const _E* __begin_;
size_t __size_;
+ initializer_list(const int*, long unsigned int) {}
};
}
diff --git a/Tests/CompileFeatures/cxx_variadic_templates.cpp b/Tests/CompileFeatures/cxx_variadic_templates.cpp
index 1d5a706..a80e157 100644
--- a/Tests/CompileFeatures/cxx_variadic_templates.cpp
+++ b/Tests/CompileFeatures/cxx_variadic_templates.cpp
@@ -1,4 +1,4 @@
-template<int I, int... Is>
+template<int... Is>
struct Interface;
template<int I>
@@ -11,7 +11,7 @@ struct Interface<I>
};
template<int I, int... Is>
-struct Interface
+struct Interface<I, Is...>
{
static int accumulate()
{
diff --git a/Tests/CompileFeatures/default_dialect.cpp b/Tests/CompileFeatures/default_dialect.cpp
index 8d97926..a2ca268 100644
--- a/Tests/CompileFeatures/default_dialect.cpp
+++ b/Tests/CompileFeatures/default_dialect.cpp
@@ -14,7 +14,7 @@ Outputter<__cplusplus> o;
# if !DEFAULT_CXX98
# error Buildsystem error
# endif
-# if __cplusplus != 199711L
+# if __cplusplus != 199711L && __cplusplus != 1 && !defined(__GXX_EXPERIMENTAL_CXX0X__)
Outputter<__cplusplus> o;
# endif
#endif
diff --git a/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycle.cmake b/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycle.cmake
index 9d56bc0..d2c95ec 100644
--- a/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycle.cmake
+++ b/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycle.cmake
@@ -3,12 +3,12 @@ add_library(empty1 empty.cpp)
add_library(empty2 INTERFACE)
add_library(empty3 INTERFACE)
-target_compile_features(empty3 INTERFACE cxx_constexpr)
+target_compile_features(empty3 INTERFACE cxx_static_assert)
target_link_libraries(empty1
- # When starting, $<COMPILE_FEATURES:cxx_final> is '0', so 'freeze' the
+ # When starting, $<COMPILE_FEATURES:cxx_nullptr> is '0', so 'freeze' the
# CXX_STANDARD at 98 during computation.
- $<$<COMPILE_FEATURES:cxx_final>:empty2>
+ $<$<COMPILE_FEATURES:cxx_nullptr>:empty2>
# This would add cxx_constexpr, but that would require CXX_STANDARD = 11,
# which is not allowed after freeze. Report an error.
empty3
diff --git a/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycleSolved.cmake b/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycleSolved.cmake
index 0df548b..bbcf4e0 100644
--- a/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycleSolved.cmake
+++ b/Tests/RunCMake/CompileFeatures/LinkImplementationFeatureCycleSolved.cmake
@@ -3,12 +3,12 @@ add_library(empty1 empty.cpp)
add_library(empty2 INTERFACE)
add_library(empty3 INTERFACE)
-target_compile_features(empty3 INTERFACE cxx_constexpr)
+target_compile_features(empty3 INTERFACE cxx_static_assert)
target_link_libraries(empty1
- $<$<COMPILE_FEATURES:cxx_final>:empty2>
+ $<$<COMPILE_FEATURES:cxx_nullptr>:empty2>
empty3
)
# This, or populating the COMPILE_FEATURES property with a feature in the
-# same standard as cxx_final, solves the cycle above.
+# same standard as cxx_nullptr, solves the cycle above.
set_property(TARGET empty1 PROPERTY CXX_STANDARD 11)