You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
66
external/buildtools/.gitattributes
vendored
Normal file
66
external/buildtools/.gitattributes
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* text=auto
|
||||
# Force bash scripts to always use lf line endings so that if a repro is accessed
|
||||
# in Unix via a file share from Windows, the scripts will work.
|
||||
*.sh text eol=lf
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
# This is need for earlier builds of msysgit that does not have it on by
|
||||
# default for csharp files.
|
||||
# Note: This is only used by command line
|
||||
###############################################################################
|
||||
#*.cs diff=csharp
|
||||
|
||||
###############################################################################
|
||||
# Set the merge driver for project and solution files
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
###############################################################################
|
||||
#*.sln merge=binary
|
||||
#*.csproj merge=binary
|
||||
#*.vbproj merge=binary
|
||||
#*.vcxproj merge=binary
|
||||
#*.vcproj merge=binary
|
||||
#*.dbproj merge=binary
|
||||
#*.fsproj merge=binary
|
||||
#*.lsproj merge=binary
|
||||
#*.wixproj merge=binary
|
||||
#*.modelproj merge=binary
|
||||
#*.sqlproj merge=binary
|
||||
#*.wwaproj merge=binary
|
||||
|
||||
###############################################################################
|
||||
# behavior for image files
|
||||
#
|
||||
# image files are treated as binary by default.
|
||||
###############################################################################
|
||||
#*.jpg binary
|
||||
#*.png binary
|
||||
#*.gif binary
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
#*.DOC diff=astextplain
|
||||
#*.docx diff=astextplain
|
||||
#*.DOCX diff=astextplain
|
||||
#*.dot diff=astextplain
|
||||
#*.DOT diff=astextplain
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
252
external/buildtools/.gitignore
vendored
Normal file
252
external/buildtools/.gitignore
vendored
Normal file
@@ -0,0 +1,252 @@
|
||||
syntax: glob
|
||||
|
||||
### VisualStudio ###
|
||||
|
||||
# Tool Runtime Dir
|
||||
/[Tt]ools/
|
||||
|
||||
# NuGet package restore lockfiles
|
||||
project.lock.json
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
.vs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
build/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
msbuild.log
|
||||
|
||||
# Roslyn stuff
|
||||
*.sln.ide
|
||||
*.ide/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
#NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding addin-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
**/packages/*
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
*.metaproj
|
||||
*.metaproj.tmp
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
### MonoDevelop ###
|
||||
|
||||
*.pidb
|
||||
*.userprefs
|
||||
|
||||
### Windows ###
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
### Linux ###
|
||||
|
||||
*~
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
### OSX ###
|
||||
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear on external disk
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
# vim temporary files
|
||||
[._]*.s[a-w][a-z]
|
||||
[._]s[a-w][a-z]
|
||||
*.un~
|
||||
Session.vim
|
||||
.netrwhist
|
||||
*~
|
||||
1
external/buildtools/BuildToolsVersion.txt
vendored
Normal file
1
external/buildtools/BuildToolsVersion.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
1.0.25-prerelease-00225-00
|
||||
3
external/buildtools/CONTRIBUTING.md
vendored
Normal file
3
external/buildtools/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Contributing
|
||||
|
||||
Information on contributing is in the [Contributing Guide](https://github.com/dotnet/corefx/wiki/Contributing).
|
||||
1
external/buildtools/DotnetCLIVersion.txt
vendored
Normal file
1
external/buildtools/DotnetCLIVersion.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
1.0.0-beta-002173
|
||||
21
external/buildtools/LICENSE
vendored
Normal file
21
external/buildtools/LICENSE
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
19
external/buildtools/README.md
vendored
Normal file
19
external/buildtools/README.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# .NET Core Build Tools
|
||||
|
||||
[](http://dotnet-ci.cloudapp.net/job/dotnet_buildtools/job/innerloop/)
|
||||
|
||||
This repository contains supporting build tools that are necessary for building
|
||||
the [.NET Core][dotnet-corefx] projects. These projects consume the build tools
|
||||
via the corresponding [Microsoft.DotNet.BuildTools][Microsoft.DotNet.BuildTools]
|
||||
NuGet package.
|
||||
|
||||
The build tools are MSBuild `.targets` and tasks. These extend the build process
|
||||
to provide additional functionality, such as producing version information and
|
||||
performing [strong name signing][sn-sign].
|
||||
|
||||
**Note:** Please note that these tools are currently not meant for consumption
|
||||
outside of the .NET Core projects.
|
||||
|
||||
[dotnet-corefx]: https://github.com/dotnet/corefx
|
||||
[Microsoft.DotNet.BuildTools]: http://nuget.org/packages/Microsoft.DotNet.BuildTools
|
||||
[sn-sign]: https://github.com/dotnet/corefx/wiki/Strong%20Naming
|
||||
6
external/buildtools/appveyor.yml
vendored
Normal file
6
external/buildtools/appveyor.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
build_script: "\"%VS120COMNTOOLS%VsDevCmd.bat\" && build.cmd"
|
||||
test: off # disable automatic test discovery, xUnit already runs as part of build.cmd
|
||||
|
||||
artifacts:
|
||||
- path: msbuild.log
|
||||
name: MSBuild Log
|
||||
55
external/buildtools/build.cmd
vendored
Normal file
55
external/buildtools/build.cmd
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: Note: We've disabled node reuse because it causes file locking issues.
|
||||
:: The issue is that we extend the build with our own targets which
|
||||
:: means that that rebuilding cannot successfully delete the task
|
||||
:: assembly.
|
||||
|
||||
if not defined VisualStudioVersion (
|
||||
if defined VS140COMNTOOLS (
|
||||
call "%VS140COMNTOOLS%\VsDevCmd.bat"
|
||||
goto :EnvSet
|
||||
)
|
||||
|
||||
if defined VS120COMNTOOLS (
|
||||
call "%VS120COMNTOOLS%\VsDevCmd.bat"
|
||||
goto :EnvSet
|
||||
)
|
||||
|
||||
echo Error: build.cmd requires Visual Studio 2013 or 2015.
|
||||
echo Please see https://github.com/dotnet/corefx/blob/master/Documentation/developer-guide.md for build instructions.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:EnvSet
|
||||
|
||||
call %~dp0init-tools.cmd
|
||||
|
||||
:: Log build command line
|
||||
set _buildproj=%~dp0build.proj
|
||||
set _buildlog=%~dp0msbuild.log
|
||||
set _buildprefix=echo
|
||||
set _buildpostfix=^> "%_buildlog%"
|
||||
call :build %*
|
||||
|
||||
:: Build
|
||||
set _buildprefix=
|
||||
set _buildpostfix=
|
||||
call :build %*
|
||||
|
||||
goto :AfterBuild
|
||||
|
||||
:build
|
||||
%_buildprefix% msbuild "%_buildproj%" /nologo /maxcpucount /verbosity:minimal /nodeReuse:false /fileloggerparameters:Verbosity=normal;LogFile="%_buildlog%";Append %* %_buildpostfix%
|
||||
set BUILDERRORLEVEL=%ERRORLEVEL%
|
||||
goto :eof
|
||||
|
||||
:AfterBuild
|
||||
|
||||
echo.
|
||||
:: Pull the build summary from the log file
|
||||
findstr /ir /c:".*Warning(s)" /c:".*Error(s)" /c:"Time Elapsed.*" "%_buildlog%"
|
||||
echo Build Exit Code = %BUILDERRORLEVEL%
|
||||
|
||||
exit /b %BUILDERRORLEVEL%
|
||||
75
external/buildtools/build.proj
vendored
Normal file
75
external/buildtools/build.proj
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="BuildAndTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="dir.props" />
|
||||
|
||||
<!-- required to build the projects in their specified order -->
|
||||
<PropertyGroup>
|
||||
<SerializeProjects>true</SerializeProjects>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Project Include="src\dirs.proj" />
|
||||
<Project Include="src\sign.builds" />
|
||||
<Project Include="src\packages.builds" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="dir.targets" />
|
||||
|
||||
<Import Project="dir.traversal.targets" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TraversalBuildDependsOn>
|
||||
ValidateAllProjectDependencies;
|
||||
BatchRestorePackages;
|
||||
CreateOrUpdateCurrentVersionFile;
|
||||
$(TraversalBuildDependsOn);
|
||||
</TraversalBuildDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="BatchRestorePackages">
|
||||
<Message Importance="High" Text="Restoring all packages..." />
|
||||
|
||||
<Exec Command="$(DnuRestoreCommand) $(DnuRestoreDirs)" StandardOutputImportance="Low" CustomErrorRegularExpression="^Unable to locate .*" />
|
||||
|
||||
<ItemGroup>
|
||||
<_allPackagesConfigs Include="$(MSBuildProjectDirectory)\src\**\packages.config"/>
|
||||
</ItemGroup>
|
||||
<Exec Condition="'@(_allPackagesConfigs)' != ''" Command="$(NugetRestoreCommand) "%(_allPackagesConfigs.FullPath)"" StandardOutputImportance="Low" />
|
||||
</Target>
|
||||
|
||||
<!-- Task from buildtools that validates dependencies contained in project.json files. -->
|
||||
<UsingTask TaskName="ValidateProjectDependencyVersions" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" />
|
||||
|
||||
<Target Name="ValidateAllProjectDependencies"
|
||||
Condition="'$(ValidatePackageVersions)'=='true' and '@(ProjectJsonFiles)'!=''">
|
||||
<ValidateProjectDependencyVersions ProjectJsons="@(ProjectJsonFiles)"
|
||||
ProhibitFloatingDependencies="$(ProhibitFloatingDependencies)"
|
||||
ValidationPatterns="@(ValidationPattern)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="UpdateInvalidPackageVersions">
|
||||
<ValidateProjectDependencyVersions ProjectJsons="@(ProjectJsonFiles)"
|
||||
ProhibitFloatingDependencies="$(ProhibitFloatingDependencies)"
|
||||
ValidationPatterns="@(ValidationPattern)"
|
||||
UpdateInvalidDependencies="true" />
|
||||
</Target>
|
||||
|
||||
<!-- Tasks from buildtools for easy project.json dependency updates -->
|
||||
<UsingTask TaskName="UpdatePackageDependencyVersion" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" />
|
||||
|
||||
<Target Name="UpdatePackageDependencyVersion">
|
||||
<UpdatePackageDependencyVersion ProjectJsons="@(ProjectJsonFiles)"
|
||||
PackageId="$(PackageId)"
|
||||
OldVersion="$(OldVersion)"
|
||||
NewVersion="$(NewVersion)" />
|
||||
</Target>
|
||||
|
||||
<!-- Override RestorePackages from dir.traversal.targets and do a batch restore -->
|
||||
<Target Name="RestorePackages" DependsOnTargets="BatchRestorePackages" />
|
||||
|
||||
<!-- Override clean from dir.traversal.targets and just remove the full BinDir -->
|
||||
<Target Name="Clean">
|
||||
<RemoveDir Directories="$(BinDir)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
270
external/buildtools/dir.props
vendored
Normal file
270
external/buildtools/dir.props
vendored
Normal file
@@ -0,0 +1,270 @@
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" InitialTargets="CheckRoslyn" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Condition="Exists('..\dir.props')" Project="..\dir.props" />
|
||||
|
||||
<!--
|
||||
$(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Build Tools Versions -->
|
||||
<PropertyGroup>
|
||||
<RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
|
||||
<RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer
|
||||
as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks.
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<BuildToolsTargets45>true</BuildToolsTargets45>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Common repo directories -->
|
||||
<PropertyGroup>
|
||||
<ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
|
||||
<SourceDir>$(ProjectDir)src/</SourceDir>
|
||||
|
||||
<!-- Output directories -->
|
||||
<BinDir Condition="'$(BinDir)'==''">$(ProjectDir)bin/</BinDir>
|
||||
<ObjDir Condition="'$(ObjDir)'==''">$(BinDir)obj/</ObjDir>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''">$(ObjDir)</BaseIntermediateOutputPath>
|
||||
<TestWorkingDir Condition="'$(TestWorkingDir)'==''">$(BinDir)tests/</TestWorkingDir>
|
||||
<PackagesOutDir Condition="'$(PackagesOutDir)'==''">$(BinDir)packages/</PackagesOutDir>
|
||||
|
||||
<!-- Input Directories -->
|
||||
<PackagesDir Condition="'$(PackagesDir)'==''">$(ProjectDir)packages/</PackagesDir>
|
||||
<ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir>
|
||||
<BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net45/</BuildToolsTaskDir>
|
||||
<PackagingTaskDir>$(ToolsDir)net45/</PackagingTaskDir>
|
||||
<DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Setting up Versioning -->
|
||||
<PropertyGroup>
|
||||
<VersionComparisonDate>2016-01-01</VersionComparisonDate>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(ToolsDir)BuildVersion.targets" />
|
||||
|
||||
<!-- Import Build tools common props file where repo-independent properties are found -->
|
||||
<Import Project="$(ToolsDir)Build.Common.props" />
|
||||
|
||||
<!-- Test runtime -->
|
||||
<PropertyGroup>
|
||||
<TestRuntimeProjectJson Condition="'$(TestRuntimeProjectJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.json</TestRuntimeProjectJson>
|
||||
<TestRuntimeProjectLockJson Condition="'$(TestRuntimeProjectLockJson)' == ''">$(SourceDir)Microsoft.DotNet.Build.Tasks/PackageFiles/test-runtime/project.lock.json</TestRuntimeProjectLockJson>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Package dependency validation -->
|
||||
<PropertyGroup>
|
||||
<ValidatePackageVersions>true</ValidatePackageVersions>
|
||||
<ProhibitFloatingDependencies>true</ProhibitFloatingDependencies>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ValidationPattern Include="^(?i)((System\..%2A)|(Microsoft\.Cci)|(Microsoft\.CSharp)|(Microsoft\.NETCore.%2A)|(Microsoft\.Win32\..%2A)|(Microsoft\.VisualBasic))(?<!TestData)$">
|
||||
<ExpectedPrerelease>rc2-23923</ExpectedPrerelease>
|
||||
</ValidationPattern>
|
||||
<ValidationPattern Include="^(?i)xunit$">
|
||||
<ExpectedVersion>2.1.0</ExpectedVersion>
|
||||
</ValidationPattern>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- list of nuget package sources passed to nuget.exe -->
|
||||
<ItemGroup>
|
||||
<NuGetSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools" />
|
||||
<NuGetSourceList Include="https:%2F%2Fwww.nuget.org/api/v2" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Common nuget properties -->
|
||||
<PropertyGroup>
|
||||
<NuGetToolPath Condition="'$(NuGetToolPath)'==''">$(PackagesDir)NuGet.exe</NuGetToolPath>
|
||||
<NuGetPackageSource>@(NuGetSourceList -> '-source %(Identity)', ' ')</NuGetPackageSource>
|
||||
<NuGetConfigCommandLine>$(NuGetPackageSource)</NuGetConfigCommandLine>
|
||||
|
||||
<NugetRestoreCommand>"$(NuGetToolPath)"</NugetRestoreCommand>
|
||||
<NugetRestoreCommand>$(NugetRestoreCommand) install</NugetRestoreCommand>
|
||||
<!-- NuGet.exe doesn't like trailing slashes in the output directory argument -->
|
||||
<NugetRestoreCommand>$(NugetRestoreCommand) -OutputDirectory "$(PackagesDir.TrimEnd('/\'.ToCharArray()))"</NugetRestoreCommand>
|
||||
<NugetRestoreCommand>$(NugetRestoreCommand) $(NuGetConfigCommandLine)</NugetRestoreCommand>
|
||||
<NugetRestoreCommand>$(NugetRestoreCommand) -Verbosity detailed</NugetRestoreCommand>
|
||||
<NugetRestoreCommand Condition="'$(OsEnvironment)'=='Unix'">mono $(NuGetRestoreCommand)</NugetRestoreCommand>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- list of nuget package sources passed to dnu -->
|
||||
<ItemGroup>
|
||||
<!-- Need to escape double forward slash (%2F) or MSBuild will normalize to one slash on Unix. -->
|
||||
<DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-core/api/v3/index.json" />
|
||||
<DnuSourceList Include="https:%2F%2Fdotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
|
||||
<DnuSourceList Include="https:%2F%2Fwww.myget.org/F/nugetbuild/api/v3/index.json" />
|
||||
<DnuSourceList Include="https:%2F%2Fapi.nuget.org/v3/index.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- list of directories to perform batch restore -->
|
||||
<ItemGroup>
|
||||
<DnuRestoreDir Include="$(MSBuildProjectDirectory)\src" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'!='Unix'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>
|
||||
<DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'=='Unix'">$(DotnetCliPath)dotnet</DotnetToolCommand>
|
||||
|
||||
<DnuRestoreSource>@(DnuSourceList -> '--source %(Identity)', ' ')</DnuRestoreSource>
|
||||
<DnuRestoreDirs>@(DnuRestoreDir -> '"%(Identity)"', ' ')</DnuRestoreDirs>
|
||||
|
||||
<DnuRestoreCommand>"$(DotnetToolCommand)"</DnuRestoreCommand>
|
||||
<DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
|
||||
<DnuRestoreCommand Condition="'$(ParallelRestore)'=='true'">$(DnuRestoreCommand) --parallel</DnuRestoreCommand>
|
||||
<DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/\'.ToCharArray()))" $(DnuRestoreSource)</DnuRestoreCommand>
|
||||
<DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
|
||||
<DnuRestoreCommand Condition="'$(InferRuntimes)'!='false'">$(DnuRestoreCommand) --infer-runtimes</DnuRestoreCommand>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Create a collection of all project.json files for dependency updates. -->
|
||||
<ItemGroup>
|
||||
<ProjectJsonFiles Include="$(SourceDir)**/project.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
|
||||
<!-- When we do a traversal build we get all packages up front, don't restore them again -->
|
||||
<RestorePackages>false</RestorePackages>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Set up Roslyn predefines
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<RoslynPackageDir>$(PackagesDir)/$(RoslynPackageName).$(RoslynVersion)/</RoslynPackageDir>
|
||||
<RoslynPropsFile>$(RoslynPackageDir)build/Microsoft.Net.ToolsetCompilers.props</RoslynPropsFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(OsEnvironment)'=='Unix' and '$(UseRoslynCompiler)'=='true'">
|
||||
<!--
|
||||
PDB support isn't implemented yet. https://github.com/dotnet/roslyn/issues/2449
|
||||
Note that both DebugSymbols and DebugType need set or project references will assume they need to copy pdbs and fail.
|
||||
-->
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<DebugType>none</DebugType>
|
||||
<!--
|
||||
Full signing with Open key doesn't work with Portable Csc.
|
||||
https://github.com/dotnet/roslyn/issues/8210
|
||||
-->
|
||||
<UseOpenKey>false</UseOpenKey>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(OsEnvironment)'=='Unix'">
|
||||
<!--
|
||||
Mono currently doesn't include VB targets for portable, notably /lib/mono/xbuild/Microsoft/Portable/v4.5/Microsoft.Portable.VisualBasic.targets.
|
||||
Fixed in https://github.com/mono/mono/pull/1726.
|
||||
-->
|
||||
<IncludeVbProjects>false</IncludeVbProjects>
|
||||
<!--
|
||||
Building packages fails for two reasons.
|
||||
First, nuget doesn't like the paths in the nuspec having backslashes as directory separators.
|
||||
Second, we aren't yet building pdbs, which the nuspecs specify.
|
||||
-->
|
||||
<SkipBuildPackages>true</SkipBuildPackages>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set the default strong name sig to use the "open" key -->
|
||||
<PropertyGroup Condition="'$(UseOpenKey)' == ''">
|
||||
<UseOpenKey>true</UseOpenKey>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Projects that have no OS-specific implementations just use Debug and Release for $(Configuration).
|
||||
Projects that do have OS-specific implementations use OS_Debug and OS_Release, for all OS's we support even
|
||||
if the code is the same between some OS's (so if you have some project that just calls POSIX APIs, we still have
|
||||
OSX_[Debug|Release] and Linux_[Debug|Release] configurations. We do this so that we place all the output under
|
||||
a single binary folder and can have a similar experience between the command line and Visual Studio.
|
||||
|
||||
Since now have multiple *Debug and *Release configurations, ConfigurationGroup is set to Debug for any of the
|
||||
debug configurations, and to Release for any of the release configurations.
|
||||
-->
|
||||
|
||||
<!-- Set default Configuration and Platform -->
|
||||
<PropertyGroup>
|
||||
<Platform Condition="'$(Platform)'==''">AnyCPU</Platform>
|
||||
|
||||
<Configuration Condition="'$(Configuration)'==''">Debug</Configuration>
|
||||
<ConfigurationGroup Condition="$(Configuration.EndsWith('Debug'))">Debug</ConfigurationGroup>
|
||||
<ConfigurationGroup Condition="$(Configuration.EndsWith('Release'))">Release</ConfigurationGroup>
|
||||
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">$(Configuration)</ConfigurationGroup>
|
||||
|
||||
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Windows'))">Windows_NT</OSGroup>
|
||||
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Linux'))">Linux</OSGroup>
|
||||
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('OSX'))">OSX</OSGroup>
|
||||
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('FreeBSD'))">FreeBSD</OSGroup>
|
||||
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('NetBSD'))">NetBSD</OSGroup>
|
||||
<OSGroup Condition="'$(OSGroup)'==''">AnyOS</OSGroup>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set up Default symbol and optimization for Configuration -->
|
||||
<PropertyGroup Condition="'$(ConfigurationGroup)' == 'Debug'">
|
||||
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
|
||||
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
|
||||
<DebugType Condition="'$(DebugType)' == ''">full</DebugType>
|
||||
<DefineConstants>$(DefineConstants),DEBUG,TRACE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(ConfigurationGroup)' == 'Release'">
|
||||
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
|
||||
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
|
||||
<DebugType Condition="'$(DebugType)' == ''">pdbonly</DebugType>
|
||||
<DefineConstants>$(DefineConstants),TRACE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Disable some standard properties for building our projects -->
|
||||
<PropertyGroup>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoExplicitReferenceToStdLib>true</NoExplicitReferenceToStdLib>
|
||||
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
|
||||
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set up handling of build warnings -->
|
||||
<PropertyGroup>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set up some common paths -->
|
||||
<PropertyGroup>
|
||||
<CommonPath>$(SourceDir)Common</CommonPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set up the default output and intermediate paths -->
|
||||
<PropertyGroup>
|
||||
<OSPlatformConfig>$(OSGroup).$(Platform).$(ConfigurationGroup)</OSPlatformConfig>
|
||||
|
||||
<BaseOutputPath Condition="'$(BaseOutputPath)'==''">$(BinDir)</BaseOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'==''">$(BaseOutputPath)$(OSPlatformConfig)\$(MSBuildProjectName)\</OutputPath>
|
||||
|
||||
<IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(BaseIntermediateOutputPath)$(OSPlatformConfig)\</IntermediateOutputRootPath>
|
||||
<IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(IntermediateOutputRootPath)$(MSBuildProjectName)\</IntermediateOutputPath>
|
||||
|
||||
<TestPath Condition="'$(TestPath)'==''">$(TestWorkingDir)$(OSPlatformConfig)\$(MSBuildProjectName)\</TestPath>
|
||||
|
||||
<PackagesBasePath Condition="'$(PackagesBasePath)'==''">$(BinDir)$(OSPlatformConfig)</PackagesBasePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Set up common target properties that we use to conditionally include sources -->
|
||||
<PropertyGroup>
|
||||
<TargetsWindows Condition="'$(OSGroup)' == 'Windows_NT'">true</TargetsWindows>
|
||||
<TargetsLinux Condition="'$(OSGroup)' == 'Linux'">true</TargetsLinux>
|
||||
<TargetsOSX Condition="'$(OSGroup)' == 'OSX'">true</TargetsOSX>
|
||||
<TargetsFreeBSD Condition="'$(OSGroup)' == 'FreeBSD'">true</TargetsFreeBSD>
|
||||
<TargetsNetBSD Condition="'$(OSGroup)' == 'NetBSD'">true</TargetsNetBSD>
|
||||
|
||||
<TargetsUnix Condition="'$(TargetsLinux)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsFreeBSD)' == 'true' or '$(TargetsNetBSD)' == 'true'">true</TargetsUnix>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(RoslynPropsFile)"
|
||||
Condition="'$(UseRoslynCompiler)'=='true' and Exists('$(RoslynPropsFile)')" />
|
||||
|
||||
<!-- Building the build.proj should restore successfully, so ignore in that case -->
|
||||
<Target Name="CheckRoslyn" Condition="'$(UseRoslynCompiler)'=='true' and '$(MSBuildProjectFile)'!='build.proj'">
|
||||
<Warning Condition="!Exists('$(RoslynPropsFile)')"
|
||||
Text="The Roslyn targets do not exist- Roslyn will not be used for this build, but the package should be restored if you build again." />
|
||||
</Target>
|
||||
</Project>
|
||||
16
external/buildtools/dir.targets
vendored
Normal file
16
external/buildtools/dir.targets
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" InitialTargets="CheckForBuildTools" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Target Name="CheckForBuildTools">
|
||||
<Error Condition="!Exists('$(ToolsDir)')"
|
||||
Text="The tools directory [$(ToolsDir)] does not exist. Please run init-tools.cmd in your enlistment to ensure the tools are installed before attempting to build an individual project." />
|
||||
</Target>
|
||||
|
||||
<!-- Provide default targets which can be hooked onto or overridden as necessary -->
|
||||
<Target Name="BuildAndTest" DependsOnTargets="Build;Test" />
|
||||
<Target Name="RebuildAndTest" DependsOnTargets="Rebuild;Test" />
|
||||
<Target Name="Test" />
|
||||
|
||||
<Import Project="$(ToolsDir)/Build.Common.targets" Condition="'$(UseLiveBuildTools)' != 'true'" />
|
||||
|
||||
</Project>
|
||||
103
external/buildtools/dir.traversal.targets
vendored
Normal file
103
external/buildtools/dir.traversal.targets
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Target Name="BuildAllProjects">
|
||||
<PropertyGroup>
|
||||
<DefaultBuildAllTarget Condition="'$(DefaultBuildAllTarget)'==''">$(MSBuildProjectDefaultTargets)</DefaultBuildAllTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity
|
||||
however since the project names are unique it will essentially force each to run in its own batch -->
|
||||
<MSBuild Targets="$(DefaultBuildAllTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'=='true'"
|
||||
Properties="Dummy=%(Identity);DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<MSBuild Targets="$(DefaultBuildAllTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'!='true'"
|
||||
Properties="DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true"
|
||||
BuildInParallel="true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed -->
|
||||
<Error Condition="'$(MSBuildLastTaskResult)'=='false'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CleanAllProjects">
|
||||
<PropertyGroup>
|
||||
<DefaultCleanAllTarget Condition="'$(DefaultCleanAllTarget)'==''">Clean</DefaultCleanAllTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity
|
||||
however since the project names are unique it will essentially force each to run in its own batch -->
|
||||
<MSBuild Targets="$(DefaultCleanAllTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'=='true'"
|
||||
Properties="Dummy=%(Identity);CleanAllProjects=true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<MSBuild Targets="$(DefaultCleanAllTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'!='true'"
|
||||
Properties="CleanAllProjects=true"
|
||||
BuildInParallel="true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed -->
|
||||
<Error Condition="'$(MSBuildLastTaskResult)'=='false'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RestoreAllProjectPackages">
|
||||
<Message Importance="High" Text="Restoring project packages..." />
|
||||
|
||||
<PropertyGroup>
|
||||
<DefaultRestoreAllPackagesTarget Condition="'$(DefaultRestoreAllPackagesTarget)'==''">RestorePackages</DefaultRestoreAllPackagesTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity
|
||||
however since the project names are unique it will essentially force each to run in its own batch -->
|
||||
<MSBuild Targets="$(DefaultRestoreAllPackagesTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'=='true'"
|
||||
Properties="Dummy=%(Identity);RestoreAllPackages=true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<MSBuild Targets="$(DefaultRestoreAllPackagesTarget)"
|
||||
Projects="@(Project)"
|
||||
Condition="'$(SerializeProjects)'!='true'"
|
||||
Properties="RestoreAllPackages=true"
|
||||
BuildInParallel="true"
|
||||
ContinueOnError="ErrorAndContinue" />
|
||||
|
||||
<!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed -->
|
||||
<Error Condition="'$(MSBuildLastTaskResult)'=='false'" />
|
||||
</Target>
|
||||
|
||||
<PropertyGroup>
|
||||
<TraversalBuildDependsOn>
|
||||
BuildAllProjects;
|
||||
$(TraversalBuildDependsOn);
|
||||
</TraversalBuildDependsOn>
|
||||
|
||||
<TraversalCleanDependsOn>
|
||||
CleanAllProjects;
|
||||
$(TraversalCleanDependsOn);
|
||||
</TraversalCleanDependsOn>
|
||||
|
||||
<TraversalRestorePackagesDependsOn>
|
||||
RestoreAllProjectPackages;
|
||||
$(TraversalRestorePackagesDependsOn)
|
||||
</TraversalRestorePackagesDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="Build" DependsOnTargets="$(TraversalBuildDependsOn)" />
|
||||
|
||||
<Target Name="Clean" DependsOnTargets="$(TraversalCleanDependsOn)" />
|
||||
|
||||
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
|
||||
|
||||
<Target Name="RestorePackages" DependsOnTargets="$(TraversalRestorePackagesDependsOn)" />
|
||||
|
||||
</Project>
|
||||
75
external/buildtools/init-tools.cmd
vendored
Normal file
75
external/buildtools/init-tools.cmd
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set INIT_TOOLS_LOG=%~dp0init-tools.log
|
||||
set PACKAGES_DIR=%~dp0packages\
|
||||
set TOOLRUNTIME_DIR=%~dp0Tools
|
||||
set DOTNET_PATH=%TOOLRUNTIME_DIR%\dotnetcli\
|
||||
set DOTNET_CMD=%DOTNET_PATH%dotnet.exe
|
||||
if [%BUILDTOOLS_SOURCE%]==[] set BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json
|
||||
set /P BUILDTOOLS_VERSION=< %~dp0BuildToolsVersion.txt
|
||||
set BUILD_TOOLS_PATH=%PACKAGES_DIR%Microsoft.DotNet.BuildTools\%BUILDTOOLS_VERSION%\lib\
|
||||
set PROJECT_JSON_PATH=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%
|
||||
set PROJECT_JSON_FILE=%PROJECT_JSON_PATH%\project.json
|
||||
set PROJECT_JSON_CONTENTS={ "dependencies": { "Microsoft.DotNet.BuildTools": "%BUILDTOOLS_VERSION%" }, "frameworks": { "dnxcore50": { } } }
|
||||
set BUILD_TOOLS_SEMAPHORE=%PROJECT_JSON_PATH%\init-tools.completed
|
||||
|
||||
:: if force option is specified then clean the tool runtime and build tools package directory to force it to get recreated
|
||||
if [%1]==[force] (
|
||||
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
|
||||
if exist "%PACKAGES_DIR%Microsoft.DotNet.BuildTools" rmdir /S /Q "%PACKAGES_DIR%Microsoft.DotNet.BuildTools"
|
||||
)
|
||||
|
||||
:: If sempahore exists do nothing
|
||||
if exist "%BUILD_TOOLS_SEMAPHORE%" (
|
||||
echo Tools are already initialized.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
|
||||
|
||||
:: Download nuget
|
||||
if NOT exist "%PACKAGES_DIR%\NuGet.exe" (
|
||||
if NOT exist "PACKAGES_DIR" mkdir "%PACKAGES_DIR%"
|
||||
powershell -NoProfile -ExecutionPolicy unrestricted -Command "(New-Object Net.WebClient).DownloadFile('https://www.nuget.org/nuget.exe', '%PACKAGES_DIR%\NuGet.exe')
|
||||
)
|
||||
|
||||
if NOT exist "%PROJECT_JSON_PATH%" mkdir "%PROJECT_JSON_PATH%"
|
||||
echo %PROJECT_JSON_CONTENTS% > %PROJECT_JSON_FILE%
|
||||
echo Running %0 > %INIT_TOOLS_LOG%
|
||||
|
||||
if exist "%DOTNET_CMD%" goto :afterdotnetrestore
|
||||
|
||||
echo Installing dotnet cli...
|
||||
if NOT exist "%DOTNET_PATH%" mkdir "%DOTNET_PATH%"
|
||||
set /p DOTNET_VERSION=< %~dp0DotnetCLIVersion.txt
|
||||
set DOTNET_ZIP_NAME=dotnet-dev-win-x64.%DOTNET_VERSION%.zip
|
||||
set DOTNET_REMOTE_PATH=https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/%DOTNET_VERSION%/%DOTNET_ZIP_NAME%
|
||||
set DOTNET_LOCAL_PATH=%DOTNET_PATH%%DOTNET_ZIP_NAME%
|
||||
echo Installing '%DOTNET_REMOTE_PATH%' to '%DOTNET_LOCAL_PATH%' >> %INIT_TOOLS_LOG%
|
||||
powershell -NoProfile -ExecutionPolicy unrestricted -Command "(New-Object Net.WebClient).DownloadFile('%DOTNET_REMOTE_PATH%', '%DOTNET_LOCAL_PATH%'); Add-Type -Assembly 'System.IO.Compression.FileSystem' -ErrorVariable AddTypeErrors; if ($AddTypeErrors.Count -eq 0) { [System.IO.Compression.ZipFile]::ExtractToDirectory('%DOTNET_LOCAL_PATH%', '%DOTNET_PATH%') } else { (New-Object -com shell.application).namespace('%DOTNET_PATH%').CopyHere((new-object -com shell.application).namespace('%DOTNET_LOCAL_PATH%').Items(),16) }" >> %INIT_TOOLS_LOG%
|
||||
if NOT exist "%DOTNET_LOCAL_PATH%" (
|
||||
echo ERROR: Could not install dotnet cli correctly. See '%INIT_TOOLS_LOG%' for more details.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
:afterdotnetrestore
|
||||
|
||||
if exist "%BUILD_TOOLS_PATH%" goto :afterbuildtoolsrestore
|
||||
echo Restoring BuildTools version %BUILDTOOLS_VERSION%...
|
||||
echo Running: "%DOTNET_CMD%" restore "%PROJECT_JSON_FILE%" --packages %PACKAGES_DIR% --source "%BUILDTOOLS_SOURCE%" >> %INIT_TOOLS_LOG%
|
||||
call "%DOTNET_CMD%" restore "%PROJECT_JSON_FILE%" --packages %PACKAGES_DIR% --source "%BUILDTOOLS_SOURCE%" >> %INIT_TOOLS_LOG%
|
||||
if NOT exist "%BUILD_TOOLS_PATH%init-tools.cmd" (
|
||||
echo ERROR: Could not restore build tools correctly. See '%INIT_TOOLS_LOG%' for more details.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
:afterbuildtoolsrestore
|
||||
|
||||
echo Initializing BuildTools ...
|
||||
echo Running: "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> %INIT_TOOLS_LOG%
|
||||
call "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> %INIT_TOOLS_LOG%
|
||||
|
||||
:: Create sempahore file
|
||||
echo Done initializing tools.
|
||||
echo Init-Tools.cmd completed for BuildTools Version: %BUILDTOOLS_VERSION% > "%BUILD_TOOLS_SEMAPHORE%"
|
||||
27
external/buildtools/mono.targets
vendored
Normal file
27
external/buildtools/mono.targets
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!-- Temporary workarounds to allow building on Unix against MSBuild on top of Mono -->
|
||||
|
||||
<!--
|
||||
Normal behavior is to blacklist assemblies that don't meet ResolveAssemblyReference's analysis of what is part of the target
|
||||
framework profile. This causes us to fail on Mono as the framework ref folders don't match up with Windows. Setting the
|
||||
following skips this behavior- should probably do the same in the normal targets (for Windows).
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<IgnoreDefaultInstalledAssemblyTables>true</IgnoreDefaultInstalledAssemblyTables>
|
||||
<IgnoreDefaultInstalledAssemblySubsetTables>true</IgnoreDefaultInstalledAssemblySubsetTables>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Skipping this temporarily to focus on the failures in building the product assemblies. The error we get is as follows:
|
||||
|
||||
RunTestsForProject:
|
||||
mono corerun.exe xunit.console.netcore.exe System.Xml.XPath.XmlDocument.Tests.dll -xml testResults.xml -notrait category=OuterLoop -notrait category=failing
|
||||
Cannot open assembly 'corerun.exe': No such file or directory.
|
||||
|
||||
Note that MSBuild will shell launch as opposed to mono launch if the target file doesn't end in .exe.
|
||||
-->
|
||||
<Target Name="RunTestsForProject">
|
||||
<Message Importance="high" Text="Skipping test run pending fix." />
|
||||
</Target>
|
||||
</Project>
|
||||
28
external/buildtools/netci.groovy
vendored
Normal file
28
external/buildtools/netci.groovy
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
// Import the utility functionality.
|
||||
|
||||
import jobs.generation.Utilities;
|
||||
|
||||
def project = GithubProject
|
||||
def branch = GithubBranchName
|
||||
|
||||
// Define build string
|
||||
def buildString = '''call "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Tools\\VsDevCmd.bat" && build.cmd /p:SkipTests=true'''
|
||||
|
||||
// Generate the builds for debug and release
|
||||
|
||||
[true, false].each { isPR ->
|
||||
def newJob = job(Utilities.getFullJobName(project, '', isPR)) {
|
||||
steps {
|
||||
batchFile(buildString)
|
||||
}
|
||||
}
|
||||
|
||||
Utilities.setMachineAffinity(newJob, 'Windows_NT', 'latest-or-auto')
|
||||
Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}")
|
||||
if (isPR) {
|
||||
Utilities.addGithubPRTriggerForBranch(newJob, branch, 'Innerloop Windows Debug')
|
||||
}
|
||||
else {
|
||||
Utilities.addGithubPushTrigger(newJob)
|
||||
}
|
||||
}
|
||||
8
external/buildtools/override.targets
vendored
Normal file
8
external/buildtools/override.targets
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!--
|
||||
Overrides for all other targets (including build tools) can go in this file.
|
||||
-->
|
||||
|
||||
<Import Project="mono.targets" Condition="'$(OsEnvironment)'=='Unix'" />
|
||||
<Import Project="roslyn.xplat.targets" Condition="'$(OsEnvironment)'=='Unix' and '$(UseRoslynCompiler)'=='true'" />
|
||||
</Project>
|
||||
46
external/buildtools/publishexe.targets
vendored
Normal file
46
external/buildtools/publishexe.targets
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">
|
||||
<!-- hardcoding win7-x64 for now, this should eventually be built as runtime agnostic,
|
||||
packaged as a DLL and be consumed by a deployment step that resolves that package
|
||||
and its dependencies for a specific runtime -->
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<BaseNuGetRuntimeIdentifier>win7</BaseNuGetRuntimeIdentifier>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="PublishFilesToRuntime" AfterTargets="CopyFilesToOutputDirectory"
|
||||
Condition="'$(OutputType)' == 'Exe' ">
|
||||
|
||||
<ItemGroup>
|
||||
<PublishedRuntimeItems Include="@(ReferenceCopyLocalPaths)">
|
||||
<DestinationRelativePath>%(FileName)%(Extension)</DestinationRelativePath>
|
||||
</PublishedRuntimeItems>
|
||||
|
||||
<PublishedRuntimeItems Include="@(Content)">
|
||||
<DestinationRelativePath>%(FileName)%(Extension)</DestinationRelativePath>
|
||||
</PublishedRuntimeItems>
|
||||
|
||||
<PublishedRuntimeItems Include="@(None)">
|
||||
<DestinationRelativePath>%(Filename)%(Extension)</DestinationRelativePath>
|
||||
</PublishedRuntimeItems>
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="%(PublishedRuntimeItems.Identity)" DestinationFiles="$(Outdir)%(DestinationRelativePath)" SkipUnchangedFiles="true" />
|
||||
<CallTarget Targets="FixUpCoreConsoleNames" Condition="Exists('$(Outdir)CoreConsole.exe')" />
|
||||
|
||||
<Message Text="Published $(AssemblyName) executable to $(Outdir) [@(PublishedRuntimeItems->Count()) items]" Importance="high" />
|
||||
|
||||
</Target>
|
||||
|
||||
<!-- If CoreConsole.exe is being used, rename it and the actual project's exe to their correct names -->
|
||||
<Target Name="FixUpCoreConsoleNames">
|
||||
<Move SourceFiles="$(Outdir)$(AssemblyName).exe" DestinationFiles="$(Outdir)$(AssemblyName).dll" />
|
||||
<Move SourceFiles="$(Outdir)CoreConsole.exe" DestinationFiles="$(Outdir)$(AssemblyName).exe" />
|
||||
<!-- update TargetPath with the renamed file -->
|
||||
<PropertyGroup>
|
||||
<TargetPath>$(Outdir)$(AssemblyName).dll</TargetPath>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
12
external/buildtools/roslyn.xplat.targets
vendored
Normal file
12
external/buildtools/roslyn.xplat.targets
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!--
|
||||
Overrides for Roslyn on Unix
|
||||
-->
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- PDB support isn't implemented yet. -->
|
||||
<!-- Some .csproj files override the settings coming from dir.props so we have to set again here to trump them. -->
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
63
external/buildtools/src/ApiCompat/ApiCompat.csproj
vendored
Normal file
63
external/buildtools/src/ApiCompat/ApiCompat.csproj
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>ApiCompat</RootNamespace>
|
||||
<AssemblyName>ApiCompat</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<DefineConstants>$(DefineConstants);COREFX</DefineConstants>
|
||||
<NuGetRuntimeIdentifier>win7-x64</NuGetRuntimeIdentifier>
|
||||
<CLSCompliant>false</CLSCompliant>
|
||||
</PropertyGroup>
|
||||
<!-- Default configurations to help VS understand the configurations -->
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " />
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " />
|
||||
<ItemGroup>
|
||||
<Compile Include="DifferenceWriter.cs" />
|
||||
<Compile Include="MdilPublicOnlyCciFilter.cs" />
|
||||
<Compile Include="NamespaceRemappingComparer.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="PublicEditorBrowsableOnlyCciFilter.cs" />
|
||||
<Compile Include="Rules\Compat\AttributeDifference.cs" />
|
||||
<Compile Include="Rules\Compat\CannotAddAbstractMembers.cs" />
|
||||
<Compile Include="Rules\Compat\CannotMakeNonVirtual.cs" />
|
||||
<Compile Include="Rules\Compat\CannotMakeMoreVisible.cs" />
|
||||
<Compile Include="Rules\Compat\CannotMakeAbstract.cs" />
|
||||
<Compile Include="Rules\Compat\CannotRemoveBaseTypeOrInterface.cs" />
|
||||
<Compile Include="Rules\Compat\CannotSealType.cs" />
|
||||
<Compile Include="Rules\Compat\InterfacesShouldHaveSameMembers.cs" />
|
||||
<Compile Include="Rules\Compat\MembersMustExist.cs" />
|
||||
<Compile Include="Rules\Compat\CannotAddAttributes.cs" />
|
||||
<Compile Include="Rules\Compat\CannotRemoveGenerics.cs" />
|
||||
<Compile Include="Rules\Compat\TypeCannotChangeClassification.cs" />
|
||||
<Compile Include="Rules\Compat\TypesMustExist.cs" />
|
||||
<Compile Include="Rules\ParameterTypeCannotChange.cs" />
|
||||
<Compile Include="Rules\Compat\ParameterModifiersCannotChange.cs" />
|
||||
<Compile Include="Rules\InheritanceHierarchyChangeTracker.cs" />
|
||||
<Compile Include="Rules\Compat\EnumValuesMustMatch.cs" />
|
||||
<Compile Include="Rules\Compat\EnumTypesMustMatch.cs" />
|
||||
<Compile Include="Rules\Compat\DelegatesMustMatch.cs" />
|
||||
<Compile Include="Rules\Compat\ParameterNamesCannotChange.cs" />
|
||||
<Compile Include="Rules\Compat\TypesMustAlwaysImplementIDisposable.cs" />
|
||||
</ItemGroup>
|
||||
<!-- Common command-line helper sources -->
|
||||
<ItemGroup>
|
||||
<Compile Include="$(CommonPath)\CommandLine.cs">
|
||||
<Link>Common\CommandLine.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\CommandLineTraceHandler.cs">
|
||||
<Link>Common\CommandLineTraceHandler.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\ConsoleTraceListener.cs">
|
||||
<Link>Common\ConsoleTraceListener.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="project.json" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Microsoft.Cci.Extensions\Microsoft.Cci.Extensions.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user