Граф коммитов

97 Коммитов

Автор SHA1 Сообщение Дата
Martin Baulig 916aafffe5 Merged with dotnet/release/2.2. 2018-12-13 08:36:58 -05:00
Wes Haggard 535fd1e754 Use Intermediate path for GenerateReferenceSource
After the new reverse APICompat checks we fail the
src build if the ref doesn't match so we don't have
a great way to regenerate the reference assembly.
By using the intermediate path we can still generate
the reference assembly without having a successful
src build.
2018-03-14 09:02:32 -07:00
Jose Perez Rodriguez 7be44d2de8
Updating the package index for UAP and updating buildtools (#27787)
* Updating the package index for UAP and updating buildtools

* Having System.Reflection.DispatchProxy crosscompile for uap RS3

* Updating buildtools and fixing PR feedback

* Re-add support for uap to the assemblies that already had a netcoreapp2.0 config for Windows
2018-03-08 09:43:06 -08:00
Wes Haggard 4d03a1e3ff Add option to bin place just netcoreapp package refs
If BinPlaceNETCoreAppPackage=true then both the refs and
runtime assets that are part of Microsoft.NETCore.App will be
bin-placed separtely.

Runtime assets will be
bin/pkg/netcoreapp/runtime

Refs assets will be
bin/ref/microsoft.netcore.app
2018-03-05 15:30:36 -08:00
MaxHorstmann e4817213c6 Replace 'enlistment' with 'repo' in a few places (#24732)
"Enlistment" is a term for what in today's git world is now commonly called a "repo".

Updating this in a few places to avoid confusing compiler errors.
2017-10-18 22:28:31 -04:00
Santiago Fernandez Madero 664ca9508a Add BinPlaceConfiguration for test projects to have a working directory per BuildConfiguration (#23633)
* With this change we will have the next behavior when building/running tests:

-When building the tests we will still bin place the test assets to the OutputDirectory (corefx\bin\OSGroup.Configuration\TestProject\TargetGroup/)

-When running the tests we will bin place the tests assets to this new TestPath which will be the TestPath. This new path will be the test's working directory where we will bin place the RunTests.cmd and necessary dependencies in tests.targets. Also the testResults.xml will be found here after the test execution.

-TestPath is set to be bin/tests/<TestProject>/<BuildConfiguration>/ (i.e corefx\bin\tests\System.Collections.Immutable.Tests\netcoreapp-Windows_NT-Debug-x64) in dir.props

-This TestPath will be added to the BinPlaceDir in FrameworkTargeting.targets when BinPlaceTest is set to true. Then in the BinPlaceFiles target the test assets will be hardlinked to the TestPath.

This will isolate every test execution per build configuration and will allow people to run the same test project for all of the supported configurations on the same repo without having to clean the repo.
2017-09-05 13:30:09 -07:00
Eric St. John eade3b3672 Remove NetFx support libs
Now that we've shipped the NETStandard support package we will no longer build its content
from `master`.

It will be serviced from the `release/2.0.0` branch and the only netfx builds in `master` will
correspond to package content.
2017-08-29 08:46:22 -07:00
Eric St. John 4a94c7b730 Ensure packages continue to build for NETCoreApp2.0
These are for packages that are outside of the shared framework.  We shouldn't make them
cross-compile for netcoreapp2.1 just because master has moved to that.  Instead we'll make
them continue to target netcoreapp2.0.

Two cases we want to cross-compile are OpenSsl and Cng since these have already started
taking advantage of API added in NCA2.1 (span).  For this we'll cross-compile and redist the
old netcoreapp2.0 implementation.

Two other special cases are System.Memory and System.Runtime.CompilerServices.Unsafe.
In these cases we wanted to keep them targeting netcoreapp (netcoreapp2.1) and
make their portable implementations apply for netcoreapp2.0.
2017-08-14 16:06:30 -07:00
Jose Perez Rodriguez 60fe0c60dc Renaming uap10.1 to uap10.0.15138 2017-07-03 14:32:24 -07:00
Jose Perez Rodriguez af8215c2b6 Changing binplace configurations so the default only contains TargetGroup and OSGroup 2017-06-08 16:44:23 -07:00
Eric Mellino 3877e24adf Respond to PR feedback 2017-05-24 11:13:10 -07:00
Eric Mellino c92788e773 Add a "GenerateReferenceAssembly" target and generate four assemblies.
* The GenerateReferenceAssembly target can be run as a manual step on a
  project. When run, it produces a source code file <Assembly>.cs, in the
  reference assembly folder for the library. This source file can be used
  to compile an equivalent reference assembly.
* Use the target to generate reference assemblies for the following
  libraries:
  * System.Collections.Immutable
  * System.Reflection.Metadata
  * System.Threading.Tasks.Dataflow
  * System.Threading.Tasks.Extensions
2017-05-24 11:13:10 -07:00
Wes Haggard 43f0986de6 Move more common stuff into BuildTools 2017-04-27 19:08:23 -07:00
Wes Haggard cd39114da8 Move local corefx targets/tasks to BuildTools
This change mostly deals with moving Tools-Override and CoreFxTools
task library to BuildTools and consuming them from there instead.
2017-04-27 19:08:23 -07:00
Eric StJohn c77b839429 Merge pull request #18766 from ericstj/removeIsDesktopFacade
Remove IsDesktopFacade
2017-04-24 16:43:55 -07:00
Eric St. John 543b6ad09b Ensure BuildAllConfigurations produces all RefPaths 2017-04-24 15:48:26 -07:00
Eric St. John 7a7bf2e0cb Remove use of IsDesktopFacade 2017-04-24 15:46:30 -07:00
Eric St. John 3769fa74e4 Never use UAP-aot configuration for references
I found a couple issues where we were incorrectly configuring projects
that produced references as UAPAOT.

I fixed these, but I'd like to make that impossible.  This does that by
using the uapaot configuration for reference selection.
2017-04-20 17:21:37 -07:00
Eric St. John 3ea8451664 Make desktop ns2.0 support package support net47
We need to support differing ref/impl per version of desktop until it
adds inbox support for ns2.0.

To do this I've made the netfx build also build for net462 and net47.

Then I've moved the files into framework-specific folders for each TFM.

For a given TFM it will prefer the files in its own folder then fallback
to the previous TFM if it doesn't have that file.
2017-04-20 15:41:23 -07:00
Eric St. John 56b4231e2b Add dll to netfx references to force bindingRedirects
This dll has a reference to the earliest version of every contract
desktop ever shipped.

This will ensure that RAR sees conflicts and adds binding redirects.
2017-04-12 15:11:26 -07:00
Eric St. John 796a4b6af5 Add NETStandard.Library.NETFramework package
This package is a support package for NETStandard2.0 on .NET 4.6.1.
2017-04-12 13:42:52 -07:00
Santiago Fernandez Madero 3c850946db Change netfx vertical test build and execution to be able to have helix runs (#17975)
* Change netfx vertical test bin placing and execution to be able to have runs in helix
2017-04-06 15:01:36 -07:00
Eric St. John 145762c865 Update ILLinkTrimAssembly condition
Make it so that we don't set ILLinkTrimAssembly if its already set.
2017-04-04 16:09:44 -07:00
Eric St. John c42fd56024 Add ILLink to the build
This adds ILLink (a .NET Core build of the mono linker) to the build
tools and uses it to trim non-public unreachable IL and metadata from
our assemblies.

This is enabled by default for any assembly that is part of NETCore.App.

This can be disabled by setting ILLinkTrimAssembly=false.

In some cases ILLink may trim too much, for example a runtime
dependency via reflection on private or internal API.
If we cannot update ILLink to understand this dependency via heuristic
then we can manually "root" the private or internal API.
This is done by adding an XML file next to the project with the name
ILLinkTrim.xml that follows the format documented here:
https://github.com/mono/linker/blob/master/linker/README
2017-04-03 10:15:28 -07:00
Eric Mellino b807b32646 Merge in change for the new 'BinPlaceNETCoreAppPackage' property. 2017-03-24 11:52:40 -07:00
Eric Mellino 782e4c9be7 Set default value for EnableBinplacing in FrameworkTargeting.targets
* Reorder some things in dir.targets to accomodate that.
2017-03-24 11:52:40 -07:00
Eric Mellino cebb23cc53 Set default for BinPlaceUseHardLinksIfPossible in FrameworkTargeting.targets 2017-03-24 11:52:40 -07:00
Eric Mellino 870a13da3b Address PR feedback
* Cleaner separation of corefx concepts from stuff in FrameworkTargeting.targets
* Fix the value of AdditionalCleanDirectories (unrelated cleanup).
2017-03-24 11:52:40 -07:00
Eric Mellino 33c665c2cc Move contents of binplace.targets
* The targets themselves are now located in FrameworkTargeting.targets.
  This will let us easily merge them back into buildtools, where the
  common logic should live
* The specific properties used in corefx are now in dir.targets.
2017-03-24 11:52:40 -07:00
Eric St. John 926c91253a Make ReferenceFromRuntime use project reference
ReferenceFromRuntime for src projects isn't safe.  It allows any source
project to reference the output of another source project without
properly sequencing the build.

This fixes that by changing ReferenceFromRuntime to instead use a
ProjectReference to the runtime project for the building configuration
and filter that to just the files requested.

I also completely block the use of ReferenceFromRuntime in test projects
2017-02-01 18:28:02 -08:00
Jose Perez Rodriguez 44b68e6949 Merge branch master into dev/eng 2017-01-05 14:03:56 -08:00
Eric Mellino 2c0352ec38 Add Configurations.props files for test projects, include tests in build.proj (#14663)
* [WIP]Created src\tests.proj which is mostly building all tests

* Convert test project .builds to Configuration.props

* Fix test paths in targetingpack.props, move test-runtime.

* Move test-runtime under external.
* Rename RuntimeDir->RuntimePath in targetingpacks.props and
  Xunit.Runtime.depproj.
* Remove test-runtime project.json from the SupplementalTestData list in
  dir.targets.

* Remove XUnit.Runtime.depproj from tests.proj

* Convert test .builds files to Configuration.props.

* Revert "Convert test project .builds to Configuration.props"

This reverts commit 1efc4d9a02d1c2eced0f20a544abcbcd0092f40c.

* Fix compilation error in System.Collections.Concurrent.Tests

* Fix condition in System.Collections ref project

* Fix two more Collections test project issues

* Add Configuration.props for System.Collections ref

* Fix TargetGroup conditions in System.Collections.Tests.csproj.

* Fix compilation problems with NameResoltion.Pal.Tests.

* Fix compilation errors in SqlClient Stress tests

* Fix IO.Compression.Performance tests compilation

* Fix compilation and configurations of System.Net.Http.Unit.Tests.csproj.

* Fix compilation issues in System.Private.Xml.Linq tests

* Disable XsltScenarios.Tests project, like it was before.

* Fix missing DefineConstants for System.Linq ref project.

* Fix compilation of System.Net.Primitives.Pal.Tests.csproj

* Fix compilation of System.Net.Primitives.UnitTests.Tests.csproj

* Fix compilation of System.Security.Cryptography.Cng.Tests.csproj.

* Fix compilation of System.Net.Primitives reference project

* Fix compilation of System.Net.Security ref project

* Fix compilation of SYstem.Net.Security.Tests.csproj

* Fix configuration of X509Certificates ref project

* Fix compilation errors in System.Net.Http.Unit.Tests.csproj

* Fix Common.Tests.csproj

* Fix System.Diagnostics.Debug.Tests.csproj

* Fix Microsoft.Win32.Registry.Tests.csproj

* Add runtime.native.System.Data.SqlClient.sni to external project

* Fix System.Diagnostics.TraceSource.Tests.csproj

* Fix System.IO.Compression.Performance.Tests.csproj

* Move supplemental test data into test-runtime/project.json

* Fix System.IO.FileSystem.Watcher.Tests.csproj

* Fix System.IO.FileSystem.Tests.csproj

* Fix System.IO.Pipes.AccessControl.Tests.csproj

* Fix System.IO.MemoryMappedFiles.Tests.csproj

* Fix System.IO.Pipes.Tests.csproj

* Fix System.Json.Tests.csproj

* Add missing supplemental test data for net security tests

* Fix resource names in System.Xml.XPath.XDocument.Tests.csproj

* Fix Assembly.Location test case

* Fix assembly loading paths in DefaultLoadContextTest.cs

* Fix issues in System.Runtime.Loader.Tests.csproj

* Fix RootNamespace in ResourceManager tests

* Mark OpenSSL tests as unsupported on Windows

* Fix RootNamespace in System.Xml.XPath.Tests.csproj

* Fix RootNamespace in System.Xml.XPath.XmlDocument.Tests.csproj

* Fix System.IO.Compression.Tests.csproj

* Add missing Configurations.props files for System.Net projects

* Fix compilation issues in WinHttpHandler tests

* Add fixes and a workaround for Linq.Expressions tests

* Add workaround for System.Runtime.Tests

* Use extension methods explicitly in Ref.Emit tests

* Hook up test projects into build

* Fix build configuration of Crypto.Primitives for netcoreapp

* Enable VB tests outside Windows

* Enable Mail tests outside windows

* Don't run Unsafe tests outside windows

* Don't build Unsafe tests outside Windows

* Don't build WebServer project outside of Windows.

* Fix corerun path for Unix tests.

* Fix casing of 'Native' directory in NETCoreApp private pkgproj

* Remove runtime-specific stuff from Xunit.Runtime.depproj

* Move tests into a separate project ('tests.msbuild') which isn't built in build.proj

* Remove duplicate types from NameResolution.Pal tests

* Skip tests in a project if there is no compatible configuration.

* Include internal socket types only on Windows in NameResolution tests

* Manually fix S.R.InteropServices configurations

* Rename tests.msbuild -> tests.builds

* Manually fix System.Text.Encoding.Tests.csproj configuration

* Manually fix System.Threading.Tests configuration

* Manually clean up System.Runtime.Tests.csproj

* Fix System.IO.FileSystem.Tests configurations

* Manually fix System.Globalization.Tests configurations

* Manually fix System.IO.Pipes.Tests configurations

* Manually fix System.IO.Compression.Tests configurations

* Manually fix System.Runtime.Extensions.Tests configurations

* Manually fix System.IO.MemoryMappedFiles.Tests configurations

* Manually fix S.Diagnostics.Process.Tests configurations

* Manually fix System.ComponentModel.TypeConverter.Tests configurations

* Misc PR feedback.

* Use HostRunnerName instead of HostRunner in Process tests

* Fix configurations for S.ServiceProcess.ServiceController.Tests

* Revert to using ConfigurationErrorMsg to check if tests should be skipped.

Configuration still defaults to 'Debug' even if there is no valid configuration.
2017-01-03 13:27:19 -08:00
chcosta 3398321b7a Use static configurations for building a vertical (#14489)
* Build each configuration of corefx tools

* Fully qualify path to props files for import

* Build using static configurations

* Package build, ignore references to System.Threading.Overlapped and
System.Runtime.Serialization.Formatters which aren't being built at the
moment.

* Rename target

* Remove unintentional add of baseline file

* Configuration fixes, fix typo in netci.groovy, re-enable specifying
OSGroup property

* Interim build, overbuilds reference assemblies

* Reduce to passing Configurations

* Fix traversal, undefine configuration for contract projects, remove
trimunconverted (not used)

* lower message importance

* Minor fixes, changing messages, fixing comment

* system.runtime.extensions contract causes binclash because it requires a
configuration.  temporarily disable configuration

* Fix trimming of projects

* Eliminate circular dependency in package build

* Fix OSX build

* Cleanup, less msbuild invocations
2016-12-16 13:05:30 -08:00
John Chen (CLR) 80ab4804ae Use Win32 API lists from buildtools
Remove the local copies of Win32 API lists, and use the lists
from buildtools instead. Fixes issue #13738.
2016-12-13 14:52:31 -08:00
Wes Haggard 2d3e555196 Clean-up batch restoring of packages.
This cleans out a lot of the project.json batch restoring, validation,
and generation from the build.proj. Also enables restoring of packages
for individual projects again. We well eventually move all projects that
need restoring under external so we can keep them isolated from the rest
of the build.
2016-12-13 14:47:16 -08:00
Karthik Rajasekaran 1fd0ce0834 Enable build tests against packages as the default testing scenario
Currently we build and test in CI differently from the official pipeline. This change will help reduce inconsistencies in the way in which we build to expose issues sooner.
The build will now build the product as packages, install them locally, restore the test-runtime deps for the locally built versions and then test them. The locally built
packages are installed to the localpackages folder and the LKG set restored goes into the packages folder. Tests will only restore against locally built packages as a
source and then copy the required LKG dependencies like specific runtime dependencies that aren't built locally. The localpackages are overwritten each time a build occurs so that only one version remains in the folder.

Other changes required to make this work:
 - Add missing runtimes in the supports clause
 - Add LKG runtime packages not produced by the build
2016-12-12 11:05:34 -08:00
chcosta a07f6aac53 vertical build port to Dev/eng [Do not merge] (#14171)
* Vertical build changes

* Build a vertical in dev/eng

* remove repro.bat from check-in

* Remove defaulttargetgroup from configurations.props files

* Remove configurations.props from test libraries

* Additional configuration files, updating traversal.

* Add default configurations for ref projects

* Remove default targetgroups, disable code analysis (currently breaking the
vertical build).

* Build vertical using Eric's changes to configurations

* Minor fixes to build from a clean enlitment

* Set targets properties in dir.props

* Make vertical build the default

* Include building src\tools in init-tools.cmd

* Add linux init-tools

* Fix msbuild.sh command

* Add build tools message to Linux

* Revert init-tools, investigate building corefx tools tomorrow

* Update configurations, remove empty targetgroup from all projects, modify
most conditionals to be positive conditions instead of negative

* Remove unneccessary generateprojectconfigurations project

* Build CoreFx.tools in init-tools

* Can't build corefx.tools in init-tools because packages aren't restored

* Hack build to build refs first

* Slightly less hacky reference project build, but still kind of hacky...

* Align properties for ref builds to prevent binclash and overbuilding

* Update BeforeTarget for rename

* Rework traversal to work with ref and corefx tools projects

* Add target for builds projects

* Fully qualify paths to projects

* Fully quality path name for corefx.tools

* testing removing osgroup from groovy on Windows

* Remove OSGroup from config.json

* revert change to groovy

* return os property

* Try changing osgroup to hostos

* hack around osgroup setting

* Fix passing groups

* Add system.collections which was missing from system.console

* Add some missing references for Unix build

* Add references for unix

* Unix support changes

* Fix typo in system.net.http

* Fix typo in system.threading.overlapped

* no ref project available for system.reflection.metadata

* Unix changes

* Exclude system.memory

* diagnostics.fileversioninfo was missing reference to Path

* Unix changes

* Fix reference name

* Add reference for unix

* Move source file to windows only

* Disable building system.threading.overlapped
2016-12-10 11:29:31 -08:00
Jose Perez Rodriguez 09e45e8d1c Delete project.jsons 2016-12-06 13:16:43 -08:00
Eric Mellino a9f6d7d749 [dev/eng] Overhaul ref and src project references, and start binplacing things (#14062)
* Used GenerateBuilds.ps1 script to generate the P2P references from the project.json files in ref

* Update refs to build with ProjectReference's instead of package references

This deletes all the ref\project.json files and instead adds ProjectReference
to other refs that are used to build.

There is only one exception which was System.Net.Http which needed a project.json
to get the net46 targeting pack otherwise everything else is P2P.

* Update Reflection.Emit contracts to support latest version of contracts

* Add depproj to get windows.winmd support when building refs

* Special handle System.Net.Http ref project to deal with net46 targeting pack

* Moved CLSCompliant to SecureString ctor instead of type

* Add P2P reference from S.IO -> S.R.Extensions

* Add additional ProjectReferences to more ref projects after master rebase

* Start binplacing ref assemblies and disable rest of build

* Simplify all ref projects to only build for netcoreapp (default target group)

* Only binplace netcoreapp refs

* Allow Reference's to be resolved from targeting pack directories

* Use GenerateBuilds.ps1 to convert src project.json refs to References

* Allow overriding stuff in Tools

* System.Runtime src project building against targeting pack

* Re-purpose GenerateBuilds.ps1 to re-write src references

* Only build csproj files in src.builds

* More custom stuff in GenerateBuilds.ps1

* Binplace all netstandard assemblies into netcoreapp as well.

* Add project.json to System.Collections.Immutable

* More custom generatebuilds.ps1 stuff

* Normalize csproj files before running GenerateBuilds.ps1

* Better match the replaced  'None Include="project.json"' line.

* Another missing project.json inclusion in csproj

* Remove ExcludeFromCodeCoverageAttribute from Immutable project

* Include another project.json

* Add some P2P references

* Add another project.json include

* Disable Http.Rtc project.

* Disable two more UWP projects and another P2P ref"

* More Cleanup

* Run GenerateBuilds.ps1 to re-write all nuget refs as <Reference>'s

* Binplace netstandard runtime assemblies to netcoreapp as well.

* Re-hook all src projects into build.proj

* Fix bin clashing caused by bad ProjectReference metadata

* Use 'copy' instead of 'cp' in init-tools.cmd. Add copying to init-tools.sh as well.

* Correct casing of windows.winmd in depproj

* Disable System.Memory.csproj outside of Windows

* Fix unix exclusion of System.Memory, and include vbproj files

* Fix VisualBasic compilation

* There was an extra definition of MemberTypes that was internal to the
  assembly. It's now defined in System.Private.CoreLib, so I deleted the
  extra here.
* There was an invalid call in Operators.vb that I fixed.

* Add additional project references and configuration fixes after rebase

* Fix build warnings in ref projects

* Fix build warnings in src projects
2016-11-29 18:01:35 -08:00
John Chen (CLR) ab6bafe39d Re-enable PInvoke analyzer, and fix issues found 2016-11-15 16:32:15 -08:00
Alex Perovich 13664d188f Remove workaround for source index. (#13091)
The code for building the source index is now here: https://github.com/dotnet/source-indexer
2016-10-27 15:45:35 -07:00
Karthik Rajasekaran 6147f2367c Include the correct generated lockfile when building against packages 2016-10-18 11:40:04 -07:00
Karthik Rajasekaran aa672967af Clean up dir.targets 2016-10-18 11:40:00 -07:00
Karthik Rajasekaran f71125ef8b Fix ordering on dir.target PropertyGroup
Move CommonTestProjectJson Properties to build.proj
2016-10-18 11:39:59 -07:00
Karthik Rajasekaran c224331718 Rearrange order of property groups 2016-10-18 11:39:58 -07:00
Karthik Rajasekaran 169e1ee82c Adding SkipGenerateTestProjectJson 2016-10-18 11:39:57 -07:00
Karthik Rajasekaran 654f5548f9 Combine test dependencies into a common project.json.
Restore this common project.json upfront to improve sync time and avoid download contention from nuget.
2016-10-18 11:39:53 -07:00
Alex Perovich 1865bf5ca4 Add Source Index generation project (#12326)
* Add Source Index generation project

* Add error and fix bad working directory

* Remove .builds file GetTargetPath

* Address nits

* Add a proper ending tag.
2016-10-07 12:46:17 -07:00
Alex Perovich 71de1aac5c Update project ToolsVersions to 14.0 (#12355) 2016-10-05 12:50:37 -07:00
Jeremy Kuhne 387cf98c41 Add Path.GetRelativePath
This change adds Path.GetRelativePath, which will calculate the relative
path from one directory to another file/directory.

This change also adds support for targetting netcoreapp
2016-09-19 11:16:22 -07:00