Skip to content

Commit

Permalink
Enabled source-building with mono runtime on any architecture. (#14792)
Browse files Browse the repository at this point in the history
* Enabled source-building with mono runtime on any architecture.

Adds an argument to the top-level build script to use the mono
runtime, and sets the flags needed for the different repos
to work with mono.

* Sync with sdk patch.

* Remove patches.

* PR feedback.
  • Loading branch information
tmds committed Nov 15, 2022
1 parent 46a7f72 commit d62cd31
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions eng/SourceBuild.props
Expand Up @@ -11,6 +11,7 @@
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeNuGetPackageArchive=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeAdditionalSharedFrameworks=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeSharedFrameworksForBackwardsCompatibilityTests=false</InnerBuildArgs>
<InnerBuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(InnerBuildArgs) /p:DISABLE_CROSSGEN=true</InnerBuildArgs>
</PropertyGroup>
</Target>

Expand Down
5 changes: 5 additions & 0 deletions src/SourceBuild/tarball/content/Directory.Build.props
Expand Up @@ -24,6 +24,11 @@

<UseStableVersions Condition="'$(UseStableVersions)' == ''">false</UseStableVersions>

<SourceBuildUseMonoRuntime>false</SourceBuildUseMonoRuntime>
<!-- These architectures are only supported with mono runtime -->
<SourceBuildUseMonoRuntime Condition="'$(BuildArchitecture)' == 's390x'">true</SourceBuildUseMonoRuntime>
<SourceBuildUseMonoRuntime Condition="'$(BuildArchitecture)' == 'ppc64le'">true</SourceBuildUseMonoRuntime>

<!-- new supported portable/nonportable options. These control whether to build portable runtime
or portable SDK. The PortableBuild flag is only set in runtime-portable.proj and should
no longer be passed in. -->
Expand Down
4 changes: 4 additions & 0 deletions src/SourceBuild/tarball/content/build.sh
Expand Up @@ -9,6 +9,7 @@ usage() {
echo " --online build using online sources"
echo " --poison build with poisoning checks"
echo " --run-smoke-test don't build; run smoke tests"
echo " --use-mono-runtime output uses the mono runtime"
echo " --with-packages <dir> use the specified directory of previously-built packages"
echo " --with-sdk <dir> use the SDK in the specified directory for bootstrapping"
echo "use -- to send the remaining arguments to MSBuild"
Expand Down Expand Up @@ -45,6 +46,9 @@ while :; do
runningSmokeTests=true
MSBUILD_ARGUMENTS+=( "/t:RunSmokeTest" )
;;
--use-mono-runtime)
MSBUILD_ARGUMENTS+=( "/p:SourceBuildUseMonoRuntime=true" )
;;
--with-packages)
CUSTOM_PACKAGES_DIR="$(cd -P "$2" && pwd)"
if [ ! -d "$CUSTOM_PACKAGES_DIR" ]; then
Expand Down
Expand Up @@ -143,6 +143,7 @@
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:AdditionalSourceBuiltNupkgCacheDir="$(SourceBuiltPackagesPath)"</StandardSourceBuildArgs>
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)"</StandardSourceBuildArgs>
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)"</StandardSourceBuildArgs>
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime)</StandardSourceBuildArgs>

<StandardSourceBuildCommand>$(ProjectDirectory)\build$(ShellExtension)</StandardSourceBuildCommand>
</PropertyGroup>
Expand Down

0 comments on commit d62cd31

Please sign in to comment.