Skip to content

Commit 3c03ad1

Browse files
Fix Windows build
1 parent 96cf54e commit 3c03ad1

18 files changed

+142
-431
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,6 @@ sandbox
321321
linker
322322

323323
# Arcade files
324-
/artifacts/toolset
324+
/artifacts
325325
/.packages
326326
/.dotnet

CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ include(clrdefinitions.cmake)
208208
#-------------------------------------
209209
# Include the basic prebuilt headers - required for getting fileversion resource details.
210210
include_directories("src/pal/prebuilt/inc")
211-
include_directories("artifacts/bin/obj")
211+
include_directories("artifacts/obj")
212212

213213
if(FEATURE_STANDALONE_GC)
214214
add_definitions(-DFEATURE_STANDALONE_GC)
@@ -221,10 +221,6 @@ if (CLR_CMAKE_PLATFORM_UNIX)
221221
include_directories("src/pal/src/safecrt")
222222
endif (CLR_CMAKE_PLATFORM_UNIX)
223223

224-
# Microsoft.Dotnet.BuildTools.Coreclr version
225-
set(BuildToolsVersion "1.0.4-prerelease")
226-
set(BuildToolsDir "${CLR_CMAKE_PACKAGES_DIR}/Microsoft.DotNet.BuildTools.CoreCLR/${BuildToolsVersion}")
227-
228224
#------------------------------
229225
# Add Product Directory
230226
#------------------------------

Directory.Build.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
<!-- ToolSetCommonDirectory: Set a restore location for the sdk's tools -->
2020
<!-- this will be used by package creation -->
2121
<PropertyGroup>
22-
<BaseOutputPath>$(MSBuildThisFileDirectory)/artifacts/Product/$(BuildOS)/</BaseOutputPath>
23-
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootArtifactsDir)obj/$(BuildOS)/$(BuildArch)/$(BuildType)/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
22+
<BaseOutputPath>$(MSBuildThisFileDirectory)/artifacts/Product/$(BuildOS)/</BaseOutputPath>
23+
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootArtifactsDir)/obj/$(BuildOS)/$(BuildArch)/$(BuildType)/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
2424
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
2525
<ToolSetCommonDirectory>$(MSBuildThisFileDirectory)artifacts\toolset\Common\</ToolSetCommonDirectory>
2626
</PropertyGroup>
@@ -92,7 +92,7 @@
9292

9393
<!-- Output paths -->
9494
<PropertyGroup>
95-
<IntermediateOutputPathNonMangled Condition="'$(IntermediateOutputPathNonMangled)' == ''">$(RootArtifactsDir)obj/$(BuildOS)/$(BuildArch)/$(BuildType)/$(MSBuildProjectName)/</IntermediateOutputPathNonMangled>
95+
<IntermediateOutputPathNonMangled Condition="'$(IntermediateOutputPathNonMangled)' == ''">$(RootArtifactsDir)/obj/$(BuildOS)/$(BuildArch)/$(BuildType)/$(MSBuildProjectName)/</IntermediateOutputPathNonMangled>
9696
<OutputPath Condition="'$(OutputPath)' == ''">$(BinDir)</OutputPath>
9797
</PropertyGroup>
9898

build-packages.cmd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ if NOT '%ERRORLEVEL%' == '0' exit /b 1
4040

4141
call %__ProjectDir%/dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
4242
/p:__BuildOS=Windows_NT /flp:v=detailed;Append;LogFile=build-packages.log^
43-
/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
4443
/p:PortableBuild=true %__ProjectDir%\src\.nuget\packages.builds^
4544
/p:FilterToOSGroup=Windows_NT %__MSBuildArgs% %unprocessedArgs%
4645
if NOT [!ERRORLEVEL!]==[0] (

build-packages.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ fi
127127

128128
$__ProjectRoot/dotnet.sh msbuild /nologo /verbosity:minimal /clp:Summary \
129129
/p:__BuildOS=$__BuildOS /flp:v=detailed\;Append\;LogFile=build-packages.log \
130-
/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll\;LogFile=binclash.log \
131130
/p:PortableBuild=true src/.nuget/packages.builds \
132131
/p:__DistroRid=$__DistroRid /p:BuildNugetPackage=false \
133132
$buildArgs $unprocessedBuildArgs

build.cmd

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,8 @@ if defined VS160COMNTOOLS (
2828
:: out the variables that might be too large.
2929
set ghprbCommentBody=
3030

31-
:: Note that the msbuild project files (specifically, dir.proj) will use the following variables, if set:
32-
:: __BuildArch -- default: x64
33-
:: __BuildType -- default: Debug
34-
:: __BuildOS -- default: Windows_NT
35-
:: __ProjectDir -- default: directory of the Directory.Build.Props file
36-
:: __SourceDir -- default: %__ProjectDir%\src\
37-
:: __PackagesDir -- default: %__ProjectDir%\packages\
38-
:: __RootBinDir -- default: %__ProjectDir%\bin\
39-
:: __BinDir -- default: %__RootBinDir%\%__BuildOS%.%__BuildArch.%__BuildType%\
40-
:: __IntermediatesDir
41-
:: __PackagesBinDir -- default: %__BinDir%\.nuget
42-
:: __TestWorkingDir -- default: %__RootBinDir%\tests\%__BuildOS%.%__BuildArch.%__BuildType%\
43-
::
31+
:: Note that the msbuild project files (specifically, dir.proj) will use the variables such as
32+
:: __BuildArch, __ProjectDir, etc if set.
4433
:: Thus, these variables are not simply internal to this script!
4534

4635
:: Set the default arguments for build
@@ -50,14 +39,15 @@ set __BuildOS=Windows_NT
5039

5140
:: Set the various build properties here so that CMake and MSBuild can pick them up
5241
set "__ProjectDir=%~dp0"
42+
set ArcadeBuild=true
5343
:: remove trailing slash
5444
if %__ProjectDir:~-1%==\ set "__ProjectDir=%__ProjectDir:~0,-1%"
5545
set "__ProjectFilesDir=%__ProjectDir%"
5646
set "__SourceDir=%__ProjectDir%\src"
5747
set "__PackagesDir=%DotNetRestorePackagesPath%"
5848
if [%__PackagesDir%]==[] set "__PackagesDir=%__ProjectDir%\packages"
59-
set "__RootBinDir=%__ProjectDir%\bin"
60-
set "__LogsDir=%__RootBinDir%\Logs"
49+
set "__RootArtifactsDir=%__ProjectDir%\artifacts"
50+
set "__LogsDir=%__RootArtifactsDir%\Logs\%__BuildType%"
6151
set "__MsbuildDebugLogsDir=%__LogsDir%\MsbuildDebugLogs"
6252

6353
set __BuildAll=
@@ -271,7 +261,7 @@ if %__BuildTypeDebug%==1 set __BuildType=Debug
271261
if %__BuildTypeChecked%==1 set __BuildType=Checked
272262
if %__BuildTypeRelease%==1 set __BuildType=Release
273263

274-
set __CommonMSBuildArgs=/p:__BuildOS=%__BuildOS% /p:__BuildType=%__BuildType% /p:__BuildArch=%__BuildArch% !__SkipRestoreArg! !__OfficialBuildIdArg!
264+
set __CommonMSBuildArgs=/p:__BuildOS=%__BuildOS% /p:__BuildType=%__BuildType% /p:__BuildArch=%__BuildArch% !__SkipRestoreArg! !__OfficialBuildIdArg! /p:ArcadeBuild=true /p:Platform=%__BuildArch%
275265

276266
if %__EnforcePgo%==1 (
277267
if %__BuildArchArm%==1 (
@@ -303,9 +293,10 @@ if /i %__BuildType% NEQ Release set __RestoreOptData=0
303293
REM REVIEW: why no System.Private.CoreLib NuGet package build for ARM64?
304294
if /i "%__BuildArch%"=="arm64" set __SkipNugetPackage=0
305295

306-
set "__BinDir=%__RootBinDir%\Product\%__BuildOS%.%__BuildArch%.%__BuildType%"
307-
set "__IntermediatesDir=%__RootBinDir%\obj\%__BuildOS%.%__BuildArch%.%__BuildType%"
308-
if "%__NMakeMakefiles%"=="1" (set "__IntermediatesDir=%__RootBinDir%\nmakeobj\%__BuildOS%.%__BuildArch%.%__BuildType%")
296+
set "__BinDir=%__RootArtifactsDir%\Product\%__BuildOS%\%__BuildArch%\%__BuildType%"
297+
set "__IntermediatesDir=%__RootArtifactsDir%\obj\%__BuildOS%\%__BuildArch%\%__BuildType%"
298+
set "__TestIntermediatesDir=%__RootArtifactsDir%\tests\obj\%__BuildOS%\%__BuildArch%\%__BuildType%"
299+
if "%__NMakeMakefiles%"=="1" (set "__IntermediatesDir=%__RootArtifactsDir%\nmakeobj\%__BuildOS%\%__BuildArch%\%__BuildType%")
309300
set "__PackagesBinDir=%__BinDir%\.nuget"
310301
set "__CrossComponentBinDir=%__BinDir%"
311302
set "__CrossCompIntermediatesDir=%__IntermediatesDir%\crossgen"
@@ -357,7 +348,6 @@ if not defined NumberOfCores (
357348
set NumberOfCores=!TotalNumberOfCores!
358349
)
359350
echo %__MsgPrefix%Number of processor cores %NumberOfCores%
360-
361351
REM =========================================================================================
362352
REM ===
363353
REM === Start the build steps
@@ -367,10 +357,9 @@ REM ============================================================================
367357
@if defined _echo @echo on
368358

369359
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
370-
/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
371360
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
372361
/p:UsePartialNGENOptimization=false /maxcpucount^
373-
%__ProjectDir%\build.proj /t:GenerateVersionHeader /p:GenerateVersionHeader=true /p:NativeVersionHeaderFile="%__RootBinDir%\obj\_version.h"^
362+
%__ProjectDir%\build.proj /t:GenerateNativeVersionFile ^
374363
%__CommonMSBuildArgs% %__UnprocessedBuildArgs%
375364

376365
REM =========================================================================================
@@ -381,7 +370,7 @@ REM ============================================================================
381370

382371
if %__RestoreOptData% EQU 1 (
383372
echo %__MsgPrefix%Restoring the OptimizationData Package
384-
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
373+
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:diag /clp:Summary /nodeReuse:false^
385374
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
386375
/p:UsePartialNGENOptimization=false /maxcpucount^
387376
./build.proj /t:RestoreOptData^
@@ -522,8 +511,7 @@ if %__BuildNative% EQU 1 (
522511
set __MsbuildErr=/flp2:ErrorsOnly;LogFile=!__BuildErr!
523512
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
524513

525-
call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
526-
/l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
514+
call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:diag /clp:Summary /nodeReuse:false^
527515
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
528516
/p:UsePartialNGENOptimization=false /maxcpucount %__IntermediatesDir%\install.vcxproj^
529517
!__Logging! /p:Configuration=%__BuildType% /p:Platform=%__BuildArch% %__CommonMSBuildArgs% /m:2 %__UnprocessedBuildArgs%
@@ -589,8 +577,7 @@ if %__BuildCrossArchNative% EQU 1 (
589577
set __MsbuildErr=/flp2:ErrorsOnly;LogFile=!__BuildErr!
590578
set __Logging=!_MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
591579

592-
call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
593-
/l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
580+
call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:diag /clp:Summary /nodeReuse:false^
594581
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
595582
/p:UsePartialNGENOptimization=false /maxcpucount^
596583
%__CrossCompIntermediatesDir%\install.vcxproj^
@@ -649,8 +636,7 @@ if %__BuildCoreLib% EQU 1 (
649636
set __MsbuildErr=/flp2:ErrorsOnly;LogFile=!__BuildErr!
650637
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
651638

652-
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
653-
/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
639+
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:diag /clp:Summary /nodeReuse:false^
654640
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
655641
/p:UsePartialNGENOptimization=false /maxcpucount^
656642
%__ProjectDir%\build.proj^
@@ -800,7 +786,7 @@ if %__BuildNativeCoreLib% EQU 1 (
800786
set COMPlus_ContinueOnAssert=0
801787
)
802788

803-
set NEXTCMD="%__CrossgenExe%" %__IbcTuning% /Platform_Assemblies_Paths "%__BinDir%"\IL /out "%__BinDir%\System.Private.CoreLib.dll" "%__BinDir%\IL\System.Private.CoreLib.dll"
789+
set NEXTCMD="%__CrossgenExe%" %__IbcTuning% /Platform_Assemblies_Paths "%__BinDir%\IL" /out "%__BinDir%\System.Private.CoreLib.dll" "%__BinDir%\IL\System.Private.CoreLib.dll"
804790
echo %__MsgPrefix%!NEXTCMD!
805791
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
806792
!NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
@@ -848,8 +834,7 @@ if %__BuildPackages% EQU 1 (
848834
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
849835

850836
REM The conditions as to what to build are captured in the builds file.
851-
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
852-
/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
837+
call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:diag /clp:Summary /nodeReuse:false^
853838
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
854839
/p:UsePartialNGENOptimization=false /maxcpucount^
855840
%__SourceDir%\.nuget\packages.builds^

build.proj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
<Import Project="dir.traversal.targets" />
1010

11-
<Import Project="$(ToolsDir)clean.targets" Condition="'$(ArcadeBuild)' != 'true' " />
11+
<Import Project="eng\Version.targets" />
1212

13-
<Import Project="generateversionsourcefile.targets" />
13+
<Import Project="$(ToolsDir)clean.targets" Condition="'$(ArcadeBuild)' != 'true' " />
1414

1515
<!-- The following properties are in place to keep the behavior of build.cmd while we work on the dev workflow steps. -->
1616
<PropertyGroup>

build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ usage()
5757
echo "-skipgenerateversion - disable version generation even if MSBuild is supported."
5858
echo "-ignorewarnings - do not treat warnings as errors"
5959
echo "-cmakeargs - user-settable additional arguments passed to CMake."
60-
echo "-bindir - output directory (defaults to $__ProjectRoot/bin)"
60+
echo "-bindir - output directory (defaults to $__ProjectRoot/artifacts)"
6161
echo "-msbuildonunsupportedplatform - build managed binaries even if distro is not officially supported."
6262
echo "-numproc - set the number of build processes."
6363
echo "-portablebuild - pass -portablebuild=false to force a non-portable build."
@@ -994,7 +994,7 @@ __PackagesBinDir="$__BinDir/.nuget"
994994
__ToolsDir="$__RootArtifactsDir/tools"
995995
__TestWorkingDir="$__RootArtifactsDir/tests/$__BuildOS.$__BuildArch.$__BuildType"
996996
export __IntermediatesDir="$__RootArtifactsDir/obj/${__BuildOS}/${__BuildArch}/${__BuildType}"
997-
__TestIntermediatesDir="$__RootArtifactsDir/tests/obj/$__BuildOS.$__BuildArch.$__BuildType"
997+
__TestIntermediatesDir="$__RootArtifactsDir/tests/obj/$__BuildOS/$__BuildArch/$__BuildType"
998998
__isMSBuildOnNETCoreSupported=0
999999
__CrossComponentBinDir="$__BinDir"
10001000

dir.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
<SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
3939

4040
<BinDir>$(__BinDir)\</BinDir>
41-
<BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(BuildOS)\$(BuildArch)\$(BuildType)\</BinDir>
41+
<BinDir Condition="'$(__BinDir)'==''">$(__RootArtifactsDir)Product\$(BuildOS)\$(BuildArch)\$(BuildType)\</BinDir>
4242

43-
<__IntermediatesDir Condition="'$(__IntermediatesDir)' == ''">$(RootBinDir)obj\$(BuildOS)\$(BuildArch)\$(BuildType)</__IntermediatesDir>
43+
<__IntermediatesDir Condition="'$(__IntermediatesDir)' == ''">$(__RootArtifactsDir)\obj\$(BuildOS)\$(BuildArch)\$(BuildType)</__IntermediatesDir>
4444
<IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(__IntermediatesDir)\</IntermediateOutputRootPath>
4545

4646
<!-- We don't append back slash because this path is used by nuget.exe as output directory and it
@@ -73,7 +73,7 @@
7373

7474
<!-- Output paths -->
7575
<PropertyGroup>
76-
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj\</BaseIntermediateOutputPath>
76+
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(__RootArtifactsDir)obj\</BaseIntermediateOutputPath>
7777
<IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(BaseIntermediateOutputPath)$(BuildOS)\$(BuildArch)\$(BuildType)\$(MSBuildProjectName)</IntermediateOutputPath>
7878
<IntermediateOutputPathNonMangled Condition="'$(IntermediateOutputPathNonMangled)' == ''">$(RootBinDir)obj\$(BuildOS)\$(BuildArch)\$(BuildType)\$(MSBuildProjectName)\</IntermediateOutputPathNonMangled>
7979
<OutputPath Condition="'$(OutputPath)' == ''">$(BinDir)</OutputPath>

0 commit comments

Comments
 (0)