125 строки
7.9 KiB
XML
125 строки
7.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See LICENSE-CODE in the project root for license information. -->
|
|
<!-- This is a special MSBuild file that is parsed before everything else when MSBuild detects it in our directory structure.
|
|
Adding Sdk="Microsoft.NET.Sdk" to a project causes NuGet files to be generated very early on, so we need these defines to be here
|
|
to ensure that all of our build output files end up in the same location. -->
|
|
<Project InitialTargets="DirectoryBuildPropsInfo" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Project="eng\Version.Dependencies.props" />
|
|
<!-- Due to import ordering inconsistencies between different project types, we import this file from multiple places. -->
|
|
<Import Project="$(MSBuildThisFileDirectory)build\EnsureOutputLayout.props" Condition="$(EnsureOutputLayoutPropsIncluded) == ''" />
|
|
|
|
<PropertyGroup>
|
|
<IsTDPConfiguration>false</IsTDPConfiguration>
|
|
<GeneratedFilesDir>$(BaseIntermediateOutputPath)Generated Files\</GeneratedFilesDir>
|
|
<GenerateProjectSpecificOutputFolder>True</GenerateProjectSpecificOutputFolder>
|
|
<ForceImportAfterCppTargets>$(BuildRoot)AfterCpp.targets</ForceImportAfterCppTargets>
|
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
|
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
|
|
|
<NugetPackageDirectory>$(RepoRoot)\packages</NugetPackageDirectory>
|
|
<SignAssembly>true</SignAssembly>
|
|
<AssemblyOriginatorKeyFile>$(RepoRoot)\WasdkStrongNameSign.snk</AssemblyOriginatorKeyFile>
|
|
<WindowsSdkPackageVersion>10.0.17763.$(CsWinRTDependencyWindowsSdkVersionSuffixPackageVersion)</WindowsSdkPackageVersion>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
|
</PropertyGroup>
|
|
|
|
<!-- Compilation differs for the build pipeline vs local development -->
|
|
<PropertyGroup Condition="$(WindowsAppSDKBuildPipeline) != '1'">
|
|
<!-- If not set, default it to no . -->
|
|
<WindowsAppSDKBuildPipeline>0</WindowsAppSDKBuildPipeline>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="DirectoryBuildPropsInfo">
|
|
<Message Condition="'$(WindowsAppSDKBuildPipeline)' == '1'" Importance="High" Text="Directory.Build.props detects WindowsAppSDKBuildPipeline=$(WindowsAppSDKBuildPipeline)"/>
|
|
|
|
<Error Condition="!Exists('$(RepoTestCertificatePFX)')" Text="$(RepoTestCertificatePFX) not found. Run '$(RepoRoot)\DevCheck.cmd' to generate the test certificate." />
|
|
<Error Condition="!Exists('$(RepoTestCertificatePWD)')" Text="$(RepoTestCertificatePWD) not found. Run '$(RepoRoot)\DevCheck.cmd' to generate the test certificate." />
|
|
</Target>
|
|
|
|
<!-- Conditional behavior for build pipeline vs local development -->
|
|
<ItemDefinitionGroup Condition="$(WindowsAppSDKBuildPipeline) == '1'">
|
|
<ClCompile>
|
|
<PreprocessorDefinitions>WINDOWSAPPSDK_BUILD_PIPELINE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<AdditionalIncludeDirectories>$(SolutionDir)\build\override;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</ClCompile>
|
|
<ResourceCompile>
|
|
<PreprocessorDefinitions>WINDOWSAPPSDK_BUILD_PIPELINE=1;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
|
<AdditionalIncludeDirectories>$(SolutionDir)\build\override;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</ResourceCompile>
|
|
<Midl>
|
|
<PreprocessorDefinitions>WINDOWSAPPSDK_BUILD_PIPELINE=1;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
|
<AdditionalIncludeDirectories>$(SolutionDir)\build\override;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</Midl>
|
|
</ItemDefinitionGroup>
|
|
|
|
<!-- The standard props files do not set _DEBUG for the resource compiler, but we need that to build the correct file
|
|
flags in the version info resource -->
|
|
<ItemDefinitionGroup Condition="$(Configuration) == 'Debug'">
|
|
<ResourceCompile>
|
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions);</PreprocessorDefinitions>
|
|
</ResourceCompile>
|
|
</ItemDefinitionGroup>
|
|
|
|
<!-- Define our standardardized options for C/C++ builds -->
|
|
<Import Project="$(MSBuildThisFileDirectory)WindowsAppSDK.Build.Cpp.props" />
|
|
|
|
<!-- Load the test certificate's password (so we do it once for reuse across projects) -->
|
|
<PropertyGroup Condition="'$(RepoTestCertificatePFX)' == ''">
|
|
<RepoTestCertificatePFX>$(RepoRoot)\.user\winappsdk.certificate.test.pfx</RepoTestCertificatePFX>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(RepoTestCertificatePWD)' == ''">
|
|
<RepoTestCertificatePWD>$(RepoRoot)\.user\winappsdk.certificate.test.pwd</RepoTestCertificatePWD>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="('$(RepoTestCertificatePWD)' != '') and Exists('$(RepoTestCertificatePWD)')">
|
|
<RepoTestCertificatePassword>$([System.IO.File]::ReadAllText('$(RepoTestCertificatePWD)').TrimEnd())</RepoTestCertificatePassword>
|
|
<RepoTestCertificatePasswordRedacted>...redacted...</RepoTestCertificatePasswordRedacted>
|
|
</PropertyGroup>
|
|
|
|
<!-- 'Clean As We Go' if necessary (specified). Prevents build agents from running out of disk space -->
|
|
<Target Name="CleanIntermediateFiles" AfterTargets="Build" Condition="'$(WindowsAppSDKCleanIntermediateFiles)' == 'true'">
|
|
<RemoveDir Directories="$(IntermediateOutputPath)" />
|
|
</Target>
|
|
|
|
<!--
|
|
This repository is mirrored to an internal repository in Azure Devops that is used for the official build.
|
|
We need to translate the internal AzDO URLs into Github URLs in order for SourceLink to properly resolve
|
|
source code.
|
|
|
|
The logic for doing this was adapted from the Arcade SDK (https://github.com/dotnet/arcade/blob/8fe02bab989df1265eee225df2c28af6dbdccc83/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets#L36-L75).
|
|
-->
|
|
<PropertyGroup>
|
|
<!-- There are a few git repo forms:
|
|
https://microsoft@dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDK
|
|
https://dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDK
|
|
-->
|
|
<!-- Set DisableSourceLinkUrlTranslation to true when building a tool for internal use where sources only come from internal URIs -->
|
|
<DisableSourceLinkUrlTranslation Condition="'$(DisableSourceLinkUrlTranslation)' == ''">false</DisableSourceLinkUrlTranslation>
|
|
<_TranslateUrlPattern>(https://microsoft%40dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDK|https://dev.azure.com/microsoft/ProjectReunion/_git/WindowsAppSDK|https://microsoft.visualstudio.com/ProjectReunion/_git/WindowsAppSDK)</_TranslateUrlPattern>
|
|
<_TranslateUrlReplacement>https://github.com/microsoft/WindowsAppSDK.git</_TranslateUrlReplacement>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_TranslateAzureDevOpsUrlToGitHubUrl"
|
|
Condition="'$(DisableSourceLinkUrlTranslation)' == 'false'"
|
|
DependsOnTargets="$(SourceControlManagerUrlTranslationTargets)"
|
|
BeforeTargets="SourceControlManagerPublishTranslatedUrls">
|
|
|
|
<PropertyGroup>
|
|
<ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<SourceRoot Update="@(SourceRoot)">
|
|
<ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl>
|
|
<!-- As part of our deterministic build, we pass the `/d1trimfile:$(RepoRoot)` switch to the C++ compiler to remove the
|
|
repo root from file paths embedded into the PDB, e.g. `d:\winappsdk\dev\MRTCore\mrt\Core\src\MRM.cpp` becomes
|
|
`\dev\MRTCore\mrt\Core\src\MRM.cpp`. We thus need to tell Source Link about this mapping. -->
|
|
<MappedPath Condition="'$(Language)'=='C++'">$([System.String]::Copy('%(SourceRoot.Identity)').Replace('$(RepoRoot)',''))</MappedPath>
|
|
</SourceRoot>
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|