-
Notifications
You must be signed in to change notification settings - Fork 0
/
EnsureOutputLayout.props
30 lines (24 loc) · 1.82 KB
/
EnsureOutputLayout.props
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Howard Kapustein. All rights reserved. Licensed under the MIT License. See LICENSE in the project root for license information. -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Due to import ordering inconsistencies between different project types, we import this file
from multiple places. This property denotes it has been imported, to avoid multiple import warnings. -->
<EnsureOutputLayoutPropsIncluded>true</EnsureOutputLayoutPropsIncluded>
<!-- The root of the repository -->
<RepoRoot>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</RepoRoot>
<!-- This is defined in Platform.Default.props for each platform,
but we need it early to ensure our output directories are formatted consistently -->
<PlatformTarget>$(Platform)</PlatformTarget>
<PlatformTarget Condition="$(Platform) == 'Win32'">x86</PlatformTarget>
<!-- Use PlatformTarget instead of Platform to keep things more consistent (avoid 'Win32' as a build output) -->
<BaseOutputPath>$(RepoRoot)\bin\$(Configuration)\$(PlatformTarget)\</BaseOutputPath>
<!-- Intermediate files under obj\. Some intermediate file paths are really long, thus avoid unnecessary subdirectories -->
<BaseIntermediateOutputPath>$(RepoRoot)\obj\$(Configuration)\$(PlatformTarget)\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
<!-- This is later fixed up to contain the project name, but if we specify it here then it ends up being included twice. -->
<OutDir>$(BaseOutputPath)</OutDir>
<OutputPath>$(OutDir)\$(MSBuildProjectName)\</OutputPath>
<TargetDir>$(OutDir)</TargetDir>
</PropertyGroup>
</Project>