forked from UbiquityDotNET/Llvm.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
104 lines (92 loc) · 7.05 KB
/
Directory.Build.props
File metadata and controls
104 lines (92 loc) · 7.05 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<Project>
<!--
Description:
This property file is imported by the projects in this repository to set global locations
common to all of the projects for a consistent build.
-->
<!--
Allow for a parent to provide/override the defaults provided here
Projects importing this property sheet can still override those settings.
Implementation Note:
ALL properties defined here should be done conditionally to allow inheriting from
a parent. Conditional properties makes this project a well behaved sub module for
other projects that might want to set the build outputs etc... into a different place.
-->
<PropertyGroup>
<!-- Default to x64/AnyCPU | Release build if not otherwise specified -->
<Platform Condition="'$(Platform)'=='' AND '$(MSBuildProjectExtension)'!='.vcxproj'">AnyCPU</Platform>
<Platform Condition="'$(Platform)'=='' AND '$(MSBuildProjectExtension)'=='.vcxproj'">x64</Platform>
<Platform Condition="$(Platform)=='x86' AND '$(MSBuildProjectExtension)'=='.vcxproj'">Win32</Platform>
<UnifiedPlatformPathName Condition="'$(UnifiedPlatformPathName)'==''">$(Platform)</UnifiedPlatformPathName>
<UnifiedPlatformPathName Condition="'$(UnifiedPlatformPathName)'=='Win32'">x86</UnifiedPlatformPathName>
<UnifiedPlatformPathName Condition="'$(UnifiedPlatformPathName)'=='AnyCPU'">x64</UnifiedPlatformPathName>
<Configuration Condition="'$(Configuration)'==''">Release</Configuration>
<!-- Use the location of this file (at the top of the build tree) to define the root directory, if not already set -->
<BuildRootDir Condition="'$(BuildRootDir)'==''">$(MSBuildThisFileDirectory)</BuildRootDir>
<BuildRootDir>$([MSBuild]::EnsureTrailingSlash("$(BuildRootDir)"))</BuildRootDir>
<!-- Put build output and intermediate output files into a well known location outside of the source tree -->
<BaseBuildOutputPath Condition="'$(BaseBuildOutputPath)'==''">$([MSBuild]::NormalizeDirectory("$(BuildRootDir)", "BuildOutput"))</BaseBuildOutputPath>
<BaseBuildOutputPath>$([MSBuild]::EnsureTrailingSlash("$(BaseBuildOutputPath)"))</BaseBuildOutputPath>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''" >$([MSBuild]::NormalizeDirectory("$(BaseBuildOutputPath)", "Intermediate", "$(MSBuildProjectName)"))</BaseIntermediateOutputPath>
<IntDir Condition="'$(IntDir)'==''">$([MSBuild]::NormalizeDirectory("$(BaseIntermediateOutputPath)", "$(UnifiedPlatformPathName)", "$(Configuration)"))</IntDir>
<BaseBuildOutputBinPath Condition="'$(BaseBuildOutputBinPath)'==''">$([MSBuild]::NormalizeDirectory("$(BaseBuildOutputPath)", "bin"))</BaseBuildOutputBinPath>
<BaseOutputPath Condition="'$(BaseOutputPath)'==''">$([MSBuild]::NormalizeDirectory("$(BaseBuildOutputBinPath)", "$(MSBuildProjectName)"))</BaseOutputPath>
<PackageOutputPath Condition="'$(PackageOutputPath)'==''">$([MSBuild]::NormalizeDirectory("$(BaseBuildOutputPath)","NuGet"))</PackageOutputPath>
<BuildOutputPackagesDir Condition="'$(BuildOutputPackagesDir)'==''">$(BaseBuildOutputPath)packages\</BuildOutputPackagesDir>
<BuildVersionXml Condition="'$(BuildVersionXmlFile)'==''">$(MSBuildThisFileDirectory)BuildVersion.xml</BuildVersionXml>
<IsAutomatedBuild Condition="'$(IsAutomatedBuild)'==''">false</IsAutomatedBuild>
<IsPullRequestBuild Condition="'$(IsPullRequestBuild)'==''">false</IsPullRequestBuild>
<IsReleaseBuild Condition="'$(IsReleaseBuild)'==''">false</IsReleaseBuild>
<BuildTime Condition="'$(BuildTime)'=='' AND '$(APPVEYOR_REPO_COMMIT_TIMESTAMP)'!=''">$(APPVEYOR_REPO_COMMIT_TIMESTAMP)</BuildTime>
<!--<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>-->
</PropertyGroup>
<Choose>
<!-- Apply standard properties to special build projects -->
<When Condition="'$(MSBuildProjectExtension)'=='.msbuildproj' and '$(DisableDirProps)'!='true'">
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
</When>
<!-- Apply standard properties for all C# projects -->
<When Condition="'$(MSBuildProjectExtension)'=='.csproj' and '$(DisableDirProps)'!='true'">
<PropertyGroup>
<CodeAnalysisIgnoreGeneratedCode>true</CodeAnalysisIgnoreGeneratedCode>
<Determenistic>true</Determenistic>
<Nullable Condition="$(Nullable)=='' AND '$(UsingMicrosoftNETSdk)'=='true'">enable</Nullable>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!-- Disable RUDE OPT-OUT breaking change for entire repo -->
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<!--
Really have no idea what this is for, there's no docs, but it removes the auto-referencing for
the EnvDTE package from the imported targets file. It is VERY confusing to chase down the source
of a package dependency when it is manually applied like that.
see: https://github.com/tmds/Tmds.ExecFunction/issues/16
-->
<EnableExecFunctionVsDebugging>false</EnableExecFunctionVsDebugging>
<!--
DO NOT ALLOW Implicit using msbuild feature - EVIL; causes mass issues and frustration moving code between projects when one doesn't
support it or uses a different version. Not to mention hiding the actual namespaces involved, making resolving conflicts HARDER.
-->
<ImplicitUsings>disable</ImplicitUsings>
<!-- NOTE: Top-Level statements blocked as an error in .editorconfig and ImplicitUsings 'feature' VERIFIED in the targets file -->
</PropertyGroup>
<!--
Apply SyleCop settings to all projects; It is at least plausible to do this in a .editorconfig but there's no docs on
how. Only a PR and multiple bugs/discussions pointing to it. It's too big to decipher to make it worth using. Docs please.
-->
<ItemGroup Condition="'$(NoCommonAnalyzers)'!='true'">
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />
</ItemGroup>
</When>
<When Condition="'$(MSBuildProjectExtension)'=='.vcxproj'">
<!-- vcxproj uses a different pattern for output paths -->
<PropertyGroup>
<OutputPath Condition="'$(OutputPath)'==''">$([MSBuild]::NormalizeDirectory("$(BaseOutputPath)", "$(Configuration)", "$(UnifiedPlatformPathName)"))</OutputPath>
<OutputPath>$([MSBuild]::EnsureTrailingSlash("$(OutputPath)"))</OutputPath>
<OutDir Condition="'$(OutDir)'==''">$(OutputPath)</OutDir>
</PropertyGroup>
</When>
</Choose>
</Project>