diff --git a/build-test.cmd b/build-test.cmd index 7da18071366b..7101ef12b1f6 100644 --- a/build-test.cmd +++ b/build-test.cmd @@ -90,7 +90,7 @@ if /i "%1" == "-help" goto Usage if /i "%1" == "x64" (set __BuildArch=x64&set __VCBuildArch=x86_amd64&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "x86" (set __BuildArch=x86&set __VCBuildArch=x86&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "arm" (set __BuildArch=arm&set __VCBuildArch=x86_arm&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "arm64" (set __BuildArch=arm64&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) +if /i "%1" == "arm64" (set __BuildArch=arm64&set __VCBuildArch=x86_arm64&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "debug" (set __BuildType=Debug&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "release" (set __BuildType=Release&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) @@ -127,9 +127,11 @@ if defined __BuildAgainstPackagesArg ( set __RunArgs=-BuildOS=%__BuildOS% -BuildType=%__BuildType% -BuildArch=%__BuildArch% -rem arm64 builds currently use private toolset which has not been released yet -REM TODO, remove once the toolset is open. -if /i "%__BuildArch%" == "arm64" call :PrivateToolSet +if defined __ToolsetDir ( + rem arm64 builds currently use private toolset which has not been released yet + REM TODO, remove once the toolset is open. + call :PrivateToolSet +) echo %__MsgPrefix%Commencing CoreCLR repo test build @@ -186,8 +188,8 @@ REM ============================================================================ echo %__MsgPrefix%Commencing build of native test components for %__BuildArch%/%__BuildType% if defined __ToolsetDir ( - echo %__MsgPrefix%ToolsetDir is defined to be :%__ToolsetDir% - goto GenVSSolution :: Private ToolSet is Defined + echo %__MsgPrefix%ToolsetDir is defined to be %__ToolsetDir% + goto GenVSSolution :: Private ToolSet is Defined ) :: Set the environment for the native build @@ -491,7 +493,7 @@ exit /b 1 :PrivateToolSet -echo %__MsgPrefix% Setting Up the usage of __ToolsetDir:%__ToolsetDir% +echo %__MsgPrefix%Setting up the usage of __ToolsetDir:%__ToolsetDir% if /i "%__ToolsetDir%" == "" ( echo %__MsgPrefix%Error: A toolset directory is required for the Arm64 Windows build. Use the toolset_dir argument. diff --git a/build.cmd b/build.cmd index 72d24277a4a5..62e503d2894f 100644 --- a/build.cmd +++ b/build.cmd @@ -357,10 +357,10 @@ if %__BuildNative% EQU 1 ( echo %__MsgPrefix%Commencing build of native components for %__BuildOS%.%__BuildArch%.%__BuildType% - set nativePlatfromArgs=-platform=%__BuildArch% - if /i "%__BuildArch%" == "arm64" ( set nativePlatfromArgs=-useEnv ) + set __NativePlatformArgs=-platform=%__BuildArch% + if not "%__ToolsetDir%" == "" ( set __NativePlatformArgs=-useEnv ) - if /i "%__BuildArch%" == "arm64" ( + if not "%__ToolsetDir%" == "" ( rem arm64 builds currently use private toolset which has not been released yet REM TODO, remove once the toolset is open. call :PrivateToolSet @@ -376,6 +376,12 @@ if %__BuildNative% EQU 1 ( REM Make CMake pick the highest installed version in the 10.0.* range set ___SDKVersion="-DCMAKE_SYSTEM_VERSION=10.0" ) + if /i "%__BuildArch%" == "arm64" ( + set __VCBuildArch=x86_arm64 + + REM Make CMake pick the highest installed version in the 10.0.* range + set ___SDKVersion="-DCMAKE_SYSTEM_VERSION=10.0" + ) echo %__MsgPrefix%Using environment: "%__VCToolsRoot%\vcvarsall.bat" !__VCBuildArch! call "%__VCToolsRoot%\vcvarsall.bat" !__VCBuildArch! @@ -414,7 +420,7 @@ if %__BuildNative% EQU 1 ( set __MsbuildWrn=/flp1:WarningsOnly;LogFile=!__BuildWrn! set __MsbuildErr=/flp2:ErrorsOnly;LogFile=!__BuildErr! - @call %__ProjectDir%\run.cmd build -Project=%__IntermediatesDir%\install.vcxproj -MsBuildLog=!__MsbuildLog! -MsBuildWrn=!__MsbuildWrn! -MsBuildErr=!__MsbuildErr! -configuration=%__BuildType% %nativePlatfromArgs% %__RunArgs% -ExtraParameters="/p:ForceImportBeforeCppTargets=%__ProjectDir%/clr.nativebuild.props /m:2" %__UnprocessedBuildArgs% + @call %__ProjectDir%\run.cmd build -Project=%__IntermediatesDir%\install.vcxproj -MsBuildLog=!__MsbuildLog! -MsBuildWrn=!__MsbuildWrn! -MsBuildErr=!__MsbuildErr! -configuration=%__BuildType% %__NativePlatformArgs% %__RunArgs% -ExtraParameters="/p:ForceImportBeforeCppTargets=%__ProjectDir%/clr.nativebuild.props /m:2" %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( echo %__MsgPrefix%Error: native component build failed. Refer to the build log files for details: @@ -654,7 +660,7 @@ if %__BuildTests% EQU 1 ( rem arm64 builds currently use private toolset which has not been released yet REM TODO, remove once the toolset is open. - if /i "%__BuildArch%" == "arm64" call :PrivateToolSet + if not "%__ToolsetDir%" == "" call :PrivateToolSet set NEXTCMD=call %__ProjectDir%\build-test.cmd %__BuildArch% %__BuildType% %__UnprocessedBuildArgs% echo %__MsgPrefix%!NEXTCMD! @@ -827,7 +833,7 @@ exit /b 1 :PrivateToolSet -echo %__MsgPrefix% Setting Up the usage of __ToolsetDir:%__ToolsetDir% +echo %__MsgPrefix%Setting up the usage of __ToolsetDir:%__ToolsetDir% if /i "%__ToolsetDir%" == "" ( echo %__MsgPrefix%Error: A toolset directory is required for the Arm64 Windows build. Use the toolset_dir argument.