Age | Commit message (Collapse) | Author |
|
This change mostly deals with moving Tools-Override and CoreFxTools
task library to BuildTools and consuming them from there instead.
|
|
Today you can build all configurations of a library by specifying
/t:BuildAllConfigurations but we were missing targets for clean and
rebuild. I've added these.
I've also created shorter-named targets omitting the "configuration"
portion so that its easier to run on the commandline.
|
|
|
|
Previously the build traversal logic was duplicated between the UAP and
NETCoreApp packages.
This refactors it into shared targets/props.
The mechanism for opt-in to this traversal behavior is to include a
props file in the project that matches the convention *.rids.props.
The file must define PackageRID and OfficialBuildRID items.
|
|
pass /p:BuildNETCoreAppOnly=true will filter the product build
to only include things in corefx that are part of netcoreapp (i.e
shared framework).
Note this filtering doesn't work correclty for test projects because
some of them require things outside the shared framework to build and
run. We could extend it to test projects at some point if we want
to clean up those dependencies, but for now it is only intended
for build.cmd/sh
|
|
* Update mono config to only build mono and not be compatible with others
Exclude mono for including in packaging configurations
* Fix ApiCompat to allow for disabling it per configuration
|
|
In most cases we don't include the desktop refs because those
configurations are merely present to pass to API Compat.
In the System.Net.Http case the ref is actually necessary since the
ref is a real ref and not a facade.
|
|
This turns the package build back on and fixes all packages so that
they build.
There is still work to do to fix dependencies.
|
|
Switch the to using a common DefaultReference notion between targets
and eliminated targetingpack.props. Moved the default references for
tests into tests.targets.
Fixed where we added Private to References because in some cases it wasn't happing
because the target that set Private=true was run before all the references were
added. This is why we are now setting Reference Private=false in a different target
from ProjectReference Private=false because they sometimes need to happen at different
times in the target execution.
Set _FindDependencies=false to block RAR from trying to automatically
add the closure of the primary references as it added automatic references that folks
could accidently start depending on and we want to be explicit about our dependencies.
This was really noticable once we started auto referencing the netstandard facade which
caused everything to get pulled into the reference set.
To fix the various build scenarios where we add ProjectReferences automatically we needed
a common target to hook on which we now have AddProjectReferencesDynamically target that
correctly hooks into the various dependency chains. See comment in targets file for more
details.
|
|
Previously our transform was also applying metadata, which caused
MSBuild to batch when creating the item and reorder the items based
on that batching (common Configurations were grouped together).
To avoid this batching, first apply the metadata, then transform.
|
|
|
|
|
|
This enables building more than one BuildConfiguration at a time.
I enabled this in the references to ensure we build netstandard references in addition to
the current BuildConfiguration.
|
|
Previously we hardcoded some binplace mappings.
This removes that hardcoding and makes binplacing data-driven off of
configuration strings.
We'll binplace to paths based on assigning configurations to those paths
and finding out if the configuration we're building is the best
configuration in the project for that binplace path.
|
|
Remove some unused targets in dir.traversal.targets and fix Clean.
Update the name of BuildAll to BuildAllConfigurations and make it
work with traversal projects too.
Fix clean for depproj's.
|
|
Previously we'd always choose Configuration for P2Ps based on
BuildConfiguration. This was incorrect and could result in netstandard
configurations building against netcoreapp references.
Fix this by doing configuration selection in the referencing project.
I've also added hooks to build all configurations. To do this from a
traversal set /p:BuildAllConfigurations=true. To do this from a project
build with /t:BuildAll.
|
|
This modifies our external projects to use the configuration system.
To make this work I had to remove a stale condition in
buildvertical.targets.
I also noticed that unlike `netcoreapp` which mapped to `netstandard`,
`netfx` was mapping to `nestandard2.0`. This meant that when building
for `netfx`, `netstandard` configurations would be ignored, which is
wrong.
|
|
Change contract of cross-project target to return configuration rather
than trying to construct a project item. This preserves the metadata of
the original Project/ProjectReference. When the MSBuild task creates
the TargetOutputs it will copy all the original metadata from the
Project items and create the OriginalItemSpec metadata. From this
we can simply transform back to a Project/ProjectReference and prepend
Configuration to the AdditionalProperties. This fixes a case where
projects were setting AdditionalProperties and we were squashing it.
This exposed an issue in traversal where we were still setting TestTFM
(previously this was squashed, only with other AdditionalProperties).
To make it clearer how this worked I made the targets only return a
property so that we don't accidentally squash any metadata set on the
project.
I've also cleaned up the targets to make things a bit more consistent
and added comments.
|
|
Similar to https://github.com/dotnet/corefx/pull/15037/commits/c572ae1d2169eccdd1827b9bdcab991a3f916d50
which solved this problem for static evaulation, do the same
on traversal builds and P2P references.
|
|
* Catch build failures, move project annotation into buildvertical (for
now), update system.memory build
* Use dirs.proj
* Specify archgroup for jenkins build
* Use buildconfiguration for inner loop testing in jenkins
|
|
|
|
* 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
|
|
* 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
|