diff --git a/Directory.Build.props b/Directory.Build.props
index 719838f0a0d..7f5b362cb34 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -7,7 +7,7 @@
$(MSBuildThisFileDirectory)
true
net9.0
- $(DotNetBuildFromSource)
+ $(DotNetBuildSourceOnly)
-
+
$(NetCurrent)
diff --git a/Directory.Build.targets b/Directory.Build.targets
index df0677f7673..c43425cc369 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -26,7 +26,7 @@
When .NET gets built from source, make the SDK aware there are bootstrap packages
for Microsoft.NETCore.App.Runtime. and Microsoft.NETCore.App.Crossgen2..
-->
-
+
%(RuntimePackRuntimeIdentifiers);$(NETCoreSdkRuntimeIdentifier)
diff --git a/FSharpBuild.Directory.Build.props b/FSharpBuild.Directory.Build.props
index b2b9ae303cb..148d9c95116 100644
--- a/FSharpBuild.Directory.Build.props
+++ b/FSharpBuild.Directory.Build.props
@@ -73,8 +73,8 @@
false
-
-
+
+
false
diff --git a/eng/Build.ps1 b/eng/Build.ps1
index a6bda85ef6b..6305083d0df 100644
--- a/eng/Build.ps1
+++ b/eng/Build.ps1
@@ -292,6 +292,8 @@ function BuildSolution([string] $solutionName, $nopack) {
# Do not set the property to true explicitly, since that would override value projects might set.
$suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" }
+ $sourceBuildArgs = if ($sourceBuild) { "/p:DotNetBuildSourceOnly=true /p:DotNetBuildRepo=true" } else { "" }
+
$BUILDING_USING_DOTNET_ORIG = $env:BUILDING_USING_DOTNET
$env:BUILDING_USING_DOTNET="false"
@@ -314,10 +316,10 @@ function BuildSolution([string] $solutionName, $nopack) {
/p:QuietRestore=$quietRestore `
/p:QuietRestoreBinaryLog=$binaryLog `
/p:TestTargetFrameworks=$testTargetFrameworks `
- /p:DotNetBuildFromSource=$sourceBuild `
/p:CompressAllMetadata=$CompressAllMetadata `
/p:BuildNoRealsig=$buildnorealsig `
/v:$verbosity `
+ $sourceBuildArgs `
$suppressExtensionDeployment `
@properties
diff --git a/eng/SourceBuild.props b/eng/DotNetBuild.props
similarity index 87%
rename from eng/SourceBuild.props
rename to eng/DotNetBuild.props
index c1759d53260..c7bc688ba3e 100644
--- a/eng/SourceBuild.props
+++ b/eng/DotNetBuild.props
@@ -13,7 +13,7 @@
-->
+ Condition="'$(DotNetBuildSourceOnly)' == 'true'">
$(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\Microsoft.FSharp.Compiler.sln"
@@ -26,7 +26,7 @@
+ Condition="'$(DotNetBuildSourceOnly)' == 'true'">
--tfm $(SourceBuildBootstrapTfm)
@@ -41,9 +41,9 @@
-bl enables the binlogs for the tools and Proto builds, which make debugging failures here easier
-->
+ EnvironmentVariables="@(InnerBuildEnv)" />
diff --git a/eng/build.sh b/eng/build.sh
index 8544de1e72e..90260cbfa4f 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -241,6 +241,11 @@ function BuildSolution {
if [[ "$UNAME" == "Darwin" ]]; then
enable_analyzers=false
fi
+
+ local source_build_args=""
+ if [[ "$source_build" == true ]]; then
+ source_build_args="/p:DotNetBuildRepo=true /p:DotNetBuildSourceOnly=true"
+ fi
# NuGet often exceeds the limit of open files on Mac and Linux
# https://github.com/NuGet/Home/issues/2163
@@ -274,7 +279,7 @@ function BuildSolution {
fi
BuildMessage="Error building tools"
- local args=" publish $repo_root/proto.proj $blrestore $bltools /p:Configuration=Proto /p:ArcadeBuildFromSource=$source_build $properties"
+ local args=" publish $repo_root/proto.proj $blrestore $bltools /p:Configuration=Proto $source_build_args $properties"
echo $args
"$DOTNET_INSTALL_DIR/dotnet" $args #$args || exit $?
fi
@@ -296,8 +301,8 @@ function BuildSolution {
/p:ContinuousIntegrationBuild=$ci \
/p:QuietRestore=$quiet_restore \
/p:QuietRestoreBinaryLog="$binary_log" \
- /p:ArcadeBuildFromSource=$source_build \
/p:BuildNoRealsig=$buildnorealsig \
+ $source_build_args \
$properties
fi
}
diff --git a/eng/test-determinism.ps1 b/eng/test-determinism.ps1
index fcb5495f434..8056de2b371 100644
--- a/eng/test-determinism.ps1
+++ b/eng/test-determinism.ps1
@@ -78,7 +78,7 @@ function Run-Build([string]$rootDir, [string]$increment) {
/p:ContinuousIntegrationBuild=false `
/p:OfficialBuildId="" `
/p:QuietRestore=false `
- /p:DotNetBuildFromSource=false `
+ /p:DotNetBuildSourceOnly=false `
/p:Deterministic=true `
/p:DebugDeterminism=true `
/p:Features="debug-determinism" `
diff --git a/proto.proj b/proto.proj
index 2d07b389fa6..eb0814976ea 100644
--- a/proto.proj
+++ b/proto.proj
@@ -4,8 +4,10 @@
Bootstrap
-
-
+
+
diff --git a/setup/Swix/Directory.Build.targets b/setup/Swix/Directory.Build.targets
index 5e826e8da63..85048309295 100644
--- a/setup/Swix/Directory.Build.targets
+++ b/setup/Swix/Directory.Build.targets
@@ -15,7 +15,7 @@
+ Condition="'$(DotNetBuildSourceOnly)' != 'true'">