summaryrefslogtreecommitdiffstats
path: root/Tests/Module/WriteCompilerDetectionHeader/main.cpp
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-10-21 14:59:40 (GMT)
committerBrad King <brad.king@kitware.com>2014-05-14 17:57:30 (GMT)
commit62a4a67dc54f3b796cd2735b230a863815d932b2 (patch)
tree004d214d0fbfd240540b5941601cd39b86d4a549 /Tests/Module/WriteCompilerDetectionHeader/main.cpp
parentf782417b8cf3d9295ce33ca7214674e5db03efdd (diff)
downloadCMake-62a4a67dc54f3b796cd2735b230a863815d932b2.zip
CMake-62a4a67dc54f3b796cd2735b230a863815d932b2.tar.gz
CMake-62a4a67dc54f3b796cd2735b230a863815d932b2.tar.bz2
Add the WriteCompilerDetectionHeader module.
Provide a function to write a portable header to detect compiler features. Generate a preprocessor #error for unknown compilers and compiler versions whose features are not yet recorded. This error condition might be relaxed in the future, but for now it is useful for verification of expectations.
Diffstat (limited to 'Tests/Module/WriteCompilerDetectionHeader/main.cpp')
-rw-r--r--Tests/Module/WriteCompilerDetectionHeader/main.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/Tests/Module/WriteCompilerDetectionHeader/main.cpp b/Tests/Module/WriteCompilerDetectionHeader/main.cpp
new file mode 100644
index 0000000..8b4ea52
--- /dev/null
+++ b/Tests/Module/WriteCompilerDetectionHeader/main.cpp
@@ -0,0 +1,19 @@
+
+#include "test_compiler_detection.h"
+
+#define JOIN_IMPL(A, B) A ## B
+#define JOIN(A, B) JOIN_IMPL(A, B)
+#define CHECK(FEATURE) (JOIN(TEST_COMPILER_, FEATURE) == JOIN(EXPECTED_COMPILER_, FEATURE))
+
+#if !CHECK(CXX_DELEGATING_CONSTRUCTORS)
+#error cxx_delegating_constructors expected availability did not match.
+#endif
+
+#if !CHECK(CXX_VARIADIC_TEMPLATES)
+#error cxx_variadic_templates expected availability did not match.
+#endif
+
+int main()
+{
+ return 0;
+}