diff options
author | Filip Navara <filip.navara@gmail.com> | 2019-05-10 11:26:44 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2019-05-10 11:26:44 +0300 |
commit | 643b2ebfc6ad8a7cb2c21d3cac1a89ca3ceb3c9f (patch) | |
tree | 3961493adfb63fbb45aa217a7d2889249165fda4 /msvc | |
parent | 0e5e464cff103f104bee6beb22461ea7332fe102 (diff) |
[netcore] Enable MSVC builds of Mono w/ ENABLE_NETCORE (#14418)
* Enable MSVC builds of Mono w/ ENABLE_NETCORE
* Fix non-netcore build
* Move the ENABLE_NETCORE definition to config.h where it belongs
* Replace .def with linker #pragmas
* TARGET_WIN32 -> HOST_WIN32 && HOST_X86
* Pick up MONO_ENABLE_NETCORE from cygconfig.h
* Make `./configure --with-core=only` MSVC builds working
* Include netcore sources unconditionally, move the condition into the .c file
* Fix MSVC C++ netcore build on Win32
Diffstat (limited to 'msvc')
-rw-r--r-- | msvc/build-init.vcxproj | 1 | ||||
-rw-r--r-- | msvc/libmini-netcore.targets | 6 | ||||
-rw-r--r-- | msvc/libmini-netcore.targets.filters | 13 | ||||
-rw-r--r-- | msvc/libmini.targets | 1 | ||||
-rw-r--r-- | msvc/libmini.targets.filters | 1 | ||||
-rw-r--r-- | msvc/mono.props | 5 | ||||
-rw-r--r-- | msvc/mono.winconfig.targets | 3 |
7 files changed, 29 insertions, 1 deletions
diff --git a/msvc/build-init.vcxproj b/msvc/build-init.vcxproj index 1569f2bb172..3ae06c6936e 100644 --- a/msvc/build-init.vcxproj +++ b/msvc/build-init.vcxproj @@ -157,6 +157,7 @@ <Target Name="AfterBuildWinSetup"> <PropertyGroup> <_EnableDefines Condition="'$(MONO_ENABLE_LLVM)' == 'true'">$(_EnableDefines);ENABLE_LLVM;ENABLE_LLVM_RUNTIME</_EnableDefines> + <_EnableDefines Condition="'$(MONO_ENABLE_NETCORE)' == 'true'">$(_EnableDefines);ENABLE_NETCORE</_EnableDefines> <_HaveDefines Condition="'$(MONO_ENABLE_BTLS)' == 'true'">$(_HaveDefines);HAVE_BTLS</_HaveDefines> <_EnableDefines>$(_EnableDefines.Trim(';'))</_EnableDefines> <_HaveDefines>$(_HaveDefines.Trim(';'))</_HaveDefines> diff --git a/msvc/libmini-netcore.targets b/msvc/libmini-netcore.targets new file mode 100644 index 00000000000..62244796431 --- /dev/null +++ b/msvc/libmini-netcore.targets @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="netcore_sources"> + <ClCompile Include="$(MonoSourceLocation)\mono\mini\main-core.c" /> + </ItemGroup> +</Project> diff --git a/msvc/libmini-netcore.targets.filters b/msvc/libmini-netcore.targets.filters new file mode 100644 index 00000000000..a2ce4044444 --- /dev/null +++ b/msvc/libmini-netcore.targets.filters @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="netcore_sources"> + <ClCompile Include="$(MonoSourceLocation)\mono\mini\main-core.c"> + <Filter>Source Files$(MonoMiniFilterSubFolder)\netcore</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <Filter Include="Source Files$(MonoMiniFilterSubFolder)\netcore"> + <UniqueIdentifier>{80bfd698-91f3-4a08-8a20-766345b64ce0}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project> diff --git a/msvc/libmini.targets b/msvc/libmini.targets index 5202159d86e..c951c5ef9c2 100644 --- a/msvc/libmini.targets +++ b/msvc/libmini.targets @@ -6,4 +6,5 @@ <Import Project="$(MSBuildThisFileDirectory)libmini-arch.targets" /> <Import Project="$(MSBuildThisFileDirectory)libmini-interp.targets" /> <Import Project="$(MSBuildThisFileDirectory)libmini-llvm.targets" /> + <Import Project="$(MSBuildThisFileDirectory)libmini-netcore.targets" /> </Project> diff --git a/msvc/libmini.targets.filters b/msvc/libmini.targets.filters index 972f58bf861..2d1c7f9d84d 100644 --- a/msvc/libmini.targets.filters +++ b/msvc/libmini.targets.filters @@ -6,6 +6,7 @@ <Import Project="$(MSBuildThisFileDirectory)libmini-arch.targets.filters" /> <Import Project="$(MSBuildThisFileDirectory)libmini-interp.targets.filters" /> <Import Project="$(MSBuildThisFileDirectory)libmini-llvm.targets.filters" /> + <Import Project="$(MSBuildThisFileDirectory)libmini-netcore.targets.filters" /> <ItemGroup Condition="'$(MonoMiniFilterSubFolder)'!=''"> <Filter Include="Header Files$(MonoMiniFilterSubFolder)"> <UniqueIdentifier>{b64924de-7e02-416b-9779-4cc7fe0270e6}</UniqueIdentifier> diff --git a/msvc/mono.props b/msvc/mono.props index bee40b1dda6..559401bcb3c 100644 --- a/msvc/mono.props +++ b/msvc/mono.props @@ -27,6 +27,8 @@ <MONO_COMPILE_AS_CPP>false</MONO_COMPILE_AS_CPP> <!-- When true, mono binaries will link and include BTLS. When false, mono binaries will not link and include BTLS. --> <MONO_ENABLE_BTLS>false</MONO_ENABLE_BTLS> + <!-- When true, mono binaries will be compiled for use as a .NET Core runtime. --> + <MONO_ENABLE_NETCORE>false</MONO_ENABLE_NETCORE> </PropertyGroup> <PropertyGroup Label="MonoDirectories"> <MonoSourceLocation Condition="'$(MonoSourceLocation)' == '' ">..</MonoSourceLocation> @@ -112,6 +114,9 @@ <BuildMacro Include="MONO_ENABLE_BTLS"> <Value>$(MONO_ENABLE_BTLS)</Value> </BuildMacro> + <BuildMacro Include="MONO_ENABLE_NETCORE"> + <Value>$(MONO_ENABLE_NETCORE)</Value> + </BuildMacro> </ItemGroup> <PropertyGroup Label="MonoDefaultPreprocessorDefinitions"> <MONO_PREPROCESSOR_DEFINITIONS>__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)</MONO_PREPROCESSOR_DEFINITIONS> diff --git a/msvc/mono.winconfig.targets b/msvc/mono.winconfig.targets index d5f7fdc0c9f..6eba1cf3842 100644 --- a/msvc/mono.winconfig.targets +++ b/msvc/mono.winconfig.targets @@ -109,7 +109,8 @@ "ENABLE_LLVM", "ENABLE_LLVM_RUNTIME", "ENABLE_HYBRID_SUSPEND", - "ENABLE_COOP_SUSPEND" }; + "ENABLE_COOP_SUSPEND", + "ENABLE_NETCORE" }; var enableFeatures = GetConfigFeatures(path, ".*#define.*ENABLE_.*1"); if (enableDefines != null) |