160 lines
9.6 KiB
XML
160 lines
9.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="15.0" 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>
|
|
<OCExecutionAliasName Condition="'$(WindowsTerminalBranding)'==''">wtd</OCExecutionAliasName>
|
|
<OCExecutionAliasName Condition="'$(OCExecutionAliasName)'==''">wt</OCExecutionAliasName>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ProjectGuid>CA5CAD1A-224A-4171-B13A-F16E576FDD12</ProjectGuid>
|
|
<EntryPointProjectUniqueName>..\WindowsTerminal\WindowsTerminal.vcxproj</EntryPointProjectUniqueName>
|
|
<DebuggerType>NativeOnly</DebuggerType>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="!Exists('CascadiaPackage_TemporaryKey.pfx')">
|
|
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
<AppxBundle>Never</AppxBundle>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="Exists('CascadiaPackage_TemporaryKey.pfx')">
|
|
<AppxPackageSigningEnabled>true</AppxPackageSigningEnabled>
|
|
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
|
|
<PackageCertificateKeyFile>CascadiaPackage_TemporaryKey.pfx</PackageCertificateKeyFile>
|
|
</PropertyGroup>
|
|
<ItemGroup Condition="Exists('CascadiaPackage_TemporaryKey.pfx')">
|
|
<None Include="CascadiaPackage_TemporaryKey.pfx" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<AppxManifest Include="Package.appxmanifest" Condition="'$(WindowsTerminalBranding)'=='Release'">
|
|
<SubType>Designer</SubType>
|
|
</AppxManifest>
|
|
<AppxManifest Include="Package-Pre.appxmanifest" Condition="'$(WindowsTerminalBranding)'=='Preview'">
|
|
<SubType>Designer</SubType>
|
|
</AppxManifest>
|
|
<AppxManifest Include="Package-Dev.appxmanifest" Condition="'$(WindowsTerminalBranding)'==''">
|
|
<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>
|
|
|
|
<!-- This is picked up by CascadiaResources.build.items. -->
|
|
<PropertyGroup Condition="'$(WindowsTerminalBranding)'==''">
|
|
<WindowsTerminalAssetSuffix>-Dev</WindowsTerminalAssetSuffix>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(WindowsTerminalBranding)'=='Preview'">
|
|
<WindowsTerminalAssetSuffix>-Pre</WindowsTerminalAssetSuffix>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)..\CascadiaResources.build.items" />
|
|
<Import Project="$(OpenConsoleDir)src\wap-common.build.post.props" />
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\WindowsTerminal\WindowsTerminal.vcxproj" />
|
|
<ProjectReference Include="..\..\host\exe\Host.EXE.vcxproj" />
|
|
<ProjectReference Include="..\..\host\proxy\Host.Proxy.vcxproj" />
|
|
<ProjectReference Include="..\TerminalAzBridge\TerminalAzBridge.vcxproj" />
|
|
<ProjectReference Include="..\ShellExtension\WindowsTerminalShellExt.vcxproj" />
|
|
<ProjectReference Include="..\wt\wt.vcxproj" />
|
|
<ProjectReference Include="..\ElevateShim\elevate-shim.vcxproj" />
|
|
</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>
|
|
<!-- Replace the filename for wt/wtd.exe with the one the manifest wants. -->
|
|
<TargetPath Condition="'%(Filename)' == 'wt' and '%(Extension)' == '.exe'">$(OCExecutionAliasName).exe</TargetPath>
|
|
</_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.
|
|
-->
|
|
<PropertyGroup>
|
|
<!-- Only for MSBuild versions < 16.3.0 -->
|
|
<_GenerateProjectPriFileDependsOn Condition="$(MSBuildVersion) < '16.3.0'">OpenConsoleLiftDesktopBridgePriFiles;$(_GenerateProjectPriFileDependsOn)</_GenerateProjectPriFileDependsOn>
|
|
</PropertyGroup>
|
|
<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** -->
|
|
|
|
<!-- This is required to get the package dependency in the AppXManifest. -->
|
|
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets')" />
|
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
<PropertyGroup>
|
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
|
</PropertyGroup>
|
|
<Error Condition="!Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets'))" />
|
|
</Target>
|
|
|
|
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
|
</Project>
|