From 4d9ffd3db28563a57bc29321d5b4faba79f19006 Mon Sep 17 00:00:00 2001 From: Johan Lorensson Date: Wed, 6 Jul 2016 06:28:02 +0200 Subject: [PATCH] Added support to build mono runtime as a static library. (#3231) libmono will use static library when building its dynamic library. This gives the option to build binaries that could link the static version of mono runtime or use the dynamic version of the same library. The default build binaries still link against the dynamic version of the runtime. --- msvc/libmono-static.vcxproj | 340 ++++++++++++++++++++++++++++ msvc/libmono-static.vcxproj.filters | 249 ++++++++++++++++++++ msvc/libmono.vcxproj | 137 +---------- msvc/libmono.vcxproj.filters | 235 ------------------- msvc/libmonoruntime.vcxproj | 16 +- msvc/mono.sln | 11 + 6 files changed, 615 insertions(+), 373 deletions(-) create mode 100644 msvc/libmono-static.vcxproj create mode 100644 msvc/libmono-static.vcxproj.filters diff --git a/msvc/libmono-static.vcxproj b/msvc/libmono-static.vcxproj new file mode 100644 index 00000000000..66283179cfe --- /dev/null +++ b/msvc/libmono-static.vcxproj @@ -0,0 +1,340 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + + + true + true + + + true + true + + + + + + + + true + true + + + true + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772} + libmono-static + 8.1 + + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + $(ProjectName)$(MONO_TARGET_SUFFIX) + $(ProjectName)$(MONO_TARGET_SUFFIX) + $(ProjectName)$(MONO_TARGET_SUFFIX) + $(ProjectName)$(MONO_TARGET_SUFFIX) + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\ + + + true + + + true + + + + + + + + /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) + Disabled + $(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + + + false + ProgramDatabase + 4996;4018;4244;%(DisableSpecificWarnings) + $(IntDir)$(TargetName).pdb + + + Windows + + + .\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q + + + + + + + + + /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) + Disabled + $(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + + + false + ProgramDatabase + 4996;4018;4244;%(DisableSpecificWarnings) + $(IntDir)$(TargetName).pdb + + + Windows + + + .\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q + + + + + + + + + /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) + MaxSpeed + true + $(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + + + $(IntDir)$(TargetName).pdb + + + Windows + true + true + + + .\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q + + + + + + + + + /D /NODEFAULTLIB:LIBCD" " %(AdditionalOptions) + MaxSpeed + true + $(MONO_DIR);$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE);%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;%(PreprocessorDefinitions) + true + + + $(IntDir)$(TargetName).pdb + + + Windows + true + true + + + .\libmono.bat "$(MONO_INCLUDE_DIR)" "$(SolutionDir)include\mono" -q + + + + + true + true + + + true + true + + + + + {158073ed-99ae-4196-9edc-ddb2344f8466} + + + {b7098dfa-31e6-4006-8a15-1c9a4e925149} + + + {eb56000b-c80b-4e8b-908d-d84d31b517d3} + + + {c36612bd-22d3-4b95-85e2-7fdc4fc5d740} + + + {c36612bd-22d3-4b95-85e2-7fdc4fc5d739} + + + {8fc2b0c8-51ad-49df-851f-5d01a77a75e4} + + + + + + \ No newline at end of file diff --git a/msvc/libmono-static.vcxproj.filters b/msvc/libmono-static.vcxproj.filters new file mode 100644 index 00000000000..75748b858be --- /dev/null +++ b/msvc/libmono-static.vcxproj.filters @@ -0,0 +1,249 @@ + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + {bdc9f80b-3045-49d2-bb7b-510450371395} + + + {f7700495-afaa-4d16-9aac-79d54d10de23} + + + {5370c3c4-b6ec-4f8a-8b21-ce4e782720a6} + + + \ No newline at end of file diff --git a/msvc/libmono.vcxproj b/msvc/libmono.vcxproj index 6fca2cc5ae4..3acce45d4bb 100644 --- a/msvc/libmono.vcxproj +++ b/msvc/libmono.vcxproj @@ -18,124 +18,6 @@ x64 - - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - true - true - - - true - true - - - - - - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - - - {CB0D9E92-293C-439C-9AC7-C5F59B6E0771} libmono @@ -235,10 +117,10 @@ 0x0409 - false + true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) true @@ -283,10 +165,10 @@ 0x0409 - false + true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) true @@ -322,10 +204,10 @@ 0x0409 - false + true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) false @@ -366,10 +248,10 @@ 0x0409 - false + true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib @@ -403,6 +285,9 @@ {c36612bd-22d3-4b95-85e2-7fdc4fc5d740} + + {cb0d9e92-293c-439c-9ac7-c5f59b6e0772} + {c36612bd-22d3-4b95-85e2-7fdc4fc5d739} diff --git a/msvc/libmono.vcxproj.filters b/msvc/libmono.vcxproj.filters index 75748b858be..0d407ea4f94 100644 --- a/msvc/libmono.vcxproj.filters +++ b/msvc/libmono.vcxproj.filters @@ -1,240 +1,5 @@  - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - {bdc9f80b-3045-49d2-bb7b-510450371395} diff --git a/msvc/libmonoruntime.vcxproj b/msvc/libmonoruntime.vcxproj index c02736c1bff..d0c79d0f0a4 100644 --- a/msvc/libmonoruntime.vcxproj +++ b/msvc/libmonoruntime.vcxproj @@ -273,9 +273,7 @@ Windows true - - $(OutDir)$(TargetName)$(TargetExt) - + @@ -292,9 +290,7 @@ Windows true - - $(OutDir)$(TargetName)$(TargetExt) - + @@ -314,9 +310,7 @@ true true - - $(OutDir)$(TargetName)$(TargetExt) - + @@ -336,9 +330,7 @@ true true - - $(OutDir)$(TargetName)$(TargetExt) - + diff --git a/msvc/mono.sln b/msvc/mono.sln index 408a8b79531..0861cda5405 100644 --- a/msvc/mono.sln +++ b/msvc/mono.sln @@ -161,6 +161,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-mini-regression-aot-te EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "regression", "regression", "{A0068765-334B-414C-8E21-8376CD2EC9F6}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmono-static", "libmono-static.vcxproj", "{CB0D9E92-293C-439C-9AC7-C5F59B6E0772}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -351,6 +353,14 @@ Global {D632D664-C0F5-4B60-9375-BDDAD5C7A649}.Release|Win32.Build.0 = Release|Win32 {D632D664-C0F5-4B60-9375-BDDAD5C7A649}.Release|x64.ActiveCfg = Release|x64 {D632D664-C0F5-4B60-9375-BDDAD5C7A649}.Release|x64.Build.0 = Release|x64 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Debug|Win32.ActiveCfg = Debug|Win32 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Debug|Win32.Build.0 = Debug|Win32 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Debug|x64.ActiveCfg = Debug|x64 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Debug|x64.Build.0 = Debug|x64 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Release|Win32.ActiveCfg = Release|Win32 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Release|Win32.Build.0 = Release|Win32 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Release|x64.ActiveCfg = Release|x64 + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -382,6 +392,7 @@ Global {3E0D229E-C39F-4EDA-9A6A-A33ECEA0322D} = {A0068765-334B-414C-8E21-8376CD2EC9F6} {D632D664-C0F5-4B60-9375-BDDAD5C7A649} = {A0068765-334B-414C-8E21-8376CD2EC9F6} {A0068765-334B-414C-8E21-8376CD2EC9F6} = {ECA11C76-E192-4F67-A8FA-28B637D9716F} + {CB0D9E92-293C-439C-9AC7-C5F59B6E0772} = {DE3617B4-17A8-4E5F-A00F-BA43D956881F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution AMDCaProjectFile = C:\Users\Owner\Development\monogit\mono\msvc\CodeAnalyst\mono.caw -- 2.25.1