* Inline some of the options for the new crossgen2_publish project.
* Resolve TODOs in targetingpacks.targets
* Crossgen1 is long gone. Don't try to discover it in our override targets.
* Move ReadyToRun.targets infra into the shared repo infrastructure and have projects automatically opt-in to it instead of the LKG crossgen2 when they are targeting the live build.
* Remove extraneous property set (the same value is calculated automatically already)
* Remove outdated comment.
* Fix NativeAOT and installer legs
* Condition turning off pack downloads based on opt-in to local pack usage.
* Use the LKG host instead of the 7.0 host as the fallback for NativeExports.
* Apply suggestions from code review
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
* Remove AdditionalProperties as they aren't needed (global properties on the command line are already transitive)
* PR feedback
* Hook into the targets pipeline to avoid overridding targets for R2Ring projects that reference the live framework packs. Move the "target override" logic back to where we build the runtime pack as that's the only place where we need crossgen2 and can't reference the runtime pack (as we're building it).
* Don't set CoreCLRArtifactsPath manually.
* PR feedback
---------
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Follow-up on #32451
Follow-up on #80074
In #43651, the "Windows" OS name was lowercased to achieve target frameworks with RIDs in them. At that time, the original plan was to lowercase all TargetOS values but that had to be cut because of resources. This PR finishes that and updates build systems, YML, markdowns and managed components.
To not break existing developer workflows, the passed-in -os value is automatically lower-cased in the script entry points and validated in the msbuild entry point.
* Make Is*Project properties unambiguous
Currently these properties exist which categorize projects:
- IsReferenceAssembly: The project's parent directory is 'ref'
- IsGeneratorProject: The project's parent directory is 'gen'
- IsTestProject: The project is located somewhere under a '/tests/'
directory and the project name's suffix is either
'.Tests' or '.UnitTests'.
- IsTrimmingTestProject: Same as IsTestProject but the project name's
suffix is '.TrimmingTests'.
- IsTestSupportProject: The project is located somewhere under a
'/tests/' directory and the above IsTestProject
property is false.
- UsingMicrosoftNoTargetsSdk: The project uses the NoTargets msbuild SDK
- UsingMicrosoftTraversalSdk: The project uses the Traversal msbuild SDK
- IsRuntimeAssembly: True when all above is false
- IsSourceProject: True when the project's parent directory is 'src'
The IsRuntimeAssembly and IsSourceProject properties meanings are
ambiguous and the property names aren't consistent (IsReferenceAssembly
vs IsGeneratorProject).
I'm changing the above to the following:
- **IsReferenceSourceProject: The project's parent directory is 'ref'
or the parent of the parent directory is 'ref'**
- IsGeneratorProject: The project's parent directory is 'gen'
- IsTestProject: The project is located somewhere under a '/tests/'
directory and the project name's suffix is either
'.Tests' or '.UnitTests'.
- IsTrimmingTestProject: Same as IsTestProject but the project name's
suffix is '.TrimmingTests'.
- IsTestSupportProject: The project is located somewhere under a
'/tests/' directory and the above IsTestProject
**and IsTrimmingTestProject** props are false.
- UsingMicrosoftNoTargetsSdk: The project uses the NoTargets msbuild SDK
- UsingMicrosoftTraversalSdk: The project uses the Traversal msbuild SDK
- IsSourceProject: **True when all above is false.**
* React to PR feedback
* Set TargetsMobile=true on Browser TargetOS
* Build the wasm runtimes earlier during the libs build so they end up in lib-runtime-packs.
* Add emsdk_env.sh into .gitignore
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
* Add Android build configurations
* Enable System.Globalization.Native on Android
Dynamically load the libicu from the system. Android NDK doesn't ship with icu headers so for now define prototypes for all the functions we use ourselves.
* Add temporary stub HashProvider that throws NIE on Android
We still need to hook up the native System.Security.Native library.
Unblocks Xamarin.Forms startup.
* Use Arcade-provided IBCMerge support.
* Clean up build.sh as well.
* Restore internal tools on Windows and Unix instead of just Windows.
* Remove unused item metadata.
* Restores IBC data for both Linux and Windows on all platforms
* Chooses the right IBC data based on the target OS
* When target OS isn't anything specific (like, e.g. System.Linq and other assemblies that are not OS specific), embeds Windows IBC data
Commit migrated from ef2ee1291e
An arcade change broke IBC data embedding and we were not doing it.
This fixes that issue and also bumps embedded IBC from being `partial` to `full`.
Commit migrated from 719eee95fa