Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jekoritz@microsoft.com>2021-04-06 01:05:34 +0300
committerGitHub <noreply@github.com>2021-04-06 01:05:34 +0300
commit8d6cd81d8e3b0bfd602a321b582cf3d272842128 (patch)
tree38059897e8a2846a965a5ce717819924d050aee9 /src/coreclr/build-runtime.cmd
parent49653839ef21f0cd886ee24caaf404ccaa1ac27e (diff)
Reorganize CoreCLR native build to reduce CMake reconfigures when the build system is untouched (#49906)
Diffstat (limited to 'src/coreclr/build-runtime.cmd')
-rw-r--r--src/coreclr/build-runtime.cmd47
1 files changed, 31 insertions, 16 deletions
diff --git a/src/coreclr/build-runtime.cmd b/src/coreclr/build-runtime.cmd
index e31d9b7b812..25cffd330c7 100644
--- a/src/coreclr/build-runtime.cmd
+++ b/src/coreclr/build-runtime.cmd
@@ -68,17 +68,13 @@ set __BuildCrossArchNative=0
set __SkipCrossArchNative=0
set __SkipGenerateVersion=0
set __RestoreOptData=1
-set __BuildJit=1
-set __BuildPALTests=0
-set __BuildAllJits=1
-set __BuildRuntime=1
-set __BuildILTools=1
set __CrossArch=
set __CrossArch2=
set __CrossOS=0
set __PgoOptDataPath=
set __CMakeArgs=
set __Ninja=1
+set __RequestedBuildComponents=
@REM CMD has a nasty habit of eating "=" on the argument list, so passing:
@REM -priority=1
@@ -158,10 +154,7 @@ if /i "%1" == "-msbuild" (set __Ninja=0&set processedArgs=!processed
if /i "%1" == "-pgoinstrument" (set __PgoInstrument=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "-enforcepgo" (set __EnforcePgo=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "-nopgooptimize" (set __PgoOptimize=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-if /i "%1" == "-skipjit" (set __BuildJit=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-if /i "%1" == "-skipalljits" (set __BuildAllJits=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-if /i "%1" == "-skipruntime" (set __BuildRuntime=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-if /i "%1" == "-skipiltools" (set __BuildILTools=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
+if /i "%1" == "-component" (set __RequestedBuildComponents=%__RequestedBuildComponents%-%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
REM TODO these are deprecated remove them eventually
REM don't add more, use the - syntax instead
@@ -423,7 +416,28 @@ if NOT DEFINED PYTHON (
goto ExitWithError
)
-set __CMakeClrBuildSubsetArgs="-DCLR_CMAKE_BUILD_SUBSET_JIT=%__BuildJit%" "-DCLR_CMAKE_BUILD_SUBSET_ALLJITS=%__BuildAllJits%" "-DCLR_CMAKE_BUILD_SUBSET_RUNTIME=%__BuildRuntime%" "-DCLR_CMAKE_BUILD_SUBSET_ILTOOLS=%__BuildILTools%"
+set __CMakeTarget=
+for /f "delims=" %%a in ("-%__RequestedBuildComponents%-") do (
+ set "string=%%a"
+ if not "!string:-jit-=!"=="!string!" (
+ set __CMakeTarget=!__CMakeTarget! jit
+ )
+ if not "!string:-alljits-=!"=="!string!" (
+ set __CMakeTarget=!__CMakeTarget! alljits
+ )
+ if not "!string:-runtime-=!"=="!string!" (
+ set __CMakeTarget=!__CMakeTarget! runtime
+ )
+ if not "!string:-paltests-=!"=="!string!" (
+ set __CMakeTarget=!__CMakeTarget! paltests_install
+ )
+ if not "!string:-iltools-=!"=="!string!" (
+ set __CMakeTarget=!__CMakeTarget! iltools
+ )
+)
+if [!__CMakeTarget!] == [] (
+ set __CMakeTarget=install
+)
REM =========================================================================================
REM ===
@@ -455,7 +469,7 @@ if %__BuildCrossArchNative% EQU 1 (
set __ExtraCmakeArgs="-DCMAKE_BUILD_TYPE=!__BuildType!"
)
- set __ExtraCmakeArgs=!__ExtraCmakeArgs! %__CMakeClrBuildSubsetArgs% "-DCLR_CROSS_COMPONENTS_BUILD=1" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DCLR_CMAKE_TARGET_OS=%__TargetOS%" "-DCLR_CMAKE_PGO_INSTRUMENT=0" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=0" %__CMakeArgs%
+ set __ExtraCmakeArgs=!__ExtraCmakeArgs! "-DCLR_CROSS_COMPONENTS_BUILD=1" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DCLR_CMAKE_TARGET_OS=%__TargetOS%" "-DCLR_CMAKE_PGO_INSTRUMENT=0" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=0" %__CMakeArgs%
call "%__RepoRootDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__CrossCompIntermediatesDir%" %__VSVersion% %__CrossArch% !__ExtraCmakeArgs!
if not !errorlevel! == 0 (
@@ -492,7 +506,7 @@ if %__BuildCrossArchNative% EQU 1 (
set __CmakeBuildToolArgs=/nologo /m !__Logging!
)
- "%CMakePath%" --build %__CrossCompIntermediatesDir% --target install --config %__BuildType% -- !__CmakeBuildToolArgs!
+ "%CMakePath%" --build %__CrossCompIntermediatesDir% --target crosscomponents --config %__BuildType% -- !__CmakeBuildToolArgs!
if not !errorlevel! == 0 (
set __exitCode=!errorlevel!
@@ -529,7 +543,7 @@ if %__BuildCrossArchNative% EQU 1 (
set __ExtraCmakeArgs="-DCMAKE_BUILD_TYPE=!__BuildType!"
)
- set __ExtraCmakeArgs=!__ExtraCmakeArgs! %__CMakeClrBuildSubsetArgs% "-DCLR_CROSS_COMPONENTS_BUILD=1" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DCLR_CMAKE_TARGET_OS=%__TargetOS%" "-DCLR_CMAKE_PGO_INSTRUMENT=0" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=0" "-DCMAKE_SYSTEM_VERSION=10.0" %__CMakeArgs%
+ set __ExtraCmakeArgs=!__ExtraCmakeArgs! "-DCLR_CROSS_COMPONENTS_BUILD=1" "-DCLR_CMAKE_TARGET_ARCH=%__BuildArch%" "-DCLR_CMAKE_TARGET_OS=%__TargetOS%" "-DCLR_CMAKE_PGO_INSTRUMENT=0" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=0" "-DCMAKE_SYSTEM_VERSION=10.0" %__CMakeArgs%
call "%__RepoRootDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__CrossComp2IntermediatesDir%" %__VSVersion% %__CrossArch2% !__ExtraCmakeArgs!
if not !errorlevel! == 0 (
@@ -567,7 +581,7 @@ if %__BuildCrossArchNative% EQU 1 (
set __CmakeBuildToolArgs=/nologo /m !__Logging!
)
- "%CMakePath%" --build %__CrossComp2IntermediatesDir% --target install --config %__BuildType% -- !__CmakeBuildToolArgs!
+ "%CMakePath%" --build %__CrossComp2IntermediatesDir% --target crosscomponents --config %__BuildType% -- !__CmakeBuildToolArgs!
if not !errorlevel! == 0 (
set __exitCode=!errorlevel!
@@ -621,7 +635,7 @@ if %__BuildNative% EQU 1 (
set __ExtraCmakeArgs="-DCMAKE_BUILD_TYPE=!__BuildType!"
)
- set __ExtraCmakeArgs=!__ExtraCmakeArgs! !___CrossBuildDefine! %__CMakeClrBuildSubsetArgs% "-DCLR_CMAKE_PGO_INSTRUMENT=%__PgoInstrument%" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=%__PgoOptimize%" %__CMakeArgs%
+ set __ExtraCmakeArgs=!__ExtraCmakeArgs! !___CrossBuildDefine! "-DCLR_CMAKE_PGO_INSTRUMENT=%__PgoInstrument%" "-DCLR_CMAKE_OPTDATA_PATH=%__PgoOptDataPath%" "-DCLR_CMAKE_PGO_OPTIMIZE=%__PgoOptimize%" %__CMakeArgs%
call "%__RepoRootDir%\eng\native\gen-buildsys.cmd" "%__ProjectDir%" "%__IntermediatesDir%" %__VSVersion% %__BuildArch% !__ExtraCmakeArgs!
if not !errorlevel! == 0 (
echo %__ErrMsgPrefix%%__MsgPrefix%Error: failed to generate native component build project!
@@ -657,7 +671,8 @@ if %__BuildNative% EQU 1 (
set __CmakeBuildToolArgs=/nologo /m !__Logging!
)
- "%CMakePath%" --build %__IntermediatesDir% --target install --config %__BuildType% -- !__CmakeBuildToolArgs!
+ echo running "%CMakePath%" --build %__IntermediatesDir% --target %__CMakeTarget% --config %__BuildType% -- !__CmakeBuildToolArgs!
+ "%CMakePath%" --build %__IntermediatesDir% --target %__CMakeTarget% --config %__BuildType% -- !__CmakeBuildToolArgs!
if not !errorlevel! == 0 (
set __exitCode=!errorlevel!