140 lines
7.6 KiB
XML
140 lines
7.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
<Import Project="$(OpenConsoleDir)src\wap-common.build.pre.props" />
|
|
<PropertyGroup Label="Configuration">
|
|
<!--
|
|
These two properties are very important!
|
|
Without them, msbuild will stomp MinVersion and MaxVersionTested in the
|
|
Package.appxmanifest and replace them with whatever our values for
|
|
TargetPlatformMinVersion and TargetPlatformVersion are.
|
|
-->
|
|
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
|
|
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ProjectGuid>cf31505e-3bae-4c0a-81d7-f1eb279f40bb</ProjectGuid>
|
|
<EntryPointProjectUniqueName>..\WindowExe\WindowExe.vcxproj</EntryPointProjectUniqueName>
|
|
<DebuggerType>NativeOnly</DebuggerType>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="!Exists('Package_TemporaryKey.pfx')">
|
|
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
<AppxBundle>Never</AppxBundle>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="Exists('Package_TemporaryKey.pfx')">
|
|
<AppxPackageSigningEnabled>true</AppxPackageSigningEnabled>
|
|
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
|
|
<PackageCertificateKeyFile>Package_TemporaryKey.pfx</PackageCertificateKeyFile>
|
|
</PropertyGroup>
|
|
<ItemGroup Condition="Exists('Package_TemporaryKey.pfx')">
|
|
<None Include="Package_TemporaryKey.pfx" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<AppxManifest Include="Package.appxmanifest">
|
|
<SubType>Designer</SubType>
|
|
</AppxManifest>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- Resources -->
|
|
<!-- This resw only defines things that are used in this package's AppxManifest,
|
|
so it's not in the common resource items. -->
|
|
<PRIResource Include="Resources\en-US\Resources.resw" />
|
|
<PRIResource Include="Resources\Resources.resw" />
|
|
<OCResourceDirectory Include="Resources" />
|
|
</ItemGroup>
|
|
|
|
<Import Project="$(OpenConsoleDir)src\wap-common.build.post.props" />
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\WindowExe\WindowExe.vcxproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="Microsoft.Terminal.TerminalConnection">
|
|
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
|
|
<Implementation>$(OpenConsoleCommonOutDir)TerminalConnection\TerminalConnection.dll</Implementation>
|
|
<IsWinMDFile>true</IsWinMDFile>
|
|
<Private>true</Private>
|
|
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
|
|
</Reference>
|
|
<Reference Include="Microsoft.Terminal.Control">
|
|
<HintPath>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
|
|
<Implementation>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.dll</Implementation>
|
|
<IsWinMDFile>true</IsWinMDFile>
|
|
<Private>true</Private>
|
|
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
|
|
<Target Name="OpenConsoleStompSourceProjectForWapProject" BeforeTargets="_ConvertItems">
|
|
<ItemGroup>
|
|
<!-- Stomp all "SourceProject" values for all incoming dependencies to flatten the package. -->
|
|
<_TemporaryFilteredWapProjOutput Include="@(_FilteredNonWapProjProjectOutput)" />
|
|
<_FilteredNonWapProjProjectOutput Remove="@(_TemporaryFilteredWapProjOutput)" />
|
|
<_FilteredNonWapProjProjectOutput Include="@(_TemporaryFilteredWapProjOutput)">
|
|
<!-- Blank the SourceProject here to vend all files into the root of the package. -->
|
|
<SourceProject>
|
|
</SourceProject>
|
|
</_FilteredNonWapProjProjectOutput>
|
|
</ItemGroup>
|
|
</Target>
|
|
<!-- Move all the PRI files that would be packaged into the appx into _PriFile so that
|
|
GenerateProjectPriFile catches them. This requires us to move payload collection
|
|
up before GenerateProjectPriFile, when it is typically _after_ it (because the
|
|
DesktopBridge project type is built to only prepare the payload during appx manifest
|
|
generation.
|
|
|
|
Since PRI file generation is _before_ manifest generation (for possibly obvious or
|
|
important reasons), that doesn't work for us.
|
|
-->
|
|
<Target Name="OpenConsoleLiftDesktopBridgePriFiles" DependsOnTargets="_ConvertItems">
|
|
<ItemGroup>
|
|
<_PriFile Include="@(_NonWapProjProjectOutput)" Condition="'%(Extension)' == '.pri'" />
|
|
<!-- Remove all other .pri files from the appx payload. -->
|
|
<AppxPackagePayload Remove="@(AppxPackagePayload)" Condition="'%(Extension)' == '.pri'" />
|
|
</ItemGroup>
|
|
</Target>
|
|
<!-- VS 16.3.0 added a rule to the WAP packaging project that removes all non-WAP payload, which we were relying on to
|
|
roll up our subproject resources. We have to suppress that rule but keep part of its logic, because that rule is
|
|
where the AppxPackagePayload items are created. -->
|
|
<PropertyGroup>
|
|
<WapProjBeforeGenerateAppxManifestDependsOn>
|
|
$([MSBuild]::Unescape('$(WapProjBeforeGenerateAppxManifestDependsOn.Replace('_RemoveAllNonWapUWPItems', '_OpenConsoleRemoveAllNonWapUWPItems'))'))
|
|
</WapProjBeforeGenerateAppxManifestDependsOn>
|
|
</PropertyGroup>
|
|
<Target Name="_OpenConsoleRemoveAllNonWapUWPItems">
|
|
<ItemGroup>
|
|
<AppxPackagePayload Include="@(WapProjPackageFile)" />
|
|
<AppxUploadPackagePayload Include="@(UploadWapProjPackageFile)" />
|
|
<!-- 16.3.0 - remove non-resources.pri PRI files since we just forced them back in. -->
|
|
<AppxPackagePayload Remove="@(AppxPackagePayload)" Condition="'%(Extension)' == '.pri' and '%(Filename)' != 'resources'" />
|
|
<AppxUploadPackagePayload Remove="@(AppxUploadPackagePayload)" Condition="'%(Extension)' == '.pri' and '%(Filename)' != 'resources'" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!-- **BEGIN VC LIBS HACK** -->
|
|
<!--
|
|
For our release builds, we're just going to integrate the UWPDesktop CRT into our package and delete the package dependencies.
|
|
It's very difficult for users who do not have access to the store to get our dependency packages, and we want to be robust
|
|
and deployable everywhere. Since these libraries can be redistributed, it's easiest if we simply redistribute them.
|
|
See also the "VC LIBS HACK" section in WindowsTerminal.vcxproj.
|
|
-->
|
|
<!-- This target removes the FrameworkSdkReferences from before the AppX package targets manifest generation happens.
|
|
This is part of the generic machinery that applies to every AppX. -->
|
|
<Target Name="_OpenConsoleStripAllDependenciesFromPackageFirstManifest" BeforeTargets="_GenerateCurrentProjectAppxManifest">
|
|
<ItemGroup Condition="'$(WindowsTerminalOfficialBuild)'=='true'">
|
|
<FrameworkSdkReference Remove="@(FrameworkSdkReference)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!-- This target removes the FrameworkSdkPackages from before the *desktop bridge* manifest generation happens. -->
|
|
<Target Name="_OpenConsoleStripAllDependenciesFromPackageSecondManifest" BeforeTargets="_GenerateDesktopBridgeAppxManifest" DependsOnTargets="_ResolveVCLibDependencies">
|
|
<ItemGroup Condition="'$(WindowsTerminalOfficialBuild)'=='true'">
|
|
<FrameworkSdkPackage Remove="@(FrameworkSdkPackage)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
<!-- **END VC LIBS HACK** -->
|
|
|
|
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
|
</Project>
|