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/Directory.Build.props b/setup/Directory.Build.props
index cca2c04ebcf..47bbe960ea3 100644
--- a/setup/Directory.Build.props
+++ b/setup/Directory.Build.props
@@ -12,7 +12,7 @@
$(ArtifactsDir)\VSSetup.obj\$(Configuration)\$(MSBuildProjectName)
$(SetupRootFolder)..\artifacts\VSSetup\$(Configuration)
$(SetupRootFolder)..\artifacts\VSSetup\$(Configuration)\Insertion
- true
+ true
Neutral
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'">
diff --git a/src/fsc/fscAnyCpuProject/fscAnyCpu.fsproj b/src/fsc/fscAnyCpuProject/fscAnyCpu.fsproj
index 3fac5305cae..a813df67d88 100644
--- a/src/fsc/fscAnyCpuProject/fscAnyCpu.fsproj
+++ b/src/fsc/fscAnyCpuProject/fscAnyCpu.fsproj
@@ -5,7 +5,7 @@
net472
anycpu
- true
+ true
diff --git a/src/fsc/fscArm64Project/fscArm64.fsproj b/src/fsc/fscArm64Project/fscArm64.fsproj
index c7c42ca1adf..bcc20db5d6a 100644
--- a/src/fsc/fscArm64Project/fscArm64.fsproj
+++ b/src/fsc/fscArm64Project/fscArm64.fsproj
@@ -5,7 +5,7 @@
net472
arm64
- true
+ true
diff --git a/src/fsi/fsiAnyCpuProject/fsiAnyCpu.fsproj b/src/fsi/fsiAnyCpuProject/fsiAnyCpu.fsproj
index f11e2783e44..ae7238e556a 100644
--- a/src/fsi/fsiAnyCpuProject/fsiAnyCpu.fsproj
+++ b/src/fsi/fsiAnyCpuProject/fsiAnyCpu.fsproj
@@ -5,7 +5,7 @@
net472
anycpu
- true
+ true
$(DefineConstants);FSI_SHADOW_COPY_REFERENCES;FSI_SERVER
diff --git a/src/fsi/fsiArm64Project/fsiArm64.fsproj b/src/fsi/fsiArm64Project/fsiArm64.fsproj
index 07e19f49d5e..acb66346e8a 100644
--- a/src/fsi/fsiArm64Project/fsiArm64.fsproj
+++ b/src/fsi/fsiArm64Project/fsiArm64.fsproj
@@ -5,7 +5,7 @@
net472
arm64
- true
+ true
$(DefineConstants);FSI_SHADOW_COPY_REFERENCES;FSI_SERVER
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index 06697bc35ed..80708062652 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -3,7 +3,7 @@
- true
+ true
portable
diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
index f7e63b79621..96265fdd24b 100644
--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
+++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
@@ -10,7 +10,7 @@
true
xunit
true
- true
+ true
false
false
$(OtherFlags) --warnon:1182
diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
index 8f69b337c5a..3bf2d528a4f 100644
--- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj
@@ -7,7 +7,7 @@
Library
true
xunit
- true
+ true
$(NoWarn);44
diff --git a/vsintegration/Directory.Build.props b/vsintegration/Directory.Build.props
index 3506c3888d2..5a203ce69e2 100644
--- a/vsintegration/Directory.Build.props
+++ b/vsintegration/Directory.Build.props
@@ -4,7 +4,7 @@
net472
v4.7.2
true
- true
+ true
Neutral
true
diff --git a/vsintegration/tests/MockTypeProviders/Directory.Build.props b/vsintegration/tests/MockTypeProviders/Directory.Build.props
index e97fa719a30..3a1978537b7 100644
--- a/vsintegration/tests/MockTypeProviders/Directory.Build.props
+++ b/vsintegration/tests/MockTypeProviders/Directory.Build.props
@@ -5,7 +5,7 @@
false
- true
+ true