Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/msvc
diff options
context:
space:
mode:
authorFilip Navara <filip.navara@gmail.com>2019-05-10 11:26:44 +0300
committerMarek Safar <marek.safar@gmail.com>2019-05-10 11:26:44 +0300
commit643b2ebfc6ad8a7cb2c21d3cac1a89ca3ceb3c9f (patch)
tree3961493adfb63fbb45aa217a7d2889249165fda4 /msvc
parent0e5e464cff103f104bee6beb22461ea7332fe102 (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.vcxproj1
-rw-r--r--msvc/libmini-netcore.targets6
-rw-r--r--msvc/libmini-netcore.targets.filters13
-rw-r--r--msvc/libmini.targets1
-rw-r--r--msvc/libmini.targets.filters1
-rw-r--r--msvc/mono.props5
-rw-r--r--msvc/mono.winconfig.targets3
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)