197 Commits
Author SHA1 Message Date
Matt Mitchell 96159b2e5e Update unified build controls (#98330)
Generally a straight port. Removed ArcadeBuildFromSource and ArcadeBuildVertical and replaced with DotNetBuild.
2024-02-15 18:48:18 +01:00
Viktor Hofer bdd5d32572 Use NetTool* TFM properties for msbuild tasks (#98098)
... and remove the custom defined ones.
2024-02-07 17:21:30 +01:00
Alexander Köplinger c3032e05cc Merge branch 'main' into 9.0-sdk 2023-12-21 10:49:00 +01:00
Ankit Jain a36a860f74 [wasm] Extract src/mono/browser from src/mono/wasm (#95940)
* [wasm] Extract src/mono/browser from src/mono/wasm, and update to track changes

* [wasm] Makefile - update to remove some unrelated targets

* [wasm] Rename wasm.proj to browser.proj - feedback from @ maraf

* Add the renamed browser.proj

* address review feedback from @ maraf

* review feedback from @ pavelsavara

* address review feedback from @ maraf
2023-12-19 10:03:41 -05:00
Jeremy Koritzinsky caf570e591 Move to building with the 9.0 SDK and move our ToolCurrent TFM to 9.0 2023-12-13 14:16:14 -08:00
Ankit Jain a128c1503a [wasm/wasi] Consolidate build targets (#95775)
* [wasm/wasi] Consolidate build targets

Current state of build files:
```
    wasm: WasmApp.props, WasmApp.targets, WasmApp.Native.targets
    wasi: WasiApp.props, WasiApp.targets, WasiApp.Native.targets
``

The wasm, and wasi build have lot of shared code but that is not
representative in the actual files, since the wasi targets started life
as a quick-copy-comment-out-bits of the wasm targets.

This commit consolidates these into:
```
    common: WasmApp.Common.props, WasmApp.Common.targets
    wasm : WasmApp.props, WasmApp.targets
    wasi : WasiApp.props, WasiApp.targets
```

 ## `WasmApp.Common.{props,targets}`

This has all the common parts of the build for browser-wasm, and wasi,
and includes bits from `WasmApp.{props,targets}`, and
`WasmApp.Native.{props,targets}`.

- The top level target remains the same - `WasmBuildApp`.
- There are a few "public" targets that can be hooked into:
    - `PrepareInputsForWasmBuild`
    - `WasmGenerateAppBundle`
    - `PrepareForWasmBuildNative`
    - `WasmLinkDotNet`

- all these public targets have corresponding `*DependsOn` properties
  which can be used for extending the build

note: this commit does not add a public target for AOT, but it might be
added in future.

 ## WasmApp.{props,targets}

This is for `browser-wasm` projects. The file might be renamed in
future.

 ## WasiApp.{props,targets}

This is for `wasi-wasm` projects. `ILStrip` becomes usable as a feature
for `wasi-wasm` because of this consolidation.

* [wasi] WBT: Use TestOutputWrapper

* [wasm] WBT: Track target name changes

* [wasi] WBT: Add new tests

* cleanup

* cleanup

* address feedback

* address feedback
2023-12-11 14:45:58 -06:00
Carlos Sánchez López 35b866ce6a Add XUnitLogChecker to log libraries dumps, do not enable for NativeAOT tests (#94868)
* Add XUnitLogChecker to log libraries dumps (#93906)

Libraries CI failures that generate dumps will now show the dump output in the console log itself.

* Change NativeAOT condition

* Pass the global property set to false in the post build step.

* Address suggestion:
- Avoid using yml extraHelixArguments.
- Add the new embedded SetCommands optional section in runner scripts.
- Set __IsXUnitLogCheckerSupported in tests.targets as SetScriptCommand items instead of directly in sendtohelixhelp.proj.

* Only add XUnitLogChecker as HelixPayload if its directory is found. Whether it was built or not has already been decided before, and the runner scripts know when to execute it.
2023-11-29 09:59:14 -08:00
Carlos Sánchez López e58f897a14 Revert "Add XUnitLogChecker to log libraries dumps (#93906)" (#94807)
This reverts commit d561f390b8.
2023-11-15 13:08:41 -08:00
Carlos Sánchez López d561f390b8 Add XUnitLogChecker to log libraries dumps (#93906)
Libraries CI failures that generate dumps will now show the dump output in the console log itself.
2023-11-14 20:09:31 -08:00
Viktor Hofer 7292b7104e Update APICompat baseline version to 8.0.0 (#94712)
* Update APICompat baseline version to 8.0.0

* Update packaging.targets

* Update packaging.targets

* Update ApiCompatBaseline.NetCoreAppLatestStable.xml

* Update Versions.props

* Update ApiCompat.proj
2023-11-14 20:11:51 +01:00
Alexander Köplinger f0208617e3 Update comment with min OS version locations to update (#93180) 2023-10-08 11:07:06 +02:00
Viktor Hofer bdceab9718 Condition the use of NetCoreAppPrevious TFM (#92941)
* Condition the use of NetCoreAppPrevious TFM

NuGet doesn't support duplicate TFMs in the TargetFrameworks string.
Condition the use of NetCoreAppPrevious TFMs until NuGet supports that
(which is planned afaik).

* Fix ODBC project TFM
2023-10-03 19:24:43 +02:00
3b9b4fd5fc Move portable RID graph into runtime and clean-up (#92211)
* Move portable RID graph into runtime and clean-up

1. Move portable RID graph into runtime
2. Allow updates to both the non-portable and portable RID graphs under
   source build.
3. Clean-up project and remove hacks

* Update README and delete test

* Fix RID graph update when the key already exists

* Update src/libraries/Microsoft.NETCore.Platforms/readme.md

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* Update src/libraries/Microsoft.NETCore.Platforms/readme.md

Co-authored-by: Andy Gocke <angocke@microsoft.com>

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Andy Gocke <angocke@microsoft.com>
2023-09-19 23:29:29 +02:00
Sven BoemerandViktor Hofer faf883db18 Use live illink to trim framework (#91233)
* Use live illink

* Include ILLink.Tasks for subsets that depend on it

Also prevent build-native.proj from importing illink.targets.

* Address feedback

- Don't reference ILLink.Tasks from subsets
- Use PackageReference from illink.tasks
- Import props from source directory

  Add extensibility to shipping targets to make this possible.
- Set IsSourceProject false for .proj files

* Fix TFM, Configuration, PrivateAssets

* Address feedback

Avoid needing to reorganize SDK imports

* Fix typo

* Fix configuration in ToolsILLinkDir

* Don't change IsSourceProject

* Update eng/illink.targets

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>

* Fix tools configuration

* Normalize directory separator chars

We agreed on (at least under src/libraries) to use the Windows directory separator char `\` instead of a forward slash. This helps when looking at binlogs as those then correctly display a path.

---------

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2023-08-31 19:10:25 +02:00
Fan Yang 02bcb36e8d Update TFM to net9.0 2023-08-23 12:10:17 -07:00
Steve Pfister 39f4921c4a [iOS] Remove cmake build dependency for library mode (#89869)
This change removes cmake as a build dependency and instead uses clang directly when building for iOS/tvOS/Macatalyst library mode.
2023-08-07 23:02:08 -04:00
Viktor HoferandElinor Fung f70a7dc409 Flow TasksConfiguration in build & specify generator config (#84931)
* Propagate TasksConfiguration when building tests

* Mark tasks projects as non-source projects and default to Release for CI/official builds(#84488)

* Update paths when copying to CORE_ROOT

* Flow TasksConfiguration in build & specify generator config

1. Flow the TasksConfiguration in the root build (Subsets.props)
2. Specify the LibrariesConfiguration explicitly when building the
   LibraryImport source generators.
3. Set tasks configuration to debug by default.

* Include the Subsets.props change

* Update tasks.proj

---------

Co-authored-by: Elinor Fung <elfung@microsoft.com>
2023-08-01 17:49:03 +02:00
Viktor Hofer b9c9964878 Enable the option to invoke APICompat in strict mode for ref-pack servicing (#88707)
* Fixes https://github.com/dotnet/runtime/issues/42961

Enable strict mode comparison during servicing when
`ApiCompatNetCoreAppBaselineVersion` is the current .NET version. When
the GA targeting pack is released, that property should be updated which
will turn on strict mode comparison and prohibits the addition of new
API.

Suppressing one error in the baseline file that showed-up because
out-of-band assemblies now being passed in as assembly references.

While at it I also cleaned-up how private assemblies are handled during
the build.

* PR feedback
2023-07-13 09:10:54 +02:00
Steve Pfister b3d2503a06 [Android] Add NdkToolFinder task & Fix up AOT app build (#88210)
Since we bumped to NDK 23, having the aot compiler itself generate shared libraries stopped working. This is due to NDK 23 moving most of the toolchain into a common bin directory. AS was left over in each of these directories as an alias to bin/<triple>-as.

This change adds a task to collect all of the important NDK toolchain paths. It also fixes up the aot build when AOTWithLibraryFiles is set to true and we want the aot compiler to produce shared libraries.
2023-07-06 07:22:37 -04:00
Viktor Hofer 8b25fd3822 Make sure that intellisense files are copied (#87603)
Fixes https://github.com/dotnet/runtime/issues/87585

When looking at the 8.0 Preview 5 SDK, xml files are missing for certain
assemblies. This is likely because of the TargetFramework condition in
intellisense.targets. Instead of conditioning on the rid-less net8.0
TFM, use the sfx.proj which already assemblies the shared framework and
targeting pack layout to copy the documentation files.

Additionally, remove the XmlDocDir and copy the files into the targeting
pack folder which was a difference between the "real" targeting pack and
the "fake" one that libraries generates.
2023-06-19 19:31:33 +02:00
Michal Strehovský a7f46777f3 Build integration support for Bionic in NativeAOT (#87595)
Doesn't actually work E2E because the inline threadstatics work broke our Android support (the one added in https://github.com/dotnet/corert/pull/8323).

```
  C:\Users\michals\.nuget\packages\microsoft.netcore.app.runtime.nativeaot.linux-bionic-arm64\8.0.0-preview.6.23307.4/r
  untimes/linux-bionic-arm64/\native\libRuntime.WorkstationGC.a(MiscStubs.S.o): In function `RhpGetInlinedThreadStaticB
  ase':
  /__w/1/s/src/coreclr/nativeaot/Runtime/arm64/MiscStubs.S:12: undefined reference to `tls_InlinedThreadStatics'
  /__w/1/s/src/coreclr/nativeaot/Runtime/arm64/MiscStubs.S:12: undefined reference to `tls_InlinedThreadStatics'
  /__w/1/s/src/coreclr/nativeaot/Runtime/arm64/MiscStubs.S:12: undefined reference to `tls_InlinedThreadStatics'
  /__w/1/s/src/coreclr/nativeaot/Runtime/arm64/MiscStubs.S:12: undefined reference to `tls_InlinedThreadStatics'
```
2023-06-16 14:25:31 +09:00
Sven BoemerandViktor Hofer 56c427bb4d Don't enable ILLink analyzers for unsupported TFMs (#87071)
* Don't enable ILLink analyzers for unsupported TFMs

This adds a condition to EnableSingleFileAnalyzer to prevent it from requiring
the ILLink pack that is only supported on netcoreapp3.0 and above.

Adding a condition on the TFM requires moving the setting into a targets file.

Also consolidates more of the analyzer logic into this file.

---------

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
2023-06-08 10:10:58 -07:00
Trung NguyenandAdeel Mujahid 445dac9e8e Initial build configuration for Haiku (#86303)
* Haiku: Initial configuration support

Initially recognize Haiku as a supported platform in
Directory.Build.props and all scripts in eng/**.

* Drop some unused configure values

Drop some unused configure values from tryrun.cmake,
configure.cmake and config.h.in.

* Simplify error message in build.sh

Simplified an error message for the `--os` option to avoid maintaining a duplicate list of OSes.

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
2023-05-17 08:10:39 -07:00
Tom Deseyn 6a5a704c35 Directory.Build.props: restore previous behavior when targetting 'other' TargetOSes from Windows. (#85246) 2023-05-03 11:13:51 -06:00
Tom Deseyn 2802c972f7 Directory.Build.props: don't overwrite PackageOS from source-build. (#85350) 2023-04-25 17:44:39 -06:00