Skip to content

Commit

Permalink
Merge pull request dotnet#14712 from BruceForstall/VS2017Arm64
Browse files Browse the repository at this point in the history
Allow building arm64 using VS2017 tools
  • Loading branch information
BruceForstall authored Oct 30, 2017
2 parents 0c8b4af + 52ebf91 commit 9b6d5cd
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
16 changes: 9 additions & 7 deletions build-test.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down
18 changes: 12 additions & 6 deletions build.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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!
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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!
Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 9b6d5cd

Please sign in to comment.