From c16b1270273e1dd7bf9870983327414dc4c1c52b Mon Sep 17 00:00:00 2001 From: Johan Lorensson Date: Sat, 20 Aug 2016 05:20:38 +0200 Subject: [PATCH] Visual Studio project updates and enhancements to support static libmono and additional test/debug projects. (#3420) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Fixing linker warning when building libmono DLL. After splitting mono runtime into a static library used when building libmono DLL, we got a linker warning since there were no object files left in the libmono project. There was also a sematic issue with the current organization of DllMain since it is located in driver.c that will be compiled into the static library and then consumed by the linker building the DLL. In cases where the static library was consumed directly it would still include DllMain entry point. By splitting the DllMain method implementation into a separate specific windows file we can both resolve the linker warning and remove the DllMain method implementation from the static library and only include it when building the libmono DLL. * Visual Studio projects support to optimally link mono applications using static libmono library. Added a new property, MONO_USE_STATIC_LIBMONO that can be used to link some mono applications, for example mono(-sgen).exe, towards static version of libmono. This gives us the option to build a binary without dependencies on other runtime binaries minimizing what’s needs to be deployed in order to run mono. This in combination with static linked c-runtime (another option available through a VS property) will produce a mono runtime binary without addition dependencies except .NET assemblies deployed by mono runtime users. The default is still using the dynamic version of libmono as before. * Visual Studio project to test/debug testdriver tests from within Visual Studio. Added an additional Visual Studio project preconfigured to run testdriver related tests directly from within Visual Studio. Commit also includes an additional configuration script that can be used test projects in order to setup a mono config file. The testdriver project uses this to create a unique configuration files pointing to the build libtest.dll for running configuration. The configuration file will then be used when the tests are executed to make sure the correct libtest.dll for current build configuration gets used when running test different tests from within the Visual Studio debugger. The project comes with a number of user macros as well that can be used in order to tailor how the tests are run. Most of the values are preconfigured and shouldn't need to be changed in order to use current build. In order to change the test that is executed, use the following user macro defined in mono-testdriver-test property sheet added to the project: MONO_TESTDRIVER_RUN_TARGET and point it to the assembly hosting the tests to execute from within Visual Studio. * Visual Studio project to test/debug nunit tests from within Visual Studio. Added an additional Visual Studio project preconfigured to run nunit related tests directly from within Visual Studio. The project comes with a number of user macros as well that can be used in order to tailor how the tests are run. Most of the values are preconfigured and shouldn't need to be changed in order to use current build. In order to change the test that is executed, use the following user macro defined in mono-nunit-test property sheet added to the project: MONO_NUNIT_RUN_TARGET and point it to the assembly hosting the tests to execute from within Visual Studio. There is also an additional user macro defined: MONO_NUNIT_FIXTURE This can be used to limit the number of nunit test run within a test suite. --- mono/mini/Makefile.am.in | 3 +- mono/mini/driver.c | 24 --- mono/mini/mini-windows-dllmain.c | 40 ++++ msvc/libgcmonosgen.vcxproj | 1 - msvc/libgcmonosgen.vcxproj.filters | 3 - msvc/libmono-static.vcxproj | 1 - msvc/libmono-static.vcxproj.filters | 3 - msvc/libmono.vcxproj | 14 +- msvc/libmono.vcxproj.filters | 10 + msvc/mono-full-aot-compile-test.vcxproj | 8 +- msvc/mono-full-aot-run-test.vcxproj | 10 +- msvc/mono-mini-regression-test.vcxproj | 8 +- msvc/mono-nunit-test.props | 46 +++++ msvc/mono-nunit-test.vcxproj | 224 ++++++++++++++++++++++ msvc/mono-test-env.props | 4 +- msvc/mono-testdriver-test.props | 37 ++++ msvc/mono-testdriver-test.vcxproj | 220 +++++++++++++++++++++ msvc/mono-testdriver-test.vcxproj.filters | 2 + msvc/mono.props | 16 ++ msvc/mono.sln | 24 ++- msvc/mono.vcxproj | 8 +- msvc/monodis.vcxproj | 8 +- msvc/monograph.vcxproj | 8 +- msvc/profiler-vtune.vcxproj | 8 +- msvc/test-config-setup.bat | 56 ++++++ msvc/test-invoke.vcxproj | 8 +- msvc/test-metadata.vcxproj | 8 +- msvc/teste.vcxproj | 8 +- msvc/winsetup.bat | 8 +- 29 files changed, 733 insertions(+), 85 deletions(-) create mode 100644 mono/mini/mini-windows-dllmain.c create mode 100644 msvc/mono-nunit-test.props create mode 100644 msvc/mono-nunit-test.vcxproj create mode 100644 msvc/mono-testdriver-test.props create mode 100644 msvc/mono-testdriver-test.vcxproj create mode 100644 msvc/mono-testdriver-test.vcxproj.filters create mode 100644 msvc/test-config-setup.bat diff --git a/mono/mini/Makefile.am.in b/mono/mini/Makefile.am.in index e3983f69e2b..1ef97c57a00 100755 --- a/mono/mini/Makefile.am.in +++ b/mono/mini/Makefile.am.in @@ -372,7 +372,8 @@ darwin_sources = \ mini-darwin.c windows_sources = \ - mini-windows.c + mini-windows.c \ + mini-windows-dllmain.c posix_sources = \ mini-posix.c diff --git a/mono/mini/driver.c b/mono/mini/driver.c index 9181e53b252..5aa7153a506 100644 --- a/mono/mini/driver.c +++ b/mono/mini/driver.c @@ -1367,30 +1367,6 @@ static const char info[] = #define error_if_aot_unsupported() #endif -#ifdef HOST_WIN32 -BOOL APIENTRY DllMain (HMODULE module_handle, DWORD reason, LPVOID reserved) -{ - if (!mono_gc_dllmain (module_handle, reason, reserved)) - return FALSE; - - switch (reason) - { - case DLL_PROCESS_ATTACH: - mono_install_runtime_load (mini_init); - break; - case DLL_PROCESS_DETACH: - if (coree_module_handle) - FreeLibrary (coree_module_handle); - break; - case DLL_THREAD_DETACH: - mono_thread_info_detach (); - break; - - } - return TRUE; -} -#endif - static gboolean enable_debugging; /* diff --git a/mono/mini/mini-windows-dllmain.c b/mono/mini/mini-windows-dllmain.c new file mode 100644 index 00000000000..887a6a13b29 --- /dev/null +++ b/mono/mini/mini-windows-dllmain.c @@ -0,0 +1,40 @@ +/* + * mini-windows-dllmain.c: DllMain entry point. + * + * (C) 2002-2003 Ximian, Inc. + * (C) 2003-2006 Novell, Inc. + * Licensed under the MIT license. See LICENSE file in the project root for full license information. + */ + +#include +#include +#include +#include +#include "mini.h" + +#ifdef HOST_WIN32 +#include + +BOOL APIENTRY DllMain (HMODULE module_handle, DWORD reason, LPVOID reserved) +{ + if (!mono_gc_dllmain (module_handle, reason, reserved)) + return FALSE; + + switch (reason) + { + case DLL_PROCESS_ATTACH: + mono_install_runtime_load (mini_init); + break; + case DLL_PROCESS_DETACH: + if (coree_module_handle) + FreeLibrary (coree_module_handle); + break; + case DLL_THREAD_DETACH: + mono_thread_info_detach (); + break; + + } + return TRUE; +} +#endif + diff --git a/msvc/libgcmonosgen.vcxproj b/msvc/libgcmonosgen.vcxproj index 52dd0baad9a..e0979dbbee0 100644 --- a/msvc/libgcmonosgen.vcxproj +++ b/msvc/libgcmonosgen.vcxproj @@ -20,7 +20,6 @@ - diff --git a/msvc/libgcmonosgen.vcxproj.filters b/msvc/libgcmonosgen.vcxproj.filters index d40313b9324..b1c22545a6c 100644 --- a/msvc/libgcmonosgen.vcxproj.filters +++ b/msvc/libgcmonosgen.vcxproj.filters @@ -4,9 +4,6 @@ Source Files - - Source Files - Source Files diff --git a/msvc/libmono-static.vcxproj b/msvc/libmono-static.vcxproj index 66283179cfe..5d638f1b8fb 100644 --- a/msvc/libmono-static.vcxproj +++ b/msvc/libmono-static.vcxproj @@ -19,7 +19,6 @@ - diff --git a/msvc/libmono-static.vcxproj.filters b/msvc/libmono-static.vcxproj.filters index 75748b858be..35641c0e6af 100644 --- a/msvc/libmono-static.vcxproj.filters +++ b/msvc/libmono-static.vcxproj.filters @@ -103,9 +103,6 @@ Source Files - - Source Files - Source Files diff --git a/msvc/libmono.vcxproj b/msvc/libmono.vcxproj index 3acce45d4bb..82eff3379b6 100644 --- a/msvc/libmono.vcxproj +++ b/msvc/libmono.vcxproj @@ -120,7 +120,7 @@ true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) true @@ -168,7 +168,7 @@ true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) true @@ -207,7 +207,7 @@ true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) false @@ -251,7 +251,7 @@ true - eglib.lib;libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmono-static$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_STATIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) $(MONO_DEF) $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\$(TargetName).lib @@ -295,6 +295,12 @@ {8fc2b0c8-51ad-49df-851f-5d01a77a75e4} + + + + + + diff --git a/msvc/libmono.vcxproj.filters b/msvc/libmono.vcxproj.filters index 0d407ea4f94..91861b6cc1d 100644 --- a/msvc/libmono.vcxproj.filters +++ b/msvc/libmono.vcxproj.filters @@ -11,4 +11,14 @@ {5370c3c4-b6ec-4f8a-8b21-ce4e782720a6} + + + Source Files + + + + + Resource Files + + \ No newline at end of file diff --git a/msvc/mono-full-aot-compile-test.vcxproj b/msvc/mono-full-aot-compile-test.vcxproj index 7924eca87c7..1ccf4e75639 100644 --- a/msvc/mono-full-aot-compile-test.vcxproj +++ b/msvc/mono-full-aot-compile-test.vcxproj @@ -27,27 +27,27 @@ Utility true - MultiByte + Unicode v140 Utility false true - MultiByte + Unicode v140 Utility true - MultiByte + Unicode v140 Utility false true - MultiByte + Unicode v140 diff --git a/msvc/mono-full-aot-run-test.vcxproj b/msvc/mono-full-aot-run-test.vcxproj index bcf3cc3e6cb..e16fcf235fc 100644 --- a/msvc/mono-full-aot-run-test.vcxproj +++ b/msvc/mono-full-aot-run-test.vcxproj @@ -27,27 +27,27 @@ Utility true - MultiByte + Unicode v140 Utility false true - MultiByte + Unicode v140 Utility true - MultiByte + Unicode v140 Utility false true - MultiByte + Unicode v140 @@ -81,7 +81,7 @@ - + diff --git a/msvc/mono-mini-regression-test.vcxproj b/msvc/mono-mini-regression-test.vcxproj index 8d8537e2467..3b853a182a3 100644 --- a/msvc/mono-mini-regression-test.vcxproj +++ b/msvc/mono-mini-regression-test.vcxproj @@ -34,27 +34,27 @@ Utility true v140 - MultiByte + Unicode Utility false v140 true - MultiByte + Unicode Utility true v140 - MultiByte + Unicode Utility false v140 true - MultiByte + Unicode diff --git a/msvc/mono-nunit-test.props b/msvc/mono-nunit-test.props new file mode 100644 index 00000000000..5c3c2b7a83c --- /dev/null +++ b/msvc/mono-nunit-test.props @@ -0,0 +1,46 @@ + + + + $(MONO_DIR)/mcs/class/System + $(MONO_DIR)/mcs/class/lib/net_4_x/nunit-console.exe + $(MONO_PATH);$(MONO_NUNIT_TEST_DIR) + $(MONO_DIR)/runtime/etc + net_4_x_System_test.dll + + -noshadow -exclude=NotWorking,ValueAdd,CAS,InetAccess /labels + $(MONO_NUNIT_ARGS) -fixture $(MONO_NUNIT_FIXTURE) + + + "$(MONO_NUNIT_TARGET)" "$(MONO_NUNIT_RUN_TARGET)" $(MONO_NUNIT_ARGS) $(MONO_NUNIT_RUN_ADDITIONAL_ARGS) + + + + $(MONO_NUNIT_TEST_DIR) + + + $(MONO_NUNIT_TARGET) + + + $(MONO_PATH) + + + $(MONO_CFG_DIR) + + + $(MONO_NUNIT_RUN_TARGET) + + + $(MONO_NUNIT_FIXTURE) + + + $(MONO_NUNIT_ARGS) + + + $(MONO_NUNIT_RUN_ADDITIONAL_ARGS) + + + $(MONO_NUNIT_RUN_ARGS) + + + + \ No newline at end of file diff --git a/msvc/mono-nunit-test.vcxproj b/msvc/mono-nunit-test.vcxproj new file mode 100644 index 00000000000..0e9d6f8e6d1 --- /dev/null +++ b/msvc/mono-nunit-test.vcxproj @@ -0,0 +1,224 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + {a0eddcd9-940f-432c-a28f-7ef322437d79} + + + + {0046B994-40A8-4C64-AC9D-429DC9177B54} + Win32Proj + mononunittest + 8.1 + + + + Utility + true + v140 + Unicode + + + Utility + false + v140 + true + Unicode + + + Utility + true + v140 + Unicode + + + Utility + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + true + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + false + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + false + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + $(MONO_EXECUTABLE) + $(MONO_NUNIT_RUN_ARGS) + $(MONO_NUNIT_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + WindowsLocalDebugger + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_NUNIT_RUN_ARGS) + $(MONO_NUNIT_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_NUNIT_RUN_ARGS) + $(MONO_NUNIT_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_NUNIT_RUN_ARGS) + $(MONO_NUNIT_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + + Level3 + Disabled + true + + + + + + + + + Level3 + Disabled + true + + + + + + + + + Level3 + MaxSpeed + true + true + true + + + true + true + + + + + + + + + Level3 + MaxSpeed + true + true + true + + + true + true + + + + + + + + + + \ No newline at end of file diff --git a/msvc/mono-test-env.props b/msvc/mono-test-env.props index b298ce3a35b..51dcb2a5e68 100644 --- a/msvc/mono-test-env.props +++ b/msvc/mono-test-env.props @@ -4,8 +4,8 @@ MONO_PATH=$(MONO_PATH) MONO_CFG_DIR=$(MONO_CFG_DIR) PATH=$(MONO_TOOLCHAIN_PATH) - MONO_LOG_LEVEL=debug - MONO_LOG_MASK=all + MONO_LOG_LEVEL= + MONO_LOG_MASK= diff --git a/msvc/mono-testdriver-test.props b/msvc/mono-testdriver-test.props new file mode 100644 index 00000000000..1c03bbda4cd --- /dev/null +++ b/msvc/mono-testdriver-test.props @@ -0,0 +1,37 @@ + + + + $(MONO_DIR)/mono/tests + $(MONO_PATH);$(MONO_TESTDRIVER_TEST_DIR) + $(MONO_EXECUTABLE_DIR)\tests-config.xml + --config "$(MONO_CONFIG_PATH)" + winx64structs.exe + + + $(MONO_CONFIG_ARG) "$(MONO_TESTDRIVER_RUN_TARGET)" $(MONO_TESTDRIVER_RUN_ADDITIONAL_ARGS) + + + + $(MONO_TESTDRIVER_TEST_DIR) + + + $(MONO_PATH) + + + $(MONO_CONFIG_PATH) + + + $(MONO_CONFIG_ARG) + + + $(MONO_TESTDRIVER_RUN_TARGET) + + + $(MONO_TESTDRIVER_RUN_ADDITIONAL_ARGS) + + + $(MONO_TESTDRIVER_RUN_ARGS) + + + + \ No newline at end of file diff --git a/msvc/mono-testdriver-test.vcxproj b/msvc/mono-testdriver-test.vcxproj new file mode 100644 index 00000000000..fce7b4dfa2c --- /dev/null +++ b/msvc/mono-testdriver-test.vcxproj @@ -0,0 +1,220 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + {a0eddcd9-940f-432c-a28f-7ef322437d79} + + + + {7BECCFA0-28A0-4995-9856-558560F720E6} + Win32Proj + monotestdrivertest + 8.1 + + + + Utility + true + v140 + Unicode + + + Utility + false + v140 + true + Unicode + + + Utility + true + v140 + Unicode + + + Utility + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + true + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + false + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + false + $(MONO_BUILD_DIR_PREFIX)$(Platform)\lib\$(Configuration)\ + $(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)\$(Configuration)\ + + + $(MONO_EXECUTABLE) + $(MONO_TESTDRIVER_RUN_ARGS) + $(MONO_TESTDRIVER_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + WindowsLocalDebugger + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_TESTDRIVER_RUN_ARGS) + $(MONO_TESTDRIVER_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_TESTDRIVER_RUN_ARGS) + $(MONO_TESTDRIVER_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + $(MONO_EXECUTABLE) + WindowsLocalDebugger + $(MONO_TESTDRIVER_RUN_ARGS) + $(MONO_TESTDRIVER_TEST_DIR) + $(MONO_PATH_ENV) +$(MONO_CFG_DIR_ENV) +$(MONO_TOOLCHAIN_PATH_ENV) +$(MONO_LOG_LEVEL_ENV) +$(MONO_LOG_MASK_ENV) +$(LocalDebuggerEnvironment) + + + + Level3 + Disabled + true + + + test-config-setup.bat "$(MONO_CONFIG_PATH)" "$(MONO_EXECUTABLE_DIR)" x86 + + + + + Level3 + Disabled + true + + + test-config-setup.bat "$(MONO_CONFIG_PATH)" "$(MONO_EXECUTABLE_DIR)" x86-64 + + + + + Level3 + MaxSpeed + true + true + true + + + true + true + + + test-config-setup.bat "$(MONO_CONFIG_PATH)" "$(MONO_EXECUTABLE_DIR)" x86 + + + + + Level3 + MaxSpeed + true + true + true + + + true + true + + + test-config-setup.bat "$(MONO_CONFIG_PATH)" "$(MONO_EXECUTABLE_DIR)" x86-64 + + + + + + \ No newline at end of file diff --git a/msvc/mono-testdriver-test.vcxproj.filters b/msvc/mono-testdriver-test.vcxproj.filters new file mode 100644 index 00000000000..ef1ebf58630 --- /dev/null +++ b/msvc/mono-testdriver-test.vcxproj.filters @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/msvc/mono.props b/msvc/mono.props index 5384dc846b4..abc81a55abd 100644 --- a/msvc/mono.props +++ b/msvc/mono.props @@ -13,6 +13,8 @@ true false + + false $(MSBuildProjectDirectory)/.. @@ -51,6 +53,17 @@ -boehm $(MONO_BUILD_DIR_PREFIX)boehm/ + + libmonoutils.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;$(GC_LIB) + libmono-static$(MONO_TARGET_SUFFIX).lib;$(MONO_RUNTIME_LIBS) + mono-2.0$(MONO_TARGET_SUFFIX).lib + + + $(MONO_STATIC_LIBMONO_LIB) + + + $(MONO_DYNAMIC_LIBMONO_LIB) + $(ProgramFiles)/Intel/VTune Amplifier XE 2013/include @@ -73,6 +86,9 @@ $(MONO_USE_STATIC_C_RUNTIME) + + $(MONO_USE_STATIC_LIBMONO) + diff --git a/msvc/mono.sln b/msvc/mono.sln index 9ab545de689..0dcd61f4c59 100644 --- a/msvc/mono.sln +++ b/msvc/mono.sln @@ -157,7 +157,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgcmonosgen", "libgcmonos EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-mini-regression-test", "mono-mini-regression-test.vcxproj", "{3E0D229E-C39F-4EDA-9A6A-A33ECEA0322D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "regression", "regression", "{A0068765-334B-414C-8E21-8376CD2EC9F6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "jit", "jit", "{A0068765-334B-414C-8E21-8376CD2EC9F6}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmono-static", "libmono-static.vcxproj", "{CB0D9E92-293C-439C-9AC7-C5F59B6E0772}" EndProject @@ -167,6 +167,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-full-aot-compile-test" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-full-aot-run-test", "mono-full-aot-run-test.vcxproj", "{6C64262B-077B-4E12-AF91-9409ECCB75F6}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-testdriver-test", "mono-testdriver-test.vcxproj", "{7BECCFA0-28A0-4995-9856-558560F720E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mono-nunit-test", "mono-nunit-test.vcxproj", "{0046B994-40A8-4C64-AC9D-429DC9177B54}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -373,6 +377,22 @@ Global {6C64262B-077B-4E12-AF91-9409ECCB75F6}.Release|Win32.Build.0 = Release|Win32 {6C64262B-077B-4E12-AF91-9409ECCB75F6}.Release|x64.ActiveCfg = Release|x64 {6C64262B-077B-4E12-AF91-9409ECCB75F6}.Release|x64.Build.0 = Release|x64 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Debug|Win32.Build.0 = Debug|Win32 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Debug|x64.ActiveCfg = Debug|x64 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Debug|x64.Build.0 = Debug|x64 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Release|Win32.ActiveCfg = Release|Win32 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Release|Win32.Build.0 = Release|Win32 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Release|x64.ActiveCfg = Release|x64 + {7BECCFA0-28A0-4995-9856-558560F720E6}.Release|x64.Build.0 = Release|x64 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Debug|Win32.ActiveCfg = Debug|Win32 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Debug|Win32.Build.0 = Debug|Win32 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Debug|x64.ActiveCfg = Debug|x64 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Debug|x64.Build.0 = Debug|x64 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Release|Win32.ActiveCfg = Release|Win32 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Release|Win32.Build.0 = Release|Win32 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Release|x64.ActiveCfg = Release|x64 + {0046B994-40A8-4C64-AC9D-429DC9177B54}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -407,6 +427,8 @@ Global {BACF489E-EAEB-42BF-9E0A-C54D7CF455B4} = {ECA11C76-E192-4F67-A8FA-28B637D9716F} {C7D83158-4EB6-4409-8730-612AD45FAF6A} = {BACF489E-EAEB-42BF-9E0A-C54D7CF455B4} {6C64262B-077B-4E12-AF91-9409ECCB75F6} = {BACF489E-EAEB-42BF-9E0A-C54D7CF455B4} + {7BECCFA0-28A0-4995-9856-558560F720E6} = {A0068765-334B-414C-8E21-8376CD2EC9F6} + {0046B994-40A8-4C64-AC9D-429DC9177B54} = {A0068765-334B-414C-8E21-8376CD2EC9F6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution AMDCaProjectFile = C:\Users\Owner\Development\monogit\mono\msvc\CodeAnalyst\mono.caw diff --git a/msvc/mono.vcxproj b/msvc/mono.vcxproj index 12cceebe601..f277f33258b 100644 --- a/msvc/mono.vcxproj +++ b/msvc/mono.vcxproj @@ -107,7 +107,7 @@ - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -140,7 +140,7 @@ false - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -163,7 +163,7 @@ false - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) Console true @@ -192,7 +192,7 @@ false - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console diff --git a/msvc/monodis.vcxproj b/msvc/monodis.vcxproj index 7e7eb2df155..7f14c93115f 100644 --- a/msvc/monodis.vcxproj +++ b/msvc/monodis.vcxproj @@ -110,7 +110,7 @@ false - eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -143,7 +143,7 @@ MachineX86 - eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies) @@ -167,7 +167,7 @@ false - eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -198,7 +198,7 @@ true true MachineX64 - eglib.lib;libmonoruntime$(MONO_TARGET_SUFFIX).lib;libmonoutils.lib;$(GC_LIB);%(AdditionalDependencies) + eglib.lib;$(MONO_RUNTIME_LIBS);%(AdditionalDependencies) diff --git a/msvc/monograph.vcxproj b/msvc/monograph.vcxproj index cce843fff83..ce3658dd42c 100644 --- a/msvc/monograph.vcxproj +++ b/msvc/monograph.vcxproj @@ -110,7 +110,7 @@ false - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -143,7 +143,7 @@ MachineX86 - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) @@ -167,7 +167,7 @@ false - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -197,7 +197,7 @@ true true MachineX64 - eglib.lib;mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + eglib.lib;$(MONO_LIBMONO_LIB);%(AdditionalDependencies) diff --git a/msvc/profiler-vtune.vcxproj b/msvc/profiler-vtune.vcxproj index 45c497b9bdc..544a89d32a2 100644 --- a/msvc/profiler-vtune.vcxproj +++ b/msvc/profiler-vtune.vcxproj @@ -103,7 +103,7 @@ true MachineX86 mono-profiler-vtune.def - mono-2.0$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) + $(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) $(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories) @@ -128,7 +128,7 @@ true true mono-profiler-vtune.def - mono-2.0$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) + $(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) $(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories) @@ -148,7 +148,7 @@ ProgramDatabase - mono-2.0$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) + $(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) $(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories) true Windows @@ -171,7 +171,7 @@ ProgramDatabase - mono-2.0$(MONO_TARGET_SUFFIX).lib;$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) + $(MONO_LIBMONO_LIB);$(GC_LIB);eglib.lib;jitprofiling.lib;%(AdditionalDependencies) $(ProgramFiles)\Intel\VTune Amplifier XE 2013\lib32;%(AdditionalLibraryDirectories) true Windows diff --git a/msvc/test-config-setup.bat b/msvc/test-config-setup.bat new file mode 100644 index 00000000000..adb174d8093 --- /dev/null +++ b/msvc/test-config-setup.bat @@ -0,0 +1,56 @@ +@ECHO off + +SET MONO_RESULT=1 +SET CONFIG_PATH=%1 +SET MONO_MODULE_PATH=%2 +SET CPU_ARCH=%3 + +IF "" == "%CONFIG_PATH%" ( + ECHO Error: No configuration path set. + GOTO ON_ERROR +) + +IF "" == "%MONO_MODULE_PATH%" ( + ECHO Error: No mono module path set. + GOTO ON_ERROR +) + +IF "" == "%CPU_ARCH%" ( + ECHO Error: No cpu architecture set. + GOTO ON_ERROR +) + +IF NOT "x86" == "%CPU_ARCH%" ( + + IF NOT "x86-64" == "%CPU_ARCH%" ( + ECHO Error: Unknown cpu architecture, %CPU_ARCH%. + GOTO ON_ERROR + ) +) + +SET CONFIG_PATH=%CONFIG_PATH:"=% +SET CONFIG_PATH=%CONFIG_PATH:/=\% + +SET MONO_MODULE_PATH=%MONO_MODULE_PATH:"=% +SET MONO_MODULE_PATH=%MONO_MODULE_PATH:/=\% + +REM Setup test configuration file. +>%CONFIG_PATH% ECHO ^ +>>%CONFIG_PATH% ECHO ^ +>>%CONFIG_PATH% ECHO ^ + +SET MONO_RESULT=0 +ECHO Successfully setup test configuration file, %CONFIG_PATH%. + +GOTO ON_EXIT + +:ON_ERROR + ECHO Failed to setup test configuration file. + ECHO test-config-setup.bat [CONFIG_FILE_PATH] [MONO_MODULE_PATH] [x86|x86-64] + SET MONO_RESULT=1 + GOTO ON_EXIT + +:ON_EXIT + EXIT /b %MONO_RESULT% + +@ECHO on diff --git a/msvc/test-invoke.vcxproj b/msvc/test-invoke.vcxproj index 06ad062761f..f258fb673c6 100644 --- a/msvc/test-invoke.vcxproj +++ b/msvc/test-invoke.vcxproj @@ -111,7 +111,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -144,7 +144,7 @@ MachineX86 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) @@ -169,7 +169,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -199,7 +199,7 @@ true true MachineX64 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) diff --git a/msvc/test-metadata.vcxproj b/msvc/test-metadata.vcxproj index 31411b0df61..810f82f82fa 100644 --- a/msvc/test-metadata.vcxproj +++ b/msvc/test-metadata.vcxproj @@ -111,7 +111,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -144,7 +144,7 @@ MachineX86 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) @@ -169,7 +169,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -199,7 +199,7 @@ true true MachineX64 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) diff --git a/msvc/teste.vcxproj b/msvc/teste.vcxproj index cd9433f8b1a..5fac6d8ac23 100644 --- a/msvc/teste.vcxproj +++ b/msvc/teste.vcxproj @@ -111,7 +111,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -144,7 +144,7 @@ MachineX86 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) @@ -169,7 +169,7 @@ false - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) %(AdditionalLibraryDirectories) true Console @@ -199,7 +199,7 @@ true true MachineX64 - mono-2.0$(MONO_TARGET_SUFFIX).lib;%(AdditionalDependencies) + $(MONO_DYNAMIC_LIBMONO_LIB);%(AdditionalDependencies) diff --git a/msvc/winsetup.bat b/msvc/winsetup.bat index a05395ca491..f25016fd5f5 100755 --- a/msvc/winsetup.bat +++ b/msvc/winsetup.bat @@ -26,15 +26,15 @@ IF EXIST %EGLIB_CONFIG_H% ( ) ) -%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-files.ps1 %WIN_CONFIG_H% %CONFIG_H% %CONFIGURE_AC% >$null 2>&1 +%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-files.ps1 %WIN_CONFIG_H% %CONFIG_H% %CONFIGURE_AC% 2>&1 IF NOT %ERRORLEVEL% == 0 ( ECHO copy %WIN_CONFIG_H% %CONFIG_H% copy %WIN_CONFIG_H% %CONFIG_H% - %windir%\system32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -Command "(Get-Content %CONFIG_H%) -replace '#MONO_VERSION#', (Select-String -path %CONFIGURE_AC% -pattern 'AC_INIT\(mono, \[(.*)\]').Matches[0].Groups[1].Value | Set-Content %CONFIG_H%" >$null 2>&1 + %windir%\system32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -Command "(Get-Content %CONFIG_H%) -replace '#MONO_VERSION#', (Select-String -path %CONFIGURE_AC% -pattern 'AC_INIT\(mono, \[(.*)\]').Matches[0].Groups[1].Value | Set-Content %CONFIG_H%" 2>&1 ) -%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-files.ps1 %EGLIB_WIN_CONFIG_H% %EGLIB_CONFIG_H% >$null 2>&1 +%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-files.ps1 %EGLIB_WIN_CONFIG_H% %EGLIB_CONFIG_H% 2>&1 IF NOT %ERRORLEVEL% == 0 ( ECHO copy %EGLIB_WIN_CONFIG_H% %EGLIB_CONFIG_H% @@ -42,7 +42,7 @@ IF NOT %ERRORLEVEL% == 0 ( ) SET VERSION_CONTENT="#define FULL_VERSION \"Visual Studio built mono\"" -%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-content.ps1 %VERSION_CONTENT% %VERSION_H% +%windir%\system32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -NonInteractive -File compare-config-content.ps1 %VERSION_CONTENT% %VERSION_H% 2>&1 IF NOT %ERRORLEVEL% == 0 ( -- 2.25.1