Add support for LLVM integrated build as part of Visual Studio solution
[mono-project.git] / msvc / mono.vcxproj
blobd42026f04f662ee5d6fa3f72b1065d5f5452dec5
1 <?xml version="1.0" encoding="utf-8"?>\r
2 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
3   <ItemGroup Label="ProjectConfigurations">\r
4     <ProjectConfiguration Include="Debug|Win32">\r
5       <Configuration>Debug</Configuration>\r
6       <Platform>Win32</Platform>\r
7     </ProjectConfiguration>\r
8     <ProjectConfiguration Include="Debug|x64">\r
9       <Configuration>Debug</Configuration>\r
10       <Platform>x64</Platform>\r
11     </ProjectConfiguration>\r
12     <ProjectConfiguration Include="Release|Win32">\r
13       <Configuration>Release</Configuration>\r
14       <Platform>Win32</Platform>\r
15     </ProjectConfiguration>\r
16     <ProjectConfiguration Include="Release|x64">\r
17       <Configuration>Release</Configuration>\r
18       <Platform>x64</Platform>\r
19     </ProjectConfiguration>\r
20   </ItemGroup>\r
21   <PropertyGroup Label="Globals">\r
22     <ProjectGuid>{A0EDDCD9-940F-432C-A28F-7EF322437D79}</ProjectGuid>\r
23     <RootNamespace>mono</RootNamespace>\r
24     <Keyword>Win32Proj</Keyword>\r
25     <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
26   </PropertyGroup>\r
27   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
28   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
29     <ConfigurationType>Application</ConfigurationType>\r
30     <CharacterSet>Unicode</CharacterSet>\r
31     <PlatformToolset>v140</PlatformToolset>\r
32   </PropertyGroup>\r
33   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
34     <ConfigurationType>Application</ConfigurationType>\r
35     <CharacterSet>Unicode</CharacterSet>\r
36     <PlatformToolset>v140</PlatformToolset>\r
37   </PropertyGroup>\r
38   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
39     <ConfigurationType>Application</ConfigurationType>\r
40     <CharacterSet>Unicode</CharacterSet>\r
41     <PlatformToolset>v140</PlatformToolset>\r
42   </PropertyGroup>\r
43   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
44     <ConfigurationType>Application</ConfigurationType>\r
45     <CharacterSet>Unicode</CharacterSet>\r
46     <PlatformToolset>v140</PlatformToolset>\r
47   </PropertyGroup>\r
48   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
49   <ImportGroup Label="ExtensionSettings">\r
50   </ImportGroup>\r
51   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
52     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
53     <Import Project="mono.props" />\r
54   </ImportGroup>\r
55   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
56     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
57     <Import Project="mono.props" />\r
58   </ImportGroup>\r
59   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
60     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
61     <Import Project="mono.props" />\r
62   </ImportGroup>\r
63   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
64     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
65     <Import Project="mono.props" />\r
66   </ImportGroup>\r
67   <PropertyGroup Label="UserMacros" />\r
68   <PropertyGroup>\r
69     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
70     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
71     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
72     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
73     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
74     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
75     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
76     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\bin\$(Configuration)\</OutDir>\r
77     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\$(ProjectName)$(MONO_TARGET_SUFFIX)\$(Configuration)\</IntDir>\r
78   </PropertyGroup>\r
79   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
80     <TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
81   </PropertyGroup>\r
82   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
83     <TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
84   </PropertyGroup>\r
85   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
86     <LinkIncremental>true</LinkIncremental>\r
87     <TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
88   </PropertyGroup>\r
89   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
90     <LinkIncremental>true</LinkIncremental>\r
91     <TargetName>$(ProjectName)$(MONO_TARGET_SUFFIX)</TargetName>\r
92   </PropertyGroup>\r
93   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
94     <ClCompile>\r
95       <Optimization>Disabled</Optimization>\r
96       <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
97       <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
98       <MinimalRebuild>true</MinimalRebuild>\r
99       <PrecompiledHeader>\r
100       </PrecompiledHeader>\r
101       <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
102       <WarningLevel>Level3</WarningLevel>\r
103     </ClCompile>\r
104     <ProjectReference />\r
105     <Link>\r
106       <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
107       <SubSystem>Console</SubSystem>\r
108       <DataExecutionPrevention>\r
109       </DataExecutionPrevention>\r
110     </Link>\r
111     <ProjectReference>\r
112       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
113     </ProjectReference>\r
114   </ItemDefinitionGroup>\r
115   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
116     <Midl>\r
117       <TargetEnvironment>X64</TargetEnvironment>\r
118     </Midl>\r
119     <ClCompile>\r
120       <Optimization>Disabled</Optimization>\r
121       <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
122       <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
123       <MinimalRebuild>true</MinimalRebuild>\r
124       <PrecompiledHeader>\r
125       </PrecompiledHeader>\r
126       <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
127       <WarningLevel>Level3</WarningLevel>\r
128     </ClCompile>\r
129     <ProjectReference>\r
130       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
131     </ProjectReference>\r
132     <Link>\r
133       <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
134       <SubSystem>Console</SubSystem>\r
135       <ShowProgress>\r
136       </ShowProgress>\r
137     </Link>\r
138   </ItemDefinitionGroup>\r
139   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
140     <ClCompile>\r
141       <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
142       <PrecompiledHeader>\r
143       </PrecompiledHeader>\r
144       <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
145       <WarningLevel>Level3</WarningLevel>\r
146       <IntrinsicFunctions>true</IntrinsicFunctions>\r
147       <StringPooling>true</StringPooling>\r
148     </ClCompile>\r
149     <ProjectReference>\r
150       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
151     </ProjectReference>\r
152     <Link>\r
153       <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
154       <SubSystem>Console</SubSystem>\r
155       <DataExecutionPrevention>\r
156       </DataExecutionPrevention>\r
157     </Link>\r
158   </ItemDefinitionGroup>\r
159   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
160     <Midl>\r
161       <TargetEnvironment>X64</TargetEnvironment>\r
162     </Midl>\r
163     <ClCompile>\r
164       <AdditionalIncludeDirectories>$(MONO_DIR);$(MONO_INCLUDE_DIR);$(MONO_JIT_INCLUDE_DIR);$(MONO_LIBGC_SOURCE_DIR);$(MONO_EGLIB_SOURCE_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
165       <PreprocessorDefinitions>WIN32;WIN32_LEAN_AND_MEAN;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
166       <PrecompiledHeader>\r
167       </PrecompiledHeader>\r
168       <WarningLevel>Level3</WarningLevel>\r
169       <IntrinsicFunctions>true</IntrinsicFunctions>\r
170       <StringPooling>true</StringPooling>\r
171     </ClCompile>\r
172     <ProjectReference>\r
173       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
174     </ProjectReference>\r
175     <Link>\r
176       <AdditionalDependencies>$(MONO_LIBMONO_LIB);%(AdditionalDependencies)</AdditionalDependencies>\r
177       <SubSystem>Console</SubSystem>\r
178     </Link>\r
179   </ItemDefinitionGroup>\r
180   <ItemDefinitionGroup Condition="'$(MONO_COMPILE_AS_CPP)'=='true'">\r
181     <ClCompile>\r
182       <CompileAs>CompileAsCpp</CompileAs>\r
183     </ClCompile>\r
184   </ItemDefinitionGroup>\r
185   <ItemGroup>\r
186     <ClCompile Include="..\mono\mini\main.c" />\r
187   </ItemGroup>\r
188   <ItemGroup>\r
189     <ProjectReference Include="eglib.vcxproj">\r
190       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
191     </ProjectReference>\r
192     <ProjectReference Include="libmono-dynamic.vcxproj">\r
193       <Project>{675f4175-ffb1-480d-ad36-f397578844d4}</Project>\r
194     </ProjectReference>\r
195   </ItemGroup>\r
196   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
197   <Import Project="mono.external.targets" />\r
198   <ImportGroup Label="ExtensionTargets">\r
199   </ImportGroup>\r
200   <Target Name="_SetupMonoLLVMLinkItems" Condition="$(MONO_ENABLE_LLVM)=='true'">\r
201     <ItemGroup>\r
202       <Link>\r
203         <AdditionalLibraryDirectories>$(MONO_LLVM_LIB_DIR);%(Lib.AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
204         <AdditionalDependencies>$(MONO_LLVM_LIBS);%(Lib.AdditionalDependencies)</AdditionalDependencies>\r
205       </Link>\r
206     </ItemGroup>\r
207   </Target>\r
208   <Target Name="_ConfigureExternalLinkDependency" DependsOnTargets="_ConfigureExternalMonoBuildEnvironment;_SetupMonoLLVMBuildProperties;_SetupMonoLLVMLinkItems" />\r
209   <PropertyGroup>\r
210     <ComputeLibInputsTargets>\r
211       $(ComputeLibInputsTargets);\r
212       _ConfigureExternalLinkDependency;\r
213     </ComputeLibInputsTargets>\r
214   </PropertyGroup>\r
215 </Project>