summaryrefslogtreecommitdiff
path: root/Tests/Module/WriteCompilerDetectionHeader/main.cpp
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-10-21 16:59:40 +0200
committerBrad King <brad.king@kitware.com>2014-05-14 13:57:30 -0400
commit62a4a67dc54f3b796cd2735b230a863815d932b2 (patch)
tree004d214d0fbfd240540b5941601cd39b86d4a549 /Tests/Module/WriteCompilerDetectionHeader/main.cpp
parentf782417b8cf3d9295ce33ca7214674e5db03efdd (diff)
downloadcmake-62a4a67dc54f3b796cd2735b230a863815d932b2.tar.gz
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 0000000000..8b4ea52f47
--- /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;
+}