mirror of https://github.com/dotnet/runtime
Redesign the subset feature (#34663)
* Redesign subset feature and remove subsetcategory Implement proposal from https://github.com/dotnet/runtime/issues/34403. Remove subsetcategory and allow all subsets to specified via the -subset switch.
This commit is contained in:
parent
6ca5d511a1
commit
8e0147ecdf
|
@ -38,7 +38,7 @@ build -h
|
||||||
On Unix like systems, arguments can be passed in with a single `-` or double hyphen `--`.
|
On Unix like systems, arguments can be passed in with a single `-` or double hyphen `--`.
|
||||||
|
|
||||||
The repository currently consists of different major parts: the runtimes, the libraries, and the installer.
|
The repository currently consists of different major parts: the runtimes, the libraries, and the installer.
|
||||||
To build just one part you use the root build script (build.cmd/sh), and you add the `-subsetCategory` flag.
|
To build just one part you use the root build script (build.cmd/sh), and you add the `-subset` flag.
|
||||||
|
|
||||||
## Configurations
|
## Configurations
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
# Building
|
# Building
|
||||||
|
|
||||||
To build just CoreCLR, use the `-subsetCategory` flag to the `build.sh` (or `build.cmd`) script at the repo root:
|
To build just CoreCLR, use the `-subset` flag to the `build.sh` (or `build.cmd`) script at the repo root:
|
||||||
|
|
||||||
For Linux:
|
For Linux:
|
||||||
```
|
```
|
||||||
./build.sh -subsetCategory coreclr
|
./build.sh -subset clr
|
||||||
```
|
```
|
||||||
|
|
||||||
For Windows:
|
For Windows:
|
||||||
```
|
```
|
||||||
build.cmd -subsetCategory coreclr
|
build.cmd -subset clr
|
||||||
```
|
```
|
||||||
|
|
||||||
By default, build generates a 'debug' build type, that includes asserts and is easier for some people to debug. If you want to make performance measurements, or just want tests to execute more quickly, you can also build the 'release' version (which does not have these checks) by adding the flag `-configuration release` (or `-c release`), for example:
|
By default, build generates a 'debug' build type, that includes asserts and is easier for some people to debug. If you want to make performance measurements, or just want tests to execute more quickly, you can also build the 'release' version (which does not have these checks) by adding the flag `-configuration release` (or `-c release`), for example:
|
||||||
```
|
```
|
||||||
./build.sh -subsetCategory coreclr -configuration release
|
./build.sh -subset clr -configuration release
|
||||||
```
|
```
|
||||||
|
|
||||||
CoreCLR also supports a 'checked' build type which has asserts enabled like 'debug', but is built with the native compiler optimizer enabled, so it runs much faster. This is the usual mode used for running tests in the CI system. You can build that using, for example:
|
CoreCLR also supports a 'checked' build type which has asserts enabled like 'debug', but is built with the native compiler optimizer enabled, so it runs much faster. This is the usual mode used for running tests in the CI system. You can build that using, for example:
|
||||||
```
|
```
|
||||||
./build.sh -subsetCategory coreclr -configuration checked
|
./build.sh -subset clr -configuration checked
|
||||||
```
|
```
|
||||||
|
|
||||||
This will produce outputs as follows:
|
This will produce outputs as follows:
|
||||||
|
|
|
@ -13,7 +13,7 @@ Cross compiling CoreCLR
|
||||||
|
|
||||||
Build using "arm" as the architecture. For example:
|
Build using "arm" as the architecture. For example:
|
||||||
|
|
||||||
C:\runtime> build.cmd -subsetCategory CoreClr -subset Runtime -arch arm -c debug
|
C:\runtime> build.cmd -subset clr.runtime -arch arm -c debug
|
||||||
|
|
||||||
-or-
|
-or-
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ Cross compiling CoreCLR
|
||||||
-----------------------
|
-----------------------
|
||||||
`ROOTFS_DIR` must be set when running `build-runtime.sh`.
|
`ROOTFS_DIR` must be set when running `build-runtime.sh`.
|
||||||
|
|
||||||
~/runtime/ $ ROOTFS_DIR=/home/arm ./build.sh --subsetCategory CoreClr --subset Runtime --arch arm -c debug -v verbose --cross
|
~/runtime/ $ ROOTFS_DIR=/home/arm ./build.sh --subset clr.runtime --arch arm -c debug -v verbose --cross
|
||||||
|
|
||||||
-or-
|
-or-
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ The following instructions assume you are on a Linux machine such as Ubuntu 14.0
|
||||||
To build System.Private.CoreLib for Linux, run the following command:
|
To build System.Private.CoreLib for Linux, run the following command:
|
||||||
|
|
||||||
```
|
```
|
||||||
lgs@ubuntu ~/git/runtime/ $ ./build.sh --subsetCategory CoreClr --subset CoreLib-NativeCoreLib --arch arm -c debug -v verbose
|
lgs@ubuntu ~/git/runtime/ $ ./build.sh --subset clr.corelib+clr.nativecorelib --arch arm -c debug -v verbose
|
||||||
```
|
```
|
||||||
|
|
||||||
The output is at `artifacts/bin/coreclr/<TargetOS>.arm.Debug/IL/System.Private.CoreLib.dll`.
|
The output is at `artifacts/bin/coreclr/<TargetOS>.arm.Debug/IL/System.Private.CoreLib.dll`.
|
||||||
|
|
|
@ -127,7 +127,7 @@ Build the Runtime and System.Private.CoreLib
|
||||||
To build the runtime on Linux, run build.sh to build the CoreCLR subset category of the runtime:
|
To build the runtime on Linux, run build.sh to build the CoreCLR subset category of the runtime:
|
||||||
|
|
||||||
```
|
```
|
||||||
./build.sh -subsetCategory coreclr
|
./build.sh -subset clr
|
||||||
```
|
```
|
||||||
|
|
||||||
After the build is completed, there should some files placed in `artifacts/bin/coreclr/Linux.x64.Debug`. The ones we are most interested in are:
|
After the build is completed, there should some files placed in `artifacts/bin/coreclr/Linux.x64.Debug`. The ones we are most interested in are:
|
||||||
|
|
|
@ -46,7 +46,7 @@ Build the Runtime and System.Private.CoreLib
|
||||||
To Build CoreCLR, run build.sh to build the CoreCLR subset category of the runtime:
|
To Build CoreCLR, run build.sh to build the CoreCLR subset category of the runtime:
|
||||||
|
|
||||||
```
|
```
|
||||||
./build.sh -subsetCategory coreclr
|
./build.sh -subset clr
|
||||||
```
|
```
|
||||||
|
|
||||||
After the build has completed, there should some files placed in `artifacts/bin/coreclr/OSX.x64.Debug`. The ones we are interested in are:
|
After the build has completed, there should some files placed in `artifacts/bin/coreclr/OSX.x64.Debug`. The ones we are interested in are:
|
||||||
|
|
|
@ -9,7 +9,7 @@ Here is one example of a daily workflow for a developer working mainly on the li
|
||||||
git clean -xdf
|
git clean -xdf
|
||||||
git pull upstream master & git push origin master
|
git pull upstream master & git push origin master
|
||||||
:: Build Debug libraries on top of Release runtime:
|
:: Build Debug libraries on top of Release runtime:
|
||||||
build -subsetCategory coreclr-libraries -runtimeConfiguration Release
|
build -subset clr+libs -runtimeConfiguration Release
|
||||||
:: The above you may only perform once in a day, or when you pull down significant new changes.
|
:: The above you may only perform once in a day, or when you pull down significant new changes.
|
||||||
|
|
||||||
:: If you use Visual Studio, you might open System.Text.RegularExpressions.sln here.
|
:: If you use Visual Studio, you might open System.Text.RegularExpressions.sln here.
|
||||||
|
@ -33,7 +33,7 @@ The instructions for Linux and macOS are essentially the same:
|
||||||
git clean -xdf
|
git clean -xdf
|
||||||
git pull upstream master & git push origin master
|
git pull upstream master & git push origin master
|
||||||
# Build Debug libraries on top of Release runtime:
|
# Build Debug libraries on top of Release runtime:
|
||||||
./build.sh -subsetCategory coreclr-libraries -runtimeconfiguration Release
|
./build.sh -subset clr+libs -runtimeconfiguration Release
|
||||||
# The above you may only perform once in a day, or when you pull down significant new changes.
|
# The above you may only perform once in a day, or when you pull down significant new changes.
|
||||||
|
|
||||||
# Switch to working on a given library (RegularExpressions in this case)
|
# Switch to working on a given library (RegularExpressions in this case)
|
||||||
|
@ -83,33 +83,28 @@ For more details on the build settings see [project-guidelines](../../../coding-
|
||||||
|
|
||||||
If you invoke the `build` script without any actions, the default action chain `-restore -build` is executed.
|
If you invoke the `build` script without any actions, the default action chain `-restore -build` is executed.
|
||||||
|
|
||||||
By default the `build` script only builds the product libraries and none of the tests. If you want to include tests, you want to add the subset `-subset libtests`. If you want to run the tests you want to use the `-test` action instead of the `-build`, e.g. `build.cmd/sh -subsetcategory libraries -test`. To specify just the libraries, use `-subcategory libraries`.
|
By default the `build` script only builds the product libraries and none of the tests. If you want to include tests, you want to add the subset `-subset libtests`. If you want to run the tests you want to use the `-test` action instead of the `-build`, e.g. `build.cmd/sh -subset libs.tests -test`. To specify just the libraries, use `-subset libs`.
|
||||||
|
|
||||||
**Examples**
|
**Examples**
|
||||||
- Building in release mode for platform x64 (restore and build are implicit here as no actions are passed in)
|
- Building in release mode for platform x64 (restore and build are implicit here as no actions are passed in)
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries -c Release -arch x64
|
./build.sh -subset libs -c Release -arch x64
|
||||||
```
|
```
|
||||||
|
|
||||||
- Building the src assemblies and build and run tests (running all tests takes a considerable amount of time!)
|
- Building the src assemblies and build and run tests (running all tests takes a considerable amount of time!)
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries -restore -build -test
|
./build.sh -subset libs -test
|
||||||
```
|
```
|
||||||
|
|
||||||
- Building for different target frameworks (restore and build are implicit again as no action is passed in)
|
- Building for different target frameworks (restore and build are implicit again as no action is passed in)
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries -framework netcoreapp5.0
|
./build.sh -subset libs -framework netcoreapp5.0
|
||||||
./build.sh -subsetCategory libraries -framework net472
|
./build.sh -subset libs -framework net472
|
||||||
```
|
|
||||||
|
|
||||||
- Build only managed components and skip the native build
|
|
||||||
```bash
|
|
||||||
./build.sh -subsetCategory libraries /p:BuildNative=false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- Clean the entire solution
|
- Clean the entire solution
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries -clean
|
./build.sh -clean
|
||||||
```
|
```
|
||||||
|
|
||||||
For Windows, replace `./build.sh` with `build.cmd`.
|
For Windows, replace `./build.sh` with `build.cmd`.
|
||||||
|
@ -141,17 +136,17 @@ Similar to building the entire repo with `build.cmd` or `build.sh` in the root y
|
||||||
- Build all projects for a given library (e.g.: System.Collections) including running the tests
|
- Build all projects for a given library (e.g.: System.Collections) including running the tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries src/libraries/System.Collections
|
./build.sh -projects src/libraries/*/System.Collections.sln
|
||||||
```
|
```
|
||||||
|
|
||||||
- Build just the tests for a library project
|
- Build just the tests for a library project
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries src/libraries/System.Collections/tests
|
./build.sh -projects src/libraries/System.Collections/tests/*.csproj
|
||||||
```
|
```
|
||||||
|
|
||||||
- All the options listed above like framework and configuration are also supported (note they must be after the directory)
|
- All the options listed above like framework and configuration are also supported (note they must be after the directory)
|
||||||
```bash
|
```bash
|
||||||
./build.sh -subsetCategory libraries System.Collections -f net472 -c Release
|
./build.sh -projects src/libraries/*/System.Collections.sln -f net472 -c Release
|
||||||
```
|
```
|
||||||
|
|
||||||
As `dotnet build` works on both Unix and Windows and calls the restore target implicitly, we will use it throughout this guide.
|
As `dotnet build` works on both Unix and Windows and calls the restore target implicitly, we will use it throughout this guide.
|
||||||
|
@ -185,24 +180,24 @@ dotnet build -c Release System.Net.NetworkInformation.csproj
|
||||||
By default the libraries will attempt to build using the CoreCLR version of `System.Private.CoreLib.dll`. In order to build against the Mono version you need to use the `/p:RuntimeFlavor=Mono` argument.
|
By default the libraries will attempt to build using the CoreCLR version of `System.Private.CoreLib.dll`. In order to build against the Mono version you need to use the `/p:RuntimeFlavor=Mono` argument.
|
||||||
|
|
||||||
```
|
```
|
||||||
.\build.cmd -subsetCategory libraries /p:RuntimeFlavor=Mono
|
.\build.cmd -subset libs /p:RuntimeFlavor=Mono
|
||||||
```
|
```
|
||||||
|
|
||||||
### Building all for other OSes
|
### Building all for other OSes
|
||||||
|
|
||||||
By default, building from the root will only build the libraries for the OS you are running on. One can
|
By default, building from the root will only build the libraries for the OS you are running on. One can
|
||||||
build for another OS by specifying `./build.sh -subsetCategory libraries -os [value]`.
|
build for another OS by specifying `./build.sh -subset libs -os [value]`.
|
||||||
|
|
||||||
Note that you cannot generally build native components for another OS but you can for managed components so if you need to do that you can do it at the individual project level or build all via passing `/p:BuildNative=false`.
|
Note that you cannot generally build native components for another OS but you can for managed components so if you need to do that you can do it at the individual project level or build all via passing `/p:BuildNative=false`.
|
||||||
|
|
||||||
### Building in Release or Debug
|
### Building in Release or Debug
|
||||||
|
|
||||||
By default, building from the root or within a project will build the libraries in Debug mode.
|
By default, building from the root or within a project will build the libraries in Debug mode.
|
||||||
One can build in Debug or Release mode from the root by doing `./build.sh -subsetCategory libraries -c Release` or `./build.sh -subsetCategory libraries -c Debug`.
|
One can build in Debug or Release mode from the root by doing `./build.sh -subset libs -c Release` or `./build.sh -subset libs -c Debug`.
|
||||||
|
|
||||||
### Building other Architectures
|
### Building other Architectures
|
||||||
|
|
||||||
One can build 32- or 64-bit binaries or for any architecture by specifying in the root `./build.sh -subsetCategory libraries -arch [value]` or in a project `/p:TargetArchitecture=[value]` after the `dotnet build` command.
|
One can build 32- or 64-bit binaries or for any architecture by specifying in the root `./build.sh -subset libs -arch [value]` or in a project `/p:TargetArchitecture=[value]` after the `dotnet build` command.
|
||||||
|
|
||||||
## Working in Visual Studio
|
## Working in Visual Studio
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,11 @@ Note that the debug configuration is the default option. It generates a 'debug'
|
||||||
Once you've built the whole runtime and assuming you want to work with just mono, you want to use the following command:
|
Once you've built the whole runtime and assuming you want to work with just mono, you want to use the following command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.sh --subsetCategory mono
|
./build.sh --subset mono
|
||||||
```
|
```
|
||||||
or on Windows,
|
or on Windows,
|
||||||
```bat
|
```bat
|
||||||
build.cmd -subsetCategory mono
|
build.cmd -subset mono
|
||||||
```
|
```
|
||||||
When the build completes, product binaries will be dropped in the `artifacts\bin\mono\<OS>.<arch>.<flavor>` folder.
|
When the build completes, product binaries will be dropped in the `artifacts\bin\mono\<OS>.<arch>.<flavor>` folder.
|
||||||
|
|
||||||
|
@ -44,11 +44,11 @@ The build has a number of options that you can learn about using build -?.
|
||||||
To generate nuget packages:
|
To generate nuget packages:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.sh --subsetCategory mono -pack (with optional release configuration)
|
./build.sh --subset mono -pack (with optional release configuration)
|
||||||
```
|
```
|
||||||
or on Windows,
|
or on Windows,
|
||||||
```bat
|
```bat
|
||||||
build.cmd -subsetCategory mono -pack (with optional release configuration)
|
build.cmd -subset mono -pack (with optional release configuration)
|
||||||
```
|
```
|
||||||
|
|
||||||
The following packages will be created under `artifacts\packages\<configuration>\Shipping`:
|
The following packages will be created under `artifacts\packages\<configuration>\Shipping`:
|
||||||
|
|
|
@ -7,28 +7,28 @@ To build the tests and run them you can call the libraries build script.
|
||||||
**Examples**
|
**Examples**
|
||||||
- The following shows how to build only the tests but not run them:
|
- The following shows how to build only the tests but not run them:
|
||||||
```
|
```
|
||||||
libraries -subset libtests
|
build.cmd/sh -subset libs.tests
|
||||||
```
|
```
|
||||||
|
|
||||||
- The following builds and runs all tests in release configuration:
|
- The following builds and runs all tests in release configuration:
|
||||||
```
|
```
|
||||||
libraries -test -c Release
|
build.cmd/sh -subset libs -test -c Release
|
||||||
```
|
```
|
||||||
|
|
||||||
- The following example shows how to pass extra msbuild properties to ignore tests ignored in CI:
|
- The following example shows how to pass extra msbuild properties to ignore tests ignored in CI:
|
||||||
```
|
```
|
||||||
libraries -test /p:WithoutCategories=IgnoreForCI
|
build.cmd/sh -subset libs -test /p:WithoutCategories=IgnoreForCI
|
||||||
```
|
```
|
||||||
|
|
||||||
Unless you specifiy `-testnobuild`, test assemblies are implicitly built when invoking the `Test` action.
|
Unless you specifiy `-testnobuild`, test assemblies are implicitly built when invoking the `Test` action.
|
||||||
- The following shows how to only test the libraries without building them
|
- The following shows how to only test the libraries without building them
|
||||||
```
|
```
|
||||||
libraries -test -testnobuild
|
build.cmd/sh -subset libs -test -testnobuild
|
||||||
```
|
```
|
||||||
|
|
||||||
## Running tests on the command line
|
## Running tests on the command line
|
||||||
|
|
||||||
To build tests you need to specify the `test` subset when invoking build.cmd/sh: `libraries -subset libtests`.
|
To build tests you need to specify the `test` subset when invoking build.cmd/sh: `build.cmd/sh -subset libs.tests`.
|
||||||
|
|
||||||
The easiest (and recommended) way to build and run the tests for a specific library, is to invoke the `Test` target on that library:
|
The easiest (and recommended) way to build and run the tests for a specific library, is to invoke the `Test` target on that library:
|
||||||
```cmd
|
```cmd
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<Target Name="FindInvalidSpecifiedSubsetNames">
|
<Target Name="FindInvalidSpecifiedSubsetNames">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SpecifiedSubsetName Include="$([MSBuild]::Unescape($(Subset.Replace('-', ';'))))" />
|
<SpecifiedSubsetName Include="$([MSBuild]::Unescape($(Subset.Replace('+', ';').Replace('-', ';'))))" />
|
||||||
|
|
||||||
<!-- MSBuild Exclude is case-insensitive, which matches intended behavior. -->
|
<!-- MSBuild Exclude is case-insensitive, which matches intended behavior. -->
|
||||||
<InvalidSpecifiedSubsetName Include="@(SpecifiedSubsetName)" Exclude="@(SubsetName)" />
|
<InvalidSpecifiedSubsetName Include="@(SpecifiedSubsetName)" Exclude="@(SubsetName)" />
|
||||||
|
@ -29,9 +29,7 @@
|
||||||
<Target Name="ReportValidSubsetList"
|
<Target Name="ReportValidSubsetList"
|
||||||
Condition="'@(InvalidSpecifiedSubsetName)' != ''">
|
Condition="'@(InvalidSpecifiedSubsetName)' != ''">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SubsetName Text="- " />
|
<SubsetName Text="- %(Identity)" />
|
||||||
<SubsetName Condition="'%(Category)' != ''" Text="%(Text)%(Category)|" />
|
|
||||||
<SubsetName Text="%(Text)%(Identity)" />
|
|
||||||
<SubsetName Text="%(Text) [only runs on demand]" Condition="'%(SubsetName.OnDemand)' == 'true'" />
|
<SubsetName Text="%(Text) [only runs on demand]" Condition="'%(SubsetName.OnDemand)' == 'true'" />
|
||||||
<SubsetName Text="%(Text)%0A %(Description)" />
|
<SubsetName Text="%(Text)%0A %(Description)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -5,31 +5,20 @@
|
||||||
situations, you should perform a full build by running 'build.cmd' or './build.sh'. This ensures
|
situations, you should perform a full build by running 'build.cmd' or './build.sh'. This ensures
|
||||||
the projects are sequenced correctly so the outputs and test results are what you would expect.
|
the projects are sequenced correctly so the outputs and test results are what you would expect.
|
||||||
|
|
||||||
If you know you only want to run a subset of the build, however, use the Subset property.
|
|
||||||
|
|
||||||
Syntax:
|
|
||||||
|
|
||||||
(build.cmd/sh) /p:Subset=<desired subset name 1>(-<desired subset name N>)*
|
|
||||||
|
|
||||||
- For a description of each subset, use '/p:Subset=help'.
|
|
||||||
- Subset names are case insensitive.
|
|
||||||
- 'Subset' is case insensitive. (That is, '/p:subset' works.)
|
|
||||||
- Order doesn't affect the result.
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
./build.sh /p:Subset=CoreHost
|
./build.sh CoreHost
|
||||||
|
|
||||||
This builds only the .NET Core Host.
|
This builds only the .NET Core Host.
|
||||||
|
|
||||||
./build.sh /p:Subset=CoreHost-Managed
|
./build.sh corehost installer.managed
|
||||||
|
|
||||||
This builds the CoreHost and also the Managed (e.g. Microsoft.DotNet.PlatformAbstractions)
|
This builds the CoreHost and also the Managed installer portion (e.g. Microsoft.DotNet.PlatformAbstractions)
|
||||||
projects. A '-' is the delimiter between multiple subsets to build.
|
projects. A space ' ' or '+' are the delimiters between multiple subsets to build.
|
||||||
|
|
||||||
./build.sh -test /p:Subset=Test
|
./build.sh -test installer.tests
|
||||||
|
|
||||||
This builds and executes the test projects. (The '-test' argument is an Arcade SDK argument
|
This builds and executes the installer test projects. (The '-test' argument is an Arcade SDK argument
|
||||||
that indicates tests should be run. Otherwise, they'll only be built.)
|
that indicates tests should be run. Otherwise, they'll only be built.)
|
||||||
|
|
||||||
Quirks:
|
Quirks:
|
||||||
|
@ -48,75 +37,76 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<DefaultSubsetCategories>libraries-installer-coreclr-mono</DefaultSubsetCategories>
|
<DefaultSubsets>clr+mono+libs+installer</DefaultSubsets>
|
||||||
<DefaultSubsetCategories Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'tvOS'">libraries-installer-mono</DefaultSubsetCategories>
|
<DefaultSubsets Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'tvOS'">mono+libs+installer</DefaultSubsets>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<DefaultCoreClrSubsets>runtime-linuxdac-corelib-nativecorelib-tools-packages</DefaultCoreClrSubsets>
|
<DefaultCoreClrSubsets>clr.runtime+linuxdac+clr.corelib+clr.nativecorelib+clr.tools+clr.packages</DefaultCoreClrSubsets>
|
||||||
|
|
||||||
<DefaultMonoSubsets Condition="'$(MonoEnableLLVM)' == 'true' and '$(MonoLLVMDir)' == ''">llvm-</DefaultMonoSubsets>
|
<DefaultMonoSubsets Condition="'$(MonoEnableLLVM)' == 'true' and '$(MonoLLVMDir)' == ''">mono.llvm+</DefaultMonoSubsets>
|
||||||
<DefaultMonoSubsets>$(DefaultMonoSubsets)runtime-corelib</DefaultMonoSubsets>
|
<DefaultMonoSubsets>$(DefaultMonoSubsets)mono.runtime+mono.corelib</DefaultMonoSubsets>
|
||||||
|
|
||||||
<DefaultLibrariesSubsets>depprojs-native-ref-src-pretest-packages</DefaultLibrariesSubsets>
|
<DefaultLibrariesSubsets>libs.depprojs+libs.native+libs.ref+libs.src+libs.pretest+libs.packages</DefaultLibrariesSubsets>
|
||||||
<DefaultLibrariesSubsets Condition="'$(IncludeLibrariesTestSubset)' == 'true'">$(DefaultLibrariesSubsets)-libtests</DefaultLibrariesSubsets>
|
|
||||||
|
|
||||||
<DefaultInstallerSubsets>corehost-managed-depproj-pkgproj-bundle-installers-test</DefaultInstallerSubsets>
|
<DefaultInstallerSubsets>corehost+installer.managed+installer.depprojs+installer.pkgprojs+bundles+installers+installer.tests</DefaultInstallerSubsets>
|
||||||
<DefaultInstallerSubsets Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'tvOS'">depproj-pkgproj</DefaultInstallerSubsets>
|
<DefaultInstallerSubsets Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'tvOS'">installer.depprojs+installer.pkgprojs</DefaultInstallerSubsets>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_subsetCategory Condition="'$(SubsetCategory)' != ''">$(SubsetCategory.ToLowerInvariant())</_subsetCategory>
|
<_subset Condition="'$(Subset)' != ''">+$(Subset.ToLowerInvariant())+</_subset>
|
||||||
<_subsetCategory Condition="'$(SubsetCategory)' == ''">$(DefaultSubsetCategories)</_subsetCategory>
|
<_subset Condition="'$(Subset)' == ''">+$(DefaultSubsets)+</_subset>
|
||||||
<_subset Condition="'$(Subset)' != ''">$(Subset.ToLowerInvariant())</_subset>
|
<_subset>$(_subset.Replace('+clr+', '+$(DefaultCoreClrSubsets)+'))</_subset>
|
||||||
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('libraries'))">$(DefaultLibrariesSubsets)</_subset>
|
<_subset>$(_subset.Replace('+mono+', '+$(DefaultMonoSubsets)+'))</_subset>
|
||||||
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('installer'))">$(_subset)-$(DefaultInstallerSubsets)</_subset>
|
<_subset>$(_subset.Replace('+libs+', '+$(DefaultLibrariesSubsets)+'))</_subset>
|
||||||
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('coreclr'))">$(_subset)-$(DefaultCoreClrSubsets)</_subset>
|
<_subset>$(_subset.Replace('+installer+', '+$(DefaultInstallerSubsets)+'))</_subset>
|
||||||
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('mono'))">$(_subset)-$(DefaultMonoSubsets)</_subset>
|
|
||||||
|
|
||||||
<!-- Surround _subset in dashes to simplify checks below -->
|
<!-- Surround _subset in dashes to simplify checks below -->
|
||||||
<_subset>-$(_subset)-</_subset>
|
<_subset>+$(_subset.Trim('+'))+</_subset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RuntimeFlavor Condition="'$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android'">Mono</RuntimeFlavor>
|
<RuntimeFlavor Condition="'$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android'">Mono</RuntimeFlavor>
|
||||||
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and $(_subsetCategory.Contains('mono')) and !$(_subsetCategory.Contains('coreclr'))">Mono</RuntimeFlavor>
|
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and $(_subset.Contains('+mono.runtime+')) and !$(_subset.Contains('+clr.runtime+'))">Mono</RuntimeFlavor>
|
||||||
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == ''">CoreCLR</RuntimeFlavor>
|
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == ''">CoreCLR</RuntimeFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Libraries -->
|
|
||||||
<SubsetName Include="Depprojs" Category="Libraries" Description="The libraries upfront restore projects." />
|
|
||||||
<SubsetName Include="Native" Category="Libraries" Description="The native libraries used in the shared framework." />
|
|
||||||
<SubsetName Include="Ref" Category="Libraries" Description="The managed reference libraries." />
|
|
||||||
<SubsetName Include="Src" Category="Libraries" Description="The managed implementation libraries." />
|
|
||||||
<SubsetName Include="PreTest" Category="Libraries" Description="Test assets which are necessary to run tests." />
|
|
||||||
<SubsetName Include="Packages" Category="Libraries" Description="The projects that produce NuGet packages from libraries." />
|
|
||||||
<SubsetName Include="LibTests" Category="Libraries" OnDemand="true" Description="The test projects. Note that building this doesn't execute tests: you must also pass the '-test' argument." />
|
|
||||||
|
|
||||||
<!-- CoreClr -->
|
<!-- CoreClr -->
|
||||||
<SubsetName Include="Runtime" Category="CoreClr" Description="The CoreCLR .NET runtime." />
|
<SubsetName Include="Clr" Description="The CoreCLR runtime, LinuxDac, CoreLib (+ native), tools and packages." />
|
||||||
<SubsetName Condition="$([MSBuild]::IsOsPlatform(Windows))" Include="LinuxDac" Category="CoreClr" Description="The cross-OS Windows->libc-based Linux DAC. Skipped on x86." />
|
<SubsetName Include="Clr.Runtime" Description="The CoreCLR .NET runtime." />
|
||||||
<SubsetName Condition="$([MSBuild]::IsOsPlatform(Windows))" Include="AlpineDac" Category="CoreClr" OnDemand="true" Description="The cross-OS Windows->musl-libc-based Linux DAC. Skipped on x86." />
|
<SubsetName Include="LinuxDac" Condition="$([MSBuild]::IsOsPlatform(Windows))" Description="The cross-OS Windows->libc-based Linux DAC. Skipped on x86." />
|
||||||
<SubsetName Include="CoreLib" Category="CoreClr" Description="The managed System.Private.CoreLib library for CoreCLR." />
|
<SubsetName Include="AlpineDac" Condition="$([MSBuild]::IsOsPlatform(Windows))" OnDemand="true" Description="The cross-OS Windows->musl-libc-based Linux DAC. Skipped on x86." />
|
||||||
<SubsetName Include="NativeCoreLib" Category="CoreClr" Description="Run crossgen on System.Private.CoreLib library for CoreCLR." />
|
<SubsetName Include="Clr.CoreLib" Description="The managed System.Private.CoreLib library for CoreCLR." />
|
||||||
<SubsetName Include="Tools" Category="CoreClr" Description="Managed tools that support CoreCLR development and testing." />
|
<SubsetName Include="Clr.NativeCoreLib" Description="Run crossgen on System.Private.CoreLib library for CoreCLR." />
|
||||||
<SubsetName Include="Packages" Category="CoreClr" Description="The projects that produce NuGet packages for the CoreCLR runtime, crossgen, and IL tools." />
|
<SubsetName Include="Clr.Tools" Description="Managed tools that support CoreCLR development and testing." />
|
||||||
|
<SubsetName Include="Clr.Packages" Description="The projects that produce NuGet packages for the CoreCLR runtime, crossgen, and IL tools." />
|
||||||
|
|
||||||
<!-- Mono -->
|
<!-- Mono -->
|
||||||
<SubsetName Include="Runtime" Category="Mono" Description="The Mono .NET runtime." />
|
<SubsetName Include="Mono" Description="The Mono runtime and CoreLib." />
|
||||||
<SubsetName Include="CoreLib" Category="Mono" Description="The managed System.Private.CoreLib library for Mono." />
|
<SubsetName Include="Mono.Runtime" Description="The Mono .NET runtime." />
|
||||||
|
<SubsetName Include="Mono.CoreLib" Description="The managed System.Private.CoreLib library for Mono." />
|
||||||
|
|
||||||
|
<!-- Libs -->
|
||||||
|
<SubsetName Include="Libs" Description="The libraries native part, refs and source assemblies, test infra and packages." />
|
||||||
|
<SubsetName Include="Libs.Depprojs" Description="The libraries upfront restore projects." />
|
||||||
|
<SubsetName Include="Libs.Native" Description="The native libraries used in the shared framework." />
|
||||||
|
<SubsetName Include="Libs.Ref" Description="The managed reference libraries." />
|
||||||
|
<SubsetName Include="Libs.Src" Description="The managed implementation libraries." />
|
||||||
|
<SubsetName Include="Libs.PreTest" Description="Test assets which are necessary to run tests." />
|
||||||
|
<SubsetName Include="Libs.Packages" Description="The projects that produce NuGet packages from libraries." />
|
||||||
|
<SubsetName Include="Libs.Tests" OnDemand="true" Description="The test projects. Note that building this doesn't execute tests: you must also pass the '-test' argument." />
|
||||||
|
|
||||||
<!-- Installer -->
|
<!-- Installer -->
|
||||||
<SubsetName Include="All" Category="Installer" Description="The .NET Core hosts, hosting libraries, bundles, and installers. Includes these projects' tests." />
|
<SubsetName Include="Installer" Description="The .NET Core hosts, hosting libraries, bundles, and installers. Includes these projects' tests." />
|
||||||
<SubsetName Include="CoreHost" Category="Installer" Description="The .NET Core hosts." />
|
<SubsetName Include="CoreHost" Description="The .NET Core hosts." />
|
||||||
<SubsetName Include="Managed" Category="Installer" Description="The managed .NET hosting projects. This includes PlatformAbstractions and HostModel." />
|
<SubsetName Include="Installer.Managed" Description="The managed .NET hosting projects. This includes PlatformAbstractions and HostModel." />
|
||||||
<SubsetName Include="DepProj" Category="Installer" Description="The dependency projects. These gather shared framework files and run crossgen on them to turn them into ready-to-run (R2R) assemblies for the current platform." />
|
<SubsetName Include="Installer.DepProjs" Description="The dependency projects. These gather shared framework files and run crossgen on them to turn them into ready-to-run (R2R) assemblies for the current platform." />
|
||||||
<SubsetName Include="PkgProj" Category="Installer" Description="The packaging projects. These produce NETCoreApp assets: NuGet packages, installers, zips, and Linux packages." />
|
<SubsetName Include="Installer.PkgProjs" Description="The packaging projects. These produce NETCoreApp assets: NuGet packages, installers, zips, and Linux packages." />
|
||||||
<SubsetName Include="Bundle" Category="Installer" Description="The shared framework bundle installer projects. Produces .exe installers for Windows." />
|
<SubsetName Include="Bundles" Description="The shared framework bundle installer projects. Produces .exe installers for Windows." />
|
||||||
<SubsetName Include="Installers" Category="Installer" Description="Generates additional installers. This produces the shared frameworks and their installers." />
|
<SubsetName Include="Installers" Description="Generates additional installers. This produces the shared frameworks and their installers." />
|
||||||
<SubsetName Include="Test" Category="Installer" Description="The test projects. Note that building this doesn't execute tests: you must also pass the '-test' argument." />
|
<SubsetName Include="Installer.Tests" Description="The test projects. Note that building this doesn't execute tests: you must also pass the '-test' argument." />
|
||||||
<SubsetName Include="Publish" Category="Installer" OnDemand="true" Description="Builds the installer publish infrastructure." />
|
<SubsetName Include="Installer.Publish" OnDemand="true" Description="Builds the installer publish infrastructure." />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Default targets, parallelization and configurations. -->
|
<!-- Default targets, parallelization and configurations. -->
|
||||||
|
@ -150,27 +140,27 @@
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|
||||||
<!-- CoreClr sets -->
|
<!-- CoreClr sets -->
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-corelib-'))">
|
<ItemGroup Condition="$(_subset.Contains('+clr.corelib+'))">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\System.Private.CoreLib\System.Private.CoreLib.csproj" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\System.Private.CoreLib\System.Private.CoreLib.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-runtime-'))">
|
<ItemGroup Condition="$(_subset.Contains('+clr.runtime+'))">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-linuxdac-')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
|
<ItemGroup Condition="$(_subset.Contains('+linuxdac+')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=linux" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=linux" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-alpinedac-')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
|
<ItemGroup Condition="$(_subset.Contains('+alpinedac+')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=alpine" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=alpine" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-nativecorelib-'))">
|
<ItemGroup Condition="$(_subset.Contains('+clr.nativecorelib+'))">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)crossgen-corelib.proj" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)crossgen-corelib.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-tools-'))">
|
<ItemGroup Condition="$(_subset.Contains('+clr.tools+'))">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\runincontext\runincontext.csproj" BuildInParallel="true" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\runincontext\runincontext.csproj" BuildInParallel="true" />
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\r2rdump\R2RDump.csproj" BuildInParallel="true" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\r2rdump\R2RDump.csproj" BuildInParallel="true" />
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\dotnet-pgo\dotnet-pgo.csproj" BuildInParallel="true" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\dotnet-pgo\dotnet-pgo.csproj" BuildInParallel="true" />
|
||||||
|
@ -178,67 +168,67 @@
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\crossgen2\crossgen2\crossgen2.csproj" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\crossgen2\crossgen2\crossgen2.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('-packages-'))">
|
<ItemGroup Condition="$(_subset.Contains('+clr.packages+'))">
|
||||||
<CoreClrProject Include="$(CoreClrProjectRoot)src\.nuget\coreclr-packages.proj" Pack="true" />
|
<CoreClrProject Include="$(CoreClrProjectRoot)src\.nuget\coreclr-packages.proj" Pack="true" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Mono sets -->
|
<!-- Mono sets -->
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('mono')) and $(_subset.Contains('-llvm-'))">
|
<ItemGroup Condition="$(_subset.Contains('+mono.llvm+'))">
|
||||||
<MonoProject Include="$(MonoProjectRoot)llvm\llvm-init.proj" />
|
<MonoProject Include="$(MonoProjectRoot)llvm\llvm-init.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('mono')) and $(_subset.Contains('-runtime-'))">
|
<ItemGroup Condition="$(_subset.Contains('+mono.runtime+'))">
|
||||||
<MonoProject Include="$(MonoProjectRoot)mono.proj" />
|
<MonoProject Include="$(MonoProjectRoot)mono.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('mono')) and $(_subset.Contains('-corelib-'))">
|
<ItemGroup Condition="$(_subset.Contains('+mono.corelib+'))">
|
||||||
<MonoProject Include="$(MonoProjectRoot)netcore\System.Private.CoreLib\System.Private.CoreLib.csproj" />
|
<MonoProject Include="$(MonoProjectRoot)netcore\System.Private.CoreLib\System.Private.CoreLib.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Libraries sets -->
|
<!-- Libraries sets -->
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-depprojs-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.depprojs+'))">
|
||||||
<LibrariesRestoreProject Include="$(LibrariesProjectRoot)restore\depproj.proj">
|
<LibrariesRestoreProject Include="$(LibrariesProjectRoot)restore\depproj.proj">
|
||||||
<AdditionalProperties Condition="'$(LibrariesConfiguration)' != ''">Configuration=$(LibrariesConfiguration)</AdditionalProperties>
|
<AdditionalProperties Condition="'$(LibrariesConfiguration)' != ''">Configuration=$(LibrariesConfiguration)</AdditionalProperties>
|
||||||
</LibrariesRestoreProject>
|
</LibrariesRestoreProject>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-native-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)Native\build-native.proj" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)Native\build-native.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-ref-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.ref+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)ref.proj" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)ref.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-src-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.src+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)src.proj" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)src.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-pretest-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.pretest+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)pretest.proj" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)pretest.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-packages-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.packages+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)libraries-packages.proj" Pack="true" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)libraries-packages.proj" Pack="true" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('-libtests-'))">
|
<ItemGroup Condition="$(_subset.Contains('+libs.tests+'))">
|
||||||
<LibrariesProject Include="$(LibrariesProjectRoot)tests.proj" Test="true" />
|
<LibrariesProject Include="$(LibrariesProjectRoot)tests.proj" Test="true" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- Installer sets -->
|
<!-- Installer sets -->
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-corehost-'))">
|
<ItemGroup Condition="$(_subset.Contains('+corehost+'))">
|
||||||
<CorehostProjectToBuild Include="$(InstallerProjectRoot)corehost\build.proj" SignPhase="Binaries" />
|
<CorehostProjectToBuild Include="$(InstallerProjectRoot)corehost\build.proj" SignPhase="Binaries" />
|
||||||
<InstallerProject Include="@(CorehostProjectToBuild)" />
|
<InstallerProject Include="@(CorehostProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-managed-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installer.managed+'))">
|
||||||
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" SignPhase="Binaries" />
|
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" SignPhase="Binaries" />
|
||||||
<ManagedProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\pack-managed.proj" />
|
<ManagedProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\pack-managed.proj" />
|
||||||
<InstallerProject Include="@(ManagedProjectToBuild)" />
|
<InstallerProject Include="@(ManagedProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-depproj-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installer.depprojs+'))">
|
||||||
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'CoreCLR'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="R2RBinaries" BuildInParallel="false" />
|
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'CoreCLR'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="R2RBinaries" BuildInParallel="false" />
|
||||||
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'Mono'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" BuildInParallel="false" />
|
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'Mono'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" BuildInParallel="false" />
|
||||||
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
|
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
|
||||||
|
@ -246,25 +236,25 @@
|
||||||
<InstallerProject Include="@(DepprojProjectToBuild)" />
|
<InstallerProject Include="@(DepprojProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-pkgproj-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installer.pkgprojs+'))">
|
||||||
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" BuildInParallel="false" />
|
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" BuildInParallel="false" />
|
||||||
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
|
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
|
||||||
<PkgprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\pkg\NETStandard.Library.Ref.pkgproj" />
|
<PkgprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\pkg\NETStandard.Library.Ref.pkgproj" />
|
||||||
<InstallerProject Include="@(PkgprojProjectToBuild)" />
|
<InstallerProject Include="@(PkgprojProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-bundle-'))">
|
<ItemGroup Condition="$(_subset.Contains('+bundles+'))">
|
||||||
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" BuildInParallel="false" />
|
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" BuildInParallel="false" />
|
||||||
<InstallerProject Include="@(BundleProjectToBuild)" />
|
<InstallerProject Include="@(BundleProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-installers-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installers+'))">
|
||||||
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" BuildInParallel="false" />
|
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" BuildInParallel="false" />
|
||||||
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" BuildInParallel="false" />
|
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" BuildInParallel="false" />
|
||||||
<InstallerProject Include="@(InstallerProjectToBuild)" />
|
<InstallerProject Include="@(InstallerProjectToBuild)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-test-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installer.tests+'))">
|
||||||
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\AppHost.Bundle.Tests\AppHost.Bundle.Tests.csproj" />
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\AppHost.Bundle.Tests\AppHost.Bundle.Tests.csproj" />
|
||||||
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.AppHost.Tests\Microsoft.NET.HostModel.AppHost.Tests.csproj" />
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.AppHost.Tests\Microsoft.NET.HostModel.AppHost.Tests.csproj" />
|
||||||
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.Bundle.Tests\Microsoft.NET.HostModel.Bundle.Tests.csproj" />
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.Bundle.Tests\Microsoft.NET.HostModel.Bundle.Tests.csproj" />
|
||||||
|
@ -274,7 +264,7 @@
|
||||||
<InstallerProject Include="@(TestProjectToBuild)" Pack="false" Test="true" BuildInParallel="false" />
|
<InstallerProject Include="@(TestProjectToBuild)" Pack="false" Test="true" BuildInParallel="false" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-publish-'))">
|
<ItemGroup Condition="$(_subset.Contains('+installer.publish+'))">
|
||||||
<InstallerProject Include="$(InstallerProjectRoot)publish\prepare-artifacts.proj" />
|
<InstallerProject Include="$(InstallerProjectRoot)publish\prepare-artifacts.proj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,7 @@ Param(
|
||||||
[string]$testscope,
|
[string]$testscope,
|
||||||
[switch]$testnobuild,
|
[switch]$testnobuild,
|
||||||
[string[]][Alias('a')]$arch = @([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant()),
|
[string[]][Alias('a')]$arch = @([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant()),
|
||||||
[string]$subsetCategory,
|
[Parameter(Position=0)][string]$subset,
|
||||||
[string]$subset,
|
|
||||||
[ValidateSet("Debug","Release","Checked")][string]$runtimeConfiguration,
|
[ValidateSet("Debug","Release","Checked")][string]$runtimeConfiguration,
|
||||||
[ValidateSet("Debug","Release")][string]$librariesConfiguration,
|
[ValidateSet("Debug","Release")][string]$librariesConfiguration,
|
||||||
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
|
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
|
||||||
|
@ -21,7 +20,6 @@ Param(
|
||||||
function Get-Help() {
|
function Get-Help() {
|
||||||
Write-Host "Common settings:"
|
Write-Host "Common settings:"
|
||||||
Write-Host " -subset Build a subset, print available subsets with -subset help"
|
Write-Host " -subset Build a subset, print available subsets with -subset help"
|
||||||
Write-Host " -subsetCategory Build a subsetCategory, print available subsetCategories with -subset help"
|
|
||||||
Write-Host " -vs Open the solution with VS for Test Explorer support. Path or solution name (ie -vs Microsoft.CSharp)"
|
Write-Host " -vs Open the solution with VS for Test Explorer support. Path or solution name (ie -vs Microsoft.CSharp)"
|
||||||
Write-Host " -os Build operating system: Windows_NT or Unix"
|
Write-Host " -os Build operating system: Windows_NT or Unix"
|
||||||
Write-Host " -arch Build platform: x86, x64, arm or arm64 (short: -a). Pass a comma-separated list to build for multiple architectures."
|
Write-Host " -arch Build platform: x86, x64, arm or arm64 (short: -a). Pass a comma-separated list to build for multiple architectures."
|
||||||
|
@ -61,8 +59,6 @@ if ($help -or (($null -ne $properties) -and ($properties.Contains('/help') -or $
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
$subsetCategory = $subsetCategory.ToLowerInvariant()
|
|
||||||
|
|
||||||
# VS Test Explorer support for libraries
|
# VS Test Explorer support for libraries
|
||||||
if ($vs) {
|
if ($vs) {
|
||||||
. $PSScriptRoot\common\tools.ps1
|
. $PSScriptRoot\common\tools.ps1
|
||||||
|
@ -124,20 +120,6 @@ if (!$actionPassedIn) {
|
||||||
$arguments = "-restore -build"
|
$arguments = "-restore -build"
|
||||||
}
|
}
|
||||||
|
|
||||||
$solutionLeaf = if($properties.Length -gt 0) { $properties[0]; } else { $null }
|
|
||||||
|
|
||||||
if ($null -ne $solutionLeaf) {
|
|
||||||
if (Test-Path $solutionLeaf) {
|
|
||||||
$properties[0] = "-projects $(Resolve-Path $solutionLeaf)"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$dtb = Join-Path "$PSSCriptRoot\..\src\libraries" $solutionLeaf | Join-Path -ChildPath "$solutionLeaf.sln"
|
|
||||||
if (Test-Path $dtb) {
|
|
||||||
$properties[0] = "-projects $(Resolve-Path $dtb)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($argument in $PSBoundParameters.Keys)
|
foreach ($argument in $PSBoundParameters.Keys)
|
||||||
{
|
{
|
||||||
switch($argument)
|
switch($argument)
|
||||||
|
@ -177,4 +159,4 @@ if ($failedBuilds.Count -ne 0) {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
exit 0
|
exit 0
|
29
eng/build.sh
29
eng/build.sh
|
@ -18,12 +18,12 @@ usage()
|
||||||
{
|
{
|
||||||
echo "Common settings:"
|
echo "Common settings:"
|
||||||
echo " --subset Build a subset, print available subsets with -subset help"
|
echo " --subset Build a subset, print available subsets with -subset help"
|
||||||
echo " --subsetCategory Build a subsetCategory, print available subsetCategories with -subset help"
|
|
||||||
echo " --os Build operating system: Windows_NT, Linux, FreeBSD, OSX, tvOS, iOS or Android"
|
echo " --os Build operating system: Windows_NT, Linux, FreeBSD, OSX, tvOS, iOS or Android"
|
||||||
echo " --arch Build platform: x86, x64, arm, armel or arm64"
|
echo " --arch Build platform: x86, x64, arm, armel or arm64"
|
||||||
echo " --configuration Build configuration: Debug, Release or [CoreCLR]Checked (short: -c)"
|
echo " --configuration Build configuration: Debug, Release or [CoreCLR]Checked (short: -c)"
|
||||||
echo " --runtimeConfiguration Runtime build configuration: Debug, Release or [CoreCLR]Checked"
|
echo " --runtimeConfiguration Runtime build configuration: Debug, Release or [CoreCLR]Checked"
|
||||||
echo " --librariesConfiguration Libraries build configuration: Debug or Release"
|
echo " --librariesConfiguration Libraries build configuration: Debug or Release"
|
||||||
|
echo " --projects <value> Project or solution file(s) to build"
|
||||||
echo " --verbosity MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
echo " --verbosity MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||||
echo " --binaryLog Output binary log (short: -bl)"
|
echo " --binaryLog Output binary log (short: -bl)"
|
||||||
echo " --cross Optional argument to signify cross compilation"
|
echo " --cross Optional argument to signify cross compilation"
|
||||||
|
@ -82,9 +82,6 @@ initDistroRid()
|
||||||
arguments=''
|
arguments=''
|
||||||
cmakeargs=''
|
cmakeargs=''
|
||||||
extraargs=''
|
extraargs=''
|
||||||
build=false
|
|
||||||
subsetCategory=''
|
|
||||||
checkedSolutionBuild=false
|
|
||||||
crossBuild=0
|
crossBuild=0
|
||||||
|
|
||||||
source $scriptroot/native/init-os-and-arch.sh
|
source $scriptroot/native/init-os-and-arch.sh
|
||||||
|
@ -100,11 +97,6 @@ while [[ $# > 0 ]]; do
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
-subsetcategory)
|
|
||||||
subsetCategory="$(echo "$2" | awk '{print tolower($0)}')"
|
|
||||||
arguments="$arguments /p:SubsetCategory=$subsetCategory"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-subset)
|
-subset)
|
||||||
arguments="$arguments /p:Subset=$2"
|
arguments="$arguments /p:Subset=$2"
|
||||||
shift 2
|
shift 2
|
||||||
|
@ -132,11 +124,6 @@ while [[ $# > 0 ]]; do
|
||||||
arguments="$arguments /p:BuildAllConfigurations=true"
|
arguments="$arguments /p:BuildAllConfigurations=true"
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
-build)
|
|
||||||
build=true
|
|
||||||
arguments="$arguments -build"
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
-testscope)
|
-testscope)
|
||||||
arguments="$arguments /p:TestScope=$2"
|
arguments="$arguments /p:TestScope=$2"
|
||||||
shift 2
|
shift 2
|
||||||
|
@ -176,19 +163,7 @@ while [[ $# > 0 ]]; do
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
ea=$1
|
extraargs="$extraargs $1"
|
||||||
|
|
||||||
if [[ $checkedSolutionBuild == false ]]; then
|
|
||||||
checkedSolutionBuild=true
|
|
||||||
|
|
||||||
if [[ -d "$1" ]]; then
|
|
||||||
ea="-projects $1"
|
|
||||||
elif [[ -d "$scriptroot/../src/libraries/$1/$1.sln" ]]; then
|
|
||||||
ea="-projects $scriptroot/../src/libraries/$1/$1.sln"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
extraargs="$extraargs $ea"
|
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -19,7 +19,7 @@ if ($buildWindowsContainers)
|
||||||
# Due to size concerns, we don't currently do docker builds on windows.
|
# Due to size concerns, we don't currently do docker builds on windows.
|
||||||
# Build on the host machine, then simply copy artifacts to the target docker image.
|
# Build on the host machine, then simply copy artifacts to the target docker image.
|
||||||
# This should result in significantly lower build times, for now.
|
# This should result in significantly lower build times, for now.
|
||||||
& "$REPO_ROOT_DIR/build.cmd" -ci -subsetcategory coreclr-libraries -runtimeconfiguration release -c $configuration
|
& "$REPO_ROOT_DIR/build.cmd" -ci -subset clr+libs -runtimeconfiguration release -c $configuration
|
||||||
|
|
||||||
# Dockerize the build artifacts
|
# Dockerize the build artifacts
|
||||||
if($privateAspNetCore)
|
if($privateAspNetCore)
|
||||||
|
|
|
@ -8,7 +8,7 @@ WORKDIR /repo
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
ARG CONFIGURATION=Release
|
ARG CONFIGURATION=Release
|
||||||
RUN ./build.sh -ci -subsetcategory coreclr-libraries -runtimeconfiguration release -c $CONFIGURATION
|
RUN ./build.sh -ci -subset clr+libs -runtimeconfiguration release -c $CONFIGURATION
|
||||||
|
|
||||||
FROM $SDK_BASE_IMAGE as target
|
FROM $SDK_BASE_IMAGE as target
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ jobs:
|
||||||
installDotnet: true
|
installDotnet: true
|
||||||
|
|
||||||
# Build Private CoreLib
|
# Build Private CoreLib
|
||||||
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subsetCategory coreclr -subset corelib $(crossArg) -arch $(archType) -c $(buildConfig) $(officialBuildIdArg) -ci
|
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib $(crossArg) -arch $(archType) -c $(buildConfig) $(officialBuildIdArg) -ci
|
||||||
displayName: Build System.Private.CoreLib
|
displayName: Build System.Private.CoreLib
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ jobs:
|
||||||
displayName: Build Cross OS Linux DAC for Windows
|
displayName: Build Cross OS Linux DAC for Windows
|
||||||
|
|
||||||
# Build CoreCLR Managed Components
|
# Build CoreCLR Managed Components
|
||||||
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subsetCategory coreclr -subset corelib-nativecorelib-tools-packages $(crossArg) -arch $(archType) -c $(buildConfig) $(officialBuildIdArg) -ci
|
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib+clr.nativecorelib+clr.tools+clr.packages $(crossArg) -arch $(archType) -c $(buildConfig) $(officialBuildIdArg) -ci
|
||||||
displayName: Build managed product components and packages
|
displayName: Build managed product components and packages
|
||||||
|
|
||||||
# Build native test components
|
# Build native test components
|
||||||
|
|
|
@ -91,4 +91,4 @@ jobs:
|
||||||
jobParameters:
|
jobParameters:
|
||||||
testGroup: innerloop
|
testGroup: innerloop
|
||||||
nameSuffix: Mono_Libraries
|
nameSuffix: Mono_Libraries
|
||||||
buildArgs: -subsetCategory libraries-mono /p:RuntimeFlavor=Mono
|
buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono
|
|
@ -106,7 +106,7 @@ jobs:
|
||||||
|
|
||||||
- name: BaseJobBuildCommand
|
- name: BaseJobBuildCommand
|
||||||
value: >-
|
value: >-
|
||||||
build.cmd -subsetcategory installer -restore -build -test -ci
|
build.cmd -subset installer -test -ci
|
||||||
-configuration $(_BuildConfig)
|
-configuration $(_BuildConfig)
|
||||||
$(LiveOverridePathArgs)
|
$(LiveOverridePathArgs)
|
||||||
$(CommonMSBuildArgs)
|
$(CommonMSBuildArgs)
|
||||||
|
@ -121,7 +121,7 @@ jobs:
|
||||||
|
|
||||||
- name: BaseJobBuildCommand
|
- name: BaseJobBuildCommand
|
||||||
value: >-
|
value: >-
|
||||||
$(Build.SourcesDirectory)/build.sh -subsetcategory installer -restore -build -test -ci
|
$(Build.SourcesDirectory)/build.sh -subset installer -test -ci
|
||||||
-configuration $(_BuildConfig)
|
-configuration $(_BuildConfig)
|
||||||
$(LiveOverridePathArgs)
|
$(LiveOverridePathArgs)
|
||||||
$(CommonMSBuildArgs)
|
$(CommonMSBuildArgs)
|
||||||
|
@ -136,7 +136,7 @@ jobs:
|
||||||
|
|
||||||
- name: BaseJobBuildCommand
|
- name: BaseJobBuildCommand
|
||||||
value: >-
|
value: >-
|
||||||
$(Build.SourcesDirectory)/build.sh -subsetcategory installer --restore --build --ci --test
|
$(Build.SourcesDirectory)/build.sh -subset installer --ci --test
|
||||||
-configuration $(_BuildConfig)
|
-configuration $(_BuildConfig)
|
||||||
-os ${{ parameters.osGroup }}
|
-os ${{ parameters.osGroup }}
|
||||||
-arch ${{ parameters.archType }}
|
-arch ${{ parameters.archType }}
|
||||||
|
@ -175,7 +175,7 @@ jobs:
|
||||||
|
|
||||||
- ${{ if eq(parameters.isOfficialBuild, true) }}:
|
- ${{ if eq(parameters.isOfficialBuild, true) }}:
|
||||||
- name: BuildScript
|
- name: BuildScript
|
||||||
value: ./eng/install-nuget-credprovider-then-build.sh --subsetCategory installer
|
value: ./eng/install-nuget-credprovider-then-build.sh --subset installer
|
||||||
- name: MSBuildScript
|
- name: MSBuildScript
|
||||||
value: /root/runtime/eng/install-nuget-credprovider-then-msbuild.sh
|
value: /root/runtime/eng/install-nuget-credprovider-then-msbuild.sh
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ jobs:
|
||||||
|
|
||||||
- name: BuildArguments
|
- name: BuildArguments
|
||||||
value: >-
|
value: >-
|
||||||
-subsetcategory installer -restore -build -test -ci
|
-subset installer -test -ci
|
||||||
/p:CrossBuild=${{ ne(parameters.crossrootfsDir, '') }}
|
/p:CrossBuild=${{ ne(parameters.crossrootfsDir, '') }}
|
||||||
/p:PortableBuild=$(_PortableBuild)
|
/p:PortableBuild=$(_PortableBuild)
|
||||||
/p:SkipTests=$(SkipTests)
|
/p:SkipTests=$(SkipTests)
|
||||||
|
|
|
@ -119,7 +119,7 @@ jobs:
|
||||||
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
|
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
|
||||||
- _buildScript: ./$(_buildScriptFileName)$(scriptExt)
|
- _buildScript: ./$(_buildScriptFileName)$(scriptExt)
|
||||||
|
|
||||||
- _buildArguments: -subsetcategory libraries -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_testScopeArg) $(_runtimeOSArg) $(_msbuildCommonParameters) $(_runtimeArtifactsPathArg) $(_crossBuildPropertyArg)
|
- _buildArguments: -configuration ${{ parameters.buildConfig }} -ci -arch ${{ parameters.archType }} $(_finalFrameworkArg) $(_testScopeArg) $(_runtimeOSArg) $(_msbuildCommonParameters) $(_runtimeArtifactsPathArg) $(_crossBuildPropertyArg)
|
||||||
- ${{ parameters.variables }}
|
- ${{ parameters.variables }}
|
||||||
|
|
||||||
dependsOn:
|
dependsOn:
|
||||||
|
|
|
@ -59,12 +59,14 @@ jobs:
|
||||||
- ${{ format('coreclr_corelib_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, 'linux', parameters.osSubgroup, 'x64', parameters.liveRuntimeBuildConfig) }}
|
- ${{ format('coreclr_corelib_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, 'linux', parameters.osSubgroup, 'x64', parameters.liveRuntimeBuildConfig) }}
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
|
- _subset: libs
|
||||||
- _addtionalBuildArguments: ''
|
- _addtionalBuildArguments: ''
|
||||||
- ${{ parameters.variables }}
|
- ${{ parameters.variables }}
|
||||||
- ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
|
- ${{ if eq(parameters.osGroup, 'WebAssembly') }}:
|
||||||
- EMSDK_PATH: $(Build.BinariesDirectory)/emsdk
|
- EMSDK_PATH: $(Build.BinariesDirectory)/emsdk
|
||||||
- ${{ if eq(parameters.runTests, true) }}:
|
- ${{ if eq(parameters.runTests, true) }}:
|
||||||
- _addtionalBuildArguments: /p:IncludeLibrariesTestSubset=true /p:ArchiveTests=true
|
- _subset: libs+libs.tests
|
||||||
|
- _addtionalBuildArguments: /p:ArchiveTests=true
|
||||||
|
|
||||||
- ${{ parameters.variables }}
|
- ${{ parameters.variables }}
|
||||||
|
|
||||||
|
@ -93,6 +95,7 @@ jobs:
|
||||||
installDotnet: true
|
installDotnet: true
|
||||||
|
|
||||||
- script: $(_buildScript)
|
- script: $(_buildScript)
|
||||||
|
-subset $(_subset)
|
||||||
$(_buildArguments)
|
$(_buildArguments)
|
||||||
$(_addtionalBuildArguments)
|
$(_addtionalBuildArguments)
|
||||||
displayName: Restore and Build Product
|
displayName: Restore and Build Product
|
||||||
|
|
|
@ -56,7 +56,7 @@ jobs:
|
||||||
cleanUnpackFolder: false
|
cleanUnpackFolder: false
|
||||||
|
|
||||||
- script: $(_buildScript)
|
- script: $(_buildScript)
|
||||||
-subset pretest-libtests
|
-subset libs.pretest+libs.tests
|
||||||
$(_buildArguments)
|
$(_buildArguments)
|
||||||
$(_archiveTestsParameter)
|
$(_archiveTestsParameter)
|
||||||
displayName: Restore and Build
|
displayName: Restore and Build
|
||||||
|
|
|
@ -50,7 +50,7 @@ steps:
|
||||||
displayName: Test linuxclient connection to web server
|
displayName: Test linuxclient connection to web server
|
||||||
|
|
||||||
- bash: |
|
- bash: |
|
||||||
docker exec linuxclient bash -c '/repo/build.sh -subsetcategory coreclr-libraries -runtimeconfiguration release -ci'
|
docker exec linuxclient bash -c '/repo/build.sh -subset clr+libs -runtimeconfiguration release -ci'
|
||||||
displayName: Build product sources
|
displayName: Build product sources
|
||||||
|
|
||||||
- bash: |
|
- bash: |
|
||||||
|
|
|
@ -73,7 +73,7 @@ jobs:
|
||||||
|
|
||||||
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
|
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
|
||||||
- script: $(_buildScript)
|
- script: $(_buildScript)
|
||||||
-subset pretest
|
-subset libs.pretest
|
||||||
$(_buildArguments)
|
$(_buildArguments)
|
||||||
/p:RuntimeFlavor=${{ parameters.runtimeFlavor }}
|
/p:RuntimeFlavor=${{ parameters.runtimeFlavor }}
|
||||||
/bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/overrideRuntimeFromLiveDrop.binlog
|
/bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/overrideRuntimeFromLiveDrop.binlog
|
||||||
|
|
|
@ -92,10 +92,10 @@ jobs:
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
|
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
|
||||||
- script: ./build$(scriptExt) -subsetcategory mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci /p:MonoEnableLLVM=${{ parameters.llvm }}
|
- script: ./build$(scriptExt) -subset mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci /p:MonoEnableLLVM=${{ parameters.llvm }}
|
||||||
displayName: Build product
|
displayName: Build product
|
||||||
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
|
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
|
||||||
- script: build$(scriptExt) -subsetcategory mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci /p:MonoEnableLLVM=${{ parameters.llvm }}
|
- script: build$(scriptExt) -subset mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci /p:MonoEnableLLVM=${{ parameters.llvm }}
|
||||||
displayName: Build product
|
displayName: Build product
|
||||||
|
|
||||||
# Publish product output directory for consumption by tests.
|
# Publish product output directory for consumption by tests.
|
||||||
|
@ -111,10 +111,10 @@ jobs:
|
||||||
|
|
||||||
# Build packages
|
# Build packages
|
||||||
- ${{ if and(ne(parameters.llvm, true), ne(parameters.osGroup, 'Windows_NT')) }}:
|
- ${{ if and(ne(parameters.llvm, true), ne(parameters.osGroup, 'Windows_NT')) }}:
|
||||||
- script: ./build$(scriptExt) -subsetcategory mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoEnableLLVM=${{ parameters.llvm }} -pack $(OutputRidArg)
|
- script: ./build$(scriptExt) -subset mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoEnableLLVM=${{ parameters.llvm }} -pack $(OutputRidArg)
|
||||||
displayName: Build nupkg
|
displayName: Build nupkg
|
||||||
- ${{ if and(ne(parameters.llvm, true), eq(parameters.osGroup, 'Windows_NT')) }}:
|
- ${{ if and(ne(parameters.llvm, true), eq(parameters.osGroup, 'Windows_NT')) }}:
|
||||||
- script: build$(scriptExt) -subsetcategory mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoEnableLLVM=${{ parameters.llvm }} -pack $(OutputRidArg)
|
- script: build$(scriptExt) -subset mono -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoEnableLLVM=${{ parameters.llvm }} -pack $(OutputRidArg)
|
||||||
displayName: Build nupkg
|
displayName: Build nupkg
|
||||||
|
|
||||||
# Save packages using the prepare-signed-artifacts format.
|
# Save packages using the prepare-signed-artifacts format.
|
||||||
|
|
|
@ -43,7 +43,7 @@ jobs:
|
||||||
|
|
||||||
- script: >-
|
- script: >-
|
||||||
build.cmd -ci
|
build.cmd -ci
|
||||||
-subsetcategory installer -subset publish
|
-subset installer.publish
|
||||||
-configuration Release
|
-configuration Release
|
||||||
/p:PublishRidAgnosticPackagesFromPlatform=${{ parameters.PublishRidAgnosticPackagesFromPlatform }}
|
/p:PublishRidAgnosticPackagesFromPlatform=${{ parameters.PublishRidAgnosticPackagesFromPlatform }}
|
||||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||||
|
|
|
@ -14,7 +14,7 @@ dotnet/AspNetCore code paths:
|
||||||
|
|
||||||
## Building dotnet/runtime code:
|
## Building dotnet/runtime code:
|
||||||
- https://github.com/dotnet/runtime/tree/master/docs/workflow
|
- https://github.com/dotnet/runtime/tree/master/docs/workflow
|
||||||
- Run *build.cmd* from the root once: `PS D:\github\runtime> .\build.cmd -runtimeConfiguration Release -subsetCategory coreclr-libraries`
|
- Run *build.cmd* from the root once: `PS D:\github\runtime> .\build.cmd -runtimeConfiguration Release -subset clr+libs`
|
||||||
- Build the individual projects:
|
- Build the individual projects:
|
||||||
- `PS D:\github\dotnet\src\libraries\Common\tests> dotnet build`
|
- `PS D:\github\dotnet\src\libraries\Common\tests> dotnet build`
|
||||||
- `PS D:\github\dotnet\src\libraries\System.Net.Http\src> dotnet build`
|
- `PS D:\github\dotnet\src\libraries\System.Net.Http\src> dotnet build`
|
||||||
|
|
|
@ -9,7 +9,7 @@ generated per theory input.
|
||||||
|
|
||||||
## Prereqs
|
## Prereqs
|
||||||
|
|
||||||
- Build runtime from root to ensure that the testhost directory of assemblies is published, e.g. `cd d:\repos\runtime & .\build.cmd -subsetCategory libraries`.
|
- Build runtime from root to ensure that the testhost directory of assemblies is published, e.g. `cd d:\repos\runtime & .\build.cmd -subset libs`.
|
||||||
- Build the test assembly desired, e.g `cd src\libraries\System.Runtime\tests & dotnet build`.
|
- Build the test assembly desired, e.g `cd src\libraries\System.Runtime\tests & dotnet build`.
|
||||||
|
|
||||||
## Running the StaticTestGenerator utility
|
## Running the StaticTestGenerator utility
|
||||||
|
|
|
@ -49,7 +49,7 @@ Now build the repo as you would on a regular dev machine:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /repo
|
cd /repo
|
||||||
./build.sh --subsetCategory libraries
|
./build.sh --subset libs
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you can run the enterprise tests. Currently, there are tests for System.Net.Http and System.Net.Security. You can run them in the same way you already run tests in the repo.
|
Now you can run the enterprise tests. Currently, there are tests for System.Net.Http and System.Net.Security. You can run them in the same way you already run tests in the repo.
|
||||||
|
|
Loading…
Reference in New Issue