summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeCSharpCompilerId.cs.in
diff options
context:
space:
mode:
authorMichael Stürmer <michael.stuermer@schaeffler.com>2016-12-12 13:52:29 (GMT)
committerBrad King <brad.king@kitware.com>2016-12-15 14:16:30 (GMT)
commit5c6c0344d32f9282059d46b6fe6f9925ac1f1202 (patch)
treefc9ce79ea985322807b73cbcd30bcc5cff5ce24d /Modules/CMakeCSharpCompilerId.cs.in
parent3874843f0f5be9d53001517b3697e0d092f0e845 (diff)
downloadCMake-5c6c0344d32f9282059d46b6fe6f9925ac1f1202.zip
CMake-5c6c0344d32f9282059d46b6fe6f9925ac1f1202.tar.gz
CMake-5c6c0344d32f9282059d46b6fe6f9925ac1f1202.tar.bz2
C# support: add compiler detection for MSVC
Diffstat (limited to 'Modules/CMakeCSharpCompilerId.cs.in')
-rw-r--r--Modules/CMakeCSharpCompilerId.cs.in63
1 files changed, 63 insertions, 0 deletions
diff --git a/Modules/CMakeCSharpCompilerId.cs.in b/Modules/CMakeCSharpCompilerId.cs.in
new file mode 100644
index 0000000..987f63a
--- /dev/null
+++ b/Modules/CMakeCSharpCompilerId.cs.in
@@ -0,0 +1,63 @@
+using System;
+
+namespace CSharp
+{
+ public class CSharpApp
+ {
+ const string InfoCompiler = "INFO:compiler[Microsoft "
+#if PlatformToolsetv100
+ + "Visual Studio"
+#elif PlatformToolsetv110
+ + "Visual Studio"
+#elif PlatformToolsetv120
+ + "Visual Studio"
+#elif PlatformToolsetv140
+ + "Visual Studio"
+#elif PlatformToolsetv141
+ + "Visual Studio"
+#else
+ + "unknown"
+#endif
+ + "]";
+
+ const string InfoPlatform = "INFO:platform[Windows]";
+
+ const string InfoArchitecture = "INFO:arch["
+#if Platformx64
+ + "x64"
+#elif Platformx86
+ + "x86"
+#elif PlatformxWin32
+ + "Win32]"
+#else
+ + "unknown"
+#endif
+ + "]";
+
+ const string InfoCompilerVersion = "INFO:compiler_version["
+#if PlatformToolsetv100
+ + "2010"
+#elif PlatformToolsetv110
+ + "2012"
+#elif PlatformToolsetv120
+ + "2013"
+#elif PlatformToolsetv140
+ + "2015"
+#elif PlatformToolsetv141
+ + "2017"
+#else
+ + "9999"
+#endif
+ + "]";
+
+ static void Main(string[] args)
+ {
+ // we have to print the lines to make sure
+ // the compiler does not optimize them away ...
+ System.Console.WriteLine(InfoCompiler);
+ System.Console.WriteLine(InfoPlatform);
+ System.Console.WriteLine(InfoArchitecture);
+ System.Console.WriteLine(InfoCompilerVersion);
+ }
+ }
+}