2019-05-03 00:29:04 +02:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
|
2020-10-27 23:00:41 +01:00
|
|
|
<PropertyGroup>
|
|
|
|
<!-- this will trigger the use of a project-specific out dir -->
|
|
|
|
<OpenConsoleCppWinRTProject>true</OpenConsoleCppWinRTProject>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
2019-05-03 00:29:04 +02:00
|
|
|
<Import Project="..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
|
|
|
2020-10-27 21:15:30 +01:00
|
|
|
<Import Project="$(OpenConsoleDir)\packages\Microsoft.Windows.CppWinRT.2.0.201017.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(OpenConsoleDir)\packages\Microsoft.Windows.CppWinRT.2.0.201017.1\build\native\Microsoft.Windows.CppWinRT.props')" />
|
2019-05-03 00:29:04 +02:00
|
|
|
|
|
|
|
<PropertyGroup Label="Globals">
|
2019-11-05 23:29:11 +01:00
|
|
|
<!-- 17134 is RS4, 17763 is RS5, 18362 is 19H1 -->
|
|
|
|
<WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)' == ''">10.0.18362.0</WindowsTargetPlatformVersion>
|
|
|
|
<WindowsTargetPlatformMinVersion Condition="'$(WindowsTargetPlatformMinVersion)' == ''">10.0.18362.0</WindowsTargetPlatformMinVersion>
|
2019-05-03 00:29:04 +02:00
|
|
|
<CppWinRTEnabled>true</CppWinRTEnabled>
|
2019-05-23 19:36:29 +02:00
|
|
|
<CppWinRTOptimized>true</CppWinRTOptimized>
|
2019-05-03 00:29:04 +02:00
|
|
|
<DefaultLanguage>en-US</DefaultLanguage>
|
|
|
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
|
|
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<!-- These settings tell MsBuild to treat the project as a "Universal Windows"
|
2020-02-10 21:40:01 +01:00
|
|
|
application. This includes doing things like creating a separate
|
2019-05-03 00:29:04 +02:00
|
|
|
subdirectory for our binary output, and making sure that a wapproj looks
|
|
|
|
at the winmd we build to generate type info.
|
|
|
|
In general, cppwinrt projects all want this.
|
|
|
|
-->
|
2020-08-07 01:55:07 +02:00
|
|
|
<PropertyGroup Condition="'$(OpenConsoleUniversalApp)'=='true'">
|
2019-05-03 00:29:04 +02:00
|
|
|
<MinimalCoreWin>true</MinimalCoreWin>
|
|
|
|
<AppContainerApplication>true</AppContainerApplication>
|
2020-07-09 06:10:50 +02:00
|
|
|
<WindowsStoreApp>true</WindowsStoreApp>
|
2019-05-03 00:29:04 +02:00
|
|
|
<ApplicationType>Windows Store</ApplicationType>
|
|
|
|
</PropertyGroup>
|
2020-08-07 01:55:07 +02:00
|
|
|
<PropertyGroup Condition="'$(OpenConsoleUniversalApp)'!='true'">
|
|
|
|
<!-- Some of our projects include the cppwinrt build options to
|
|
|
|
just build cppwinrt things, but don't want the store bits
|
|
|
|
in full swing. MinimalCoreWin != false means "don't let me
|
|
|
|
use win32 APIs"
|
|
|
|
-->
|
|
|
|
<MinimalCoreWin>false</MinimalCoreWin>
|
|
|
|
</PropertyGroup>
|
2019-05-03 00:29:04 +02:00
|
|
|
|
|
|
|
<!-- This is magic that tells msbuild to link against the Desktop platform
|
|
|
|
instead of the App platform. This you definitely want, because we're not
|
|
|
|
building a true universal "app", we're building a desktop application
|
2019-11-08 23:09:39 +01:00
|
|
|
with xaml. APIs like CreatePseudoConsole won't always be linkable without Desktop platform,
|
2019-11-26 01:30:45 +01:00
|
|
|
but we now carry our own copy of them in the winconpty library which works everywhere.
|
2019-11-08 23:09:39 +01:00
|
|
|
For future reference, _VC_Target_Library_Platform can be configured to say which CRT to link against.
|
|
|
|
Now that this doesn't say anything, the implicit is 'Store' which links against the App CRT.
|
|
|
|
The alternative is 'Desktop' which links against the usual CRT redistributable.
|
|
|
|
Linking against the App CRT will require the VCRT forwarders to be dropped next to the final binary for
|
|
|
|
desktop situations, but it will let non-desktop situations work since there is no redist off desktop.
|
|
|
|
The forwarders can be found at https://github.com/microsoft/vcrt-forwarders and are already included
|
|
|
|
in our CascadiaPackage project.
|
2019-05-03 00:29:04 +02:00
|
|
|
-->
|
|
|
|
<PropertyGroup>
|
|
|
|
<_NoWinAPIFamilyApp>true</_NoWinAPIFamilyApp>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<PropertyGroup Label="Configuration">
|
|
|
|
<GenerateManifest>false</GenerateManifest>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
2019-11-05 23:29:11 +01:00
|
|
|
<Import Project="$(MSBuildThisFileDirectory)common.build.pre.props" />
|
|
|
|
|
|
|
|
<!-- Overrides for common build settings -->
|
2019-05-03 00:29:04 +02:00
|
|
|
<ItemDefinitionGroup>
|
|
|
|
<ClCompile>
|
2019-11-05 23:29:11 +01:00
|
|
|
<!-- C++/WinRT hardcodes pch.h -->
|
2019-05-03 00:29:04 +02:00
|
|
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
|
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
|
|
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
2019-11-05 23:29:11 +01:00
|
|
|
|
|
|
|
<!-- All new code should be in non-permissive mode. Big objects for C++/WinRT. -->
|
|
|
|
<AdditionalOptions>%(AdditionalOptions) /permissive- /bigobj /Zc:twoPhase-</AdditionalOptions>
|
|
|
|
<DisableSpecificWarnings>28204;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
|
|
|
2019-05-03 00:29:04 +02:00
|
|
|
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
|
|
</ClCompile>
|
|
|
|
<Link>
|
2019-11-05 23:29:11 +01:00
|
|
|
<SubSystem Condition="'%(SubSystem)'==''">Console</SubSystem>
|
2019-05-03 00:29:04 +02:00
|
|
|
<GenerateWindowsMetadata>true</GenerateWindowsMetadata>
|
|
|
|
</Link>
|
|
|
|
</ItemDefinitionGroup>
|
|
|
|
|
2019-11-05 23:29:11 +01:00
|
|
|
<ItemDefinitionGroup>
|
2019-05-03 00:29:04 +02:00
|
|
|
<ClCompile>
|
2019-11-05 23:29:11 +01:00
|
|
|
<AdditionalIncludeDirectories>$(OpenConsoleDir)\src\cascadia\WinRTUtils\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
2019-05-03 00:29:04 +02:00
|
|
|
</ClCompile>
|
|
|
|
<Link>
|
2019-11-05 23:29:11 +01:00
|
|
|
<AdditionalDependencies>WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
|
|
<AppContainer>false</AppContainer>
|
2019-05-03 00:29:04 +02:00
|
|
|
</Link>
|
|
|
|
</ItemDefinitionGroup>
|
|
|
|
|
2019-11-05 23:29:11 +01:00
|
|
|
<!-- DLLs -->
|
|
|
|
<ItemDefinitionGroup Condition="'$(ConfigurationType)'=='DynamicLibrary'">
|
2019-05-03 00:29:04 +02:00
|
|
|
<ClCompile>
|
2019-11-05 23:29:11 +01:00
|
|
|
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
2019-05-03 00:29:04 +02:00
|
|
|
</ClCompile>
|
|
|
|
<Link>
|
2020-08-07 16:46:52 +02:00
|
|
|
<ModuleDefinitionFile Condition="Exists('$(ProjectName).def')">$(ProjectName).def</ModuleDefinitionFile>
|
2019-05-03 00:29:04 +02:00
|
|
|
</Link>
|
|
|
|
</ItemDefinitionGroup>
|
|
|
|
|
|
|
|
</Project>
|
|
|
|
|