diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95706e2ff..6239dcb50 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -47,6 +47,20 @@ jobs: ext: .dll os: windows-latest + WindowsArm64: + strategy: + fail-fast: false + matrix: + haxe: [ 4.3.7, latest ] + uses: ./.github/workflows/test.yml + name: Test Windows (Arm64) + with: + haxe: ${{ matrix.haxe }} + arch: Arm64 + sep: \ + ext: .dll + os: windows-11-arm + MacOS64: strategy: fail-fast: false diff --git a/.github/workflows/setup/action.yml b/.github/workflows/setup/action.yml index 3b7dae26e..0b57e6cbf 100644 --- a/.github/workflows/setup/action.yml +++ b/.github/workflows/setup/action.yml @@ -7,7 +7,7 @@ runs: using: composite steps: - name: install haxe - uses: krdlab/setup-haxe@v2 + uses: krdlab/setup-haxe@f37045f8d4e04adddecf8fd1acc024ef03680734 with: haxe-version: ${{ inputs.haxe }} diff --git a/src/hx/Lib.cpp b/src/hx/Lib.cpp index feb26d081..e9770b7fa 100644 --- a/src/hx/Lib.cpp +++ b/src/hx/Lib.cpp @@ -396,7 +396,9 @@ String __hxcpp_get_bin_dir() HX_CSTRING("WinRT"); #endif #elif defined(_WIN32) - #ifdef HXCPP_M64 + #ifdef HXCPP_ARM64 + HX_CSTRING("WindowsArm64"); + #elif defined(HXCPP_M64) HX_CSTRING("Windows64"); #else HX_CSTRING("Windows"); diff --git a/toolchain/msvc-arm64-setup.bat b/toolchain/msvc-arm64-setup.bat index 8f7eee293..86f3ec002 100644 --- a/toolchain/msvc-arm64-setup.bat +++ b/toolchain/msvc-arm64-setup.bat @@ -1,19 +1,10 @@ setlocal enabledelayedexpansion -@if exist "%HXCPP_MSVC%\..\..\VC\" ( - @if not exist "%hxcpp_msvc%\..\..\VC\Auxiliary\Build\vcvars%msvc_host_arch%_arm64.bat" ( - @echo Error: the specified MSVC version does not have vcvars%msvc_host_arch%_arm64.bat setup script - ) else ( - @echo "%HXCPP_MSVC%" - @call "%HXCPP_MSVC%\..\..\VC\Auxiliary\Build\vcvars%msvc_host_arch%_amd64.bat" - @echo HXCPP_VARS - @set - ) -) else if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( +@if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.arm64 -property installationPath`) do ( @set InstallDir=%%i ) @if exist "!InstallDir!\Common7\Tools\VsDevCmd.bat" ( - @call "!InstallDir!\Common7\Tools\VsDevCmd.bat" -host_arch=%msvc_host_arch% -arch=arm64 -app_platform=Desktop -no_logo + @call "!InstallDir!\Common7\Tools\VsDevCmd.bat" -arch=arm64 -app_platform=Desktop -no_logo @echo HXCPP_VARS @set ) else ( diff --git a/tools/hxcpp/Setup.hx b/tools/hxcpp/Setup.hx index 9b16ff801..e6cb1f93f 100644 --- a/tools/hxcpp/Setup.hx +++ b/tools/hxcpp/Setup.hx @@ -836,7 +836,6 @@ class Setup Sys.putEnv("HXCPP_WINXP_COMPAT","1"); xpCompat = true; } - Sys.putEnv("msvc_host_arch", ioDefines.exists("windows_arm_host") ? "x86" : "x64" ); var vc_setup_proc = new Process("cmd.exe", ["/C", BuildTool.HXCPP + "\\toolchain\\msvc" + extra + "-setup.bat" ]); var vars_found = false;