From 4acd1419c81c1caac8004b10198ef51ad1377526 Mon Sep 17 00:00:00 2001 From: Johan Lorensson Date: Fri, 7 Sep 2018 00:45:35 +0200 Subject: Add C++ compiler support option for some msvc build projects. (#10487) By default, all projects are build using "default" compiler based on source file extension. There is a property in mono.props, MONO_COMPILE_AS_CPP that could change this and build selected projects (eglib, libgcmonosgen, libmini, libmono-dynamic, libmono-static, libmonodac, libmonoruntime, libmonoutils, mono, monodis, monograph and pedump) using C++ compiler. MONO_COMPILE_AS_CPP property could be set when calling msbuild or through VS property manager IDE. Default value is false building using "default" compiler (current behavior). When setting MONO_COMPILE_AS_CPP=true the build prefix will be altered to make sure the C++ build gets its own build folder, parallel to default build folders. Example of building using C++ compiler from msbuild: msbuild /p:PlatformToolset=v140 /p:Platform=x64 /p:Configuration=Release /p:MONO_TARGET_GC=sgen /p:MONO_COMPILE_AS_CPP=true msvc/mono.sln --- msvc/eglib.vcxproj | 5 +++++ msvc/libgcmonosgen.vcxproj | 5 +++++ msvc/libmini.vcxproj | 5 +++++ msvc/libmono-dynamic.vcxproj | 5 +++++ msvc/libmono-static.vcxproj | 5 +++++ msvc/libmonodac.vcxproj | 5 +++++ msvc/libmonoruntime.vcxproj | 5 +++++ msvc/libmonoutils.vcxproj | 5 +++++ msvc/mono.props | 13 ++++++++++--- msvc/mono.vcxproj | 5 +++++ msvc/monodis.vcxproj | 5 +++++ msvc/monograph.vcxproj | 5 +++++ msvc/pedump.vcxproj | 5 +++++ 13 files changed, 70 insertions(+), 3 deletions(-) (limited to 'msvc') diff --git a/msvc/eglib.vcxproj b/msvc/eglib.vcxproj index c4845c36745..d8d275a00f2 100644 --- a/msvc/eglib.vcxproj +++ b/msvc/eglib.vcxproj @@ -146,6 +146,11 @@ true + + + CompileAsCpp + + diff --git a/msvc/libgcmonosgen.vcxproj b/msvc/libgcmonosgen.vcxproj index f27c6652da1..3db4e154d23 100644 --- a/msvc/libgcmonosgen.vcxproj +++ b/msvc/libgcmonosgen.vcxproj @@ -158,6 +158,11 @@ true + + + CompileAsCpp + + diff --git a/msvc/libmini.vcxproj b/msvc/libmini.vcxproj index 62e9def9d79..5e411d0eb6b 100644 --- a/msvc/libmini.vcxproj +++ b/msvc/libmini.vcxproj @@ -194,6 +194,11 @@ %(AdditionalLibraryDirectories) + + + CompileAsCpp + + diff --git a/msvc/libmono-dynamic.vcxproj b/msvc/libmono-dynamic.vcxproj index 21e64c3495d..cbb0d9a0d0f 100644 --- a/msvc/libmono-dynamic.vcxproj +++ b/msvc/libmono-dynamic.vcxproj @@ -239,6 +239,11 @@ false + + + CompileAsCpp + + {b7098dfa-31e6-4006-8a15-1c9a4e925149} diff --git a/msvc/libmono-static.vcxproj b/msvc/libmono-static.vcxproj index 0c606ddb6af..19e7071fc10 100644 --- a/msvc/libmono-static.vcxproj +++ b/msvc/libmono-static.vcxproj @@ -194,6 +194,11 @@ true + + + CompileAsCpp + + {158073ed-99ae-4196-9edc-ddb2344f8466} diff --git a/msvc/libmonodac.vcxproj b/msvc/libmonodac.vcxproj index 57b5fdaea0f..90f75e603e6 100644 --- a/msvc/libmonodac.vcxproj +++ b/msvc/libmonodac.vcxproj @@ -131,6 +131,11 @@ + + + CompileAsCpp + + diff --git a/msvc/libmonoruntime.vcxproj b/msvc/libmonoruntime.vcxproj index b9b512dddb3..0694b198a7f 100644 --- a/msvc/libmonoruntime.vcxproj +++ b/msvc/libmonoruntime.vcxproj @@ -166,6 +166,11 @@ + + + CompileAsCpp + + diff --git a/msvc/libmonoutils.vcxproj b/msvc/libmonoutils.vcxproj index fd727132bc6..e49c85fdbc8 100644 --- a/msvc/libmonoutils.vcxproj +++ b/msvc/libmonoutils.vcxproj @@ -172,6 +172,11 @@ + + + CompileAsCpp + + \ No newline at end of file diff --git a/msvc/mono.props b/msvc/mono.props index 6098d6bf222..a673bb551b9 100644 --- a/msvc/mono.props +++ b/msvc/mono.props @@ -11,7 +11,7 @@ sgen true - + true false @@ -19,6 +19,8 @@ false false + + false .. @@ -52,14 +54,16 @@ $(SGEN_DEFINES) libgcmonosgen.lib -sgen - $(MONO_BUILD_DIR_PREFIX)sgen/ + $(MONO_BUILD_DIR_PREFIX)sgen/ + $(MONO_BUILD_DIR_PREFIX)sgen-cpp/ HAVE_BOEHM_GC $(BOEHM_DEFINES) libgc.lib -boehm - $(MONO_BUILD_DIR_PREFIX)boehm/ + $(MONO_BUILD_DIR_PREFIX)boehm/ + $(MONO_BUILD_DIR_PREFIX)boehm-cpp/ libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmini$(MONO_TARGET_SUFFIX).lib;$(GC_LIB) @@ -109,6 +113,9 @@ $(MONO_ENABLE_LLVM) + + $(MONO_COMPILE_AS_CPP) + __default_codegen__;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;GC_NOT_DLL;WIN32_THREADS;WINVER=0x0601;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;_UNICODE;UNICODE;FD_SETSIZE=1024;NVALGRIND;$(MONO_ADDITIONAL_PREPROCESSOR_DEFINITIONS) diff --git a/msvc/mono.vcxproj b/msvc/mono.vcxproj index 7567c5e3b98..b8de263f6c5 100644 --- a/msvc/mono.vcxproj +++ b/msvc/mono.vcxproj @@ -181,6 +181,11 @@ Console + + + CompileAsCpp + + diff --git a/msvc/monodis.vcxproj b/msvc/monodis.vcxproj index 9f0bb69efb9..a0a41bb6d79 100644 --- a/msvc/monodis.vcxproj +++ b/msvc/monodis.vcxproj @@ -178,6 +178,11 @@ $(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) + + + CompileAsCpp + + diff --git a/msvc/monograph.vcxproj b/msvc/monograph.vcxproj index 29ca2e961b7..63b6b8bda80 100644 --- a/msvc/monograph.vcxproj +++ b/msvc/monograph.vcxproj @@ -178,6 +178,11 @@ $(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) + + + CompileAsCpp + + diff --git a/msvc/pedump.vcxproj b/msvc/pedump.vcxproj index d491a5bd266..c406117d733 100644 --- a/msvc/pedump.vcxproj +++ b/msvc/pedump.vcxproj @@ -178,6 +178,11 @@ Console + + + CompileAsCpp + + -- cgit v1.2.3