summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler/MSVC-DetermineCompiler.cmake
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-04-22 14:34:47 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-05-07 12:00:00 (GMT)
commit9d285600d484c8e539801310f2c4bbe2bb4daef8 (patch)
tree6f99d8532cd59c260584e85359ebbfe024a0d6f6 /Modules/Compiler/MSVC-DetermineCompiler.cmake
parentc7ddd409fd1898913423e62615215350c6bc7cf6 (diff)
downloadCMake-9d285600d484c8e539801310f2c4bbe2bb4daef8.zip
CMake-9d285600d484c8e539801310f2c4bbe2bb4daef8.tar.gz
CMake-9d285600d484c8e539801310f2c4bbe2bb4daef8.tar.bz2
Project: Generate the CXX compiler Id test from multiple files.
This will allow sharing of the logic of the order to test compilers in and the preprocessor macros used to do that and to determine the version components.
Diffstat (limited to 'Modules/Compiler/MSVC-DetermineCompiler.cmake')
-rw-r--r--Modules/Compiler/MSVC-DetermineCompiler.cmake19
1 files changed, 19 insertions, 0 deletions
diff --git a/Modules/Compiler/MSVC-DetermineCompiler.cmake b/Modules/Compiler/MSVC-DetermineCompiler.cmake
new file mode 100644
index 0000000..342476a
--- /dev/null
+++ b/Modules/Compiler/MSVC-DetermineCompiler.cmake
@@ -0,0 +1,19 @@
+
+set(_compiler_id_pp_test "defined(_MSC_VER)")
+
+set(_compiler_id_version_compute "
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif")