Add WoA Build Support for LuxCore
Summary
LuxCore currently supports ARM on Linux and macOS but not on Windows ARM64 (WoA).
This issue tracks adding native Windows ARM64 build support.
As a prerequisite, I have raised a PR to LuxCoreDeps for ARM64 dependency support and an issue to LuxCore requesting to review the PR::
Changes Required
sample-builder.yml: Pinned ilammy/msvc-dev-cmd to a fixed SHA and set dynamic arch selection (arm64 or x64) based on runner architecture, to correctly initialize the MSVC environment for ARM64 builds
wheel-builder.yml: Added ARM64-aware Conan home path resolution and dynamic CIBW_ARCHS selection; on ARM64, replaced pyluxcoretest with a minimal Python import test (python -c "import pyluxcore; pyluxcore.Init()"), since nvidia-cuda-nvrtc (required by pyluxcoretest) is not available on WoA — the same exclusion is reflected in pyproject.toml by dropping nvidia-cuda-nvrtc as a dependency on ARM64 machines
CMakeLists.txt: Guarded SSE2/SSE/MMX definitions and /arch:AVX flags to prevent x86-only flags from being applied on ARM64
build-system/luxmake/deps.py: Added Windows-ARM64 platform detection and the corresponding windows-11-arm runner mapping, so the correct LuxCoreDeps release artifact URL is constructed when fetching ARM64 dependencies
build-system/luxmake/wheel.py: Extended _compute_platform_tag() to detect Windows ARM64 and return the correct win_arm64 platform tag, ensuring Python wheels are packaged and identified with the right architecture
Test Environment
- OS: Windows 11 ARM64
- Compiler: MSVC (via
ilammy/msvc-dev-cmd with ARM64 arch)
- CI Runner:
windows-11-arm
Intent
I plan to submit a PR with these changes once the LuxCoreDeps ARM64 PR is reviewed and merged.
Add WoA Build Support for LuxCore
Summary
LuxCore currently supports ARM on Linux and macOS but not on Windows ARM64 (WoA).
This issue tracks adding native Windows ARM64 build support.
As a prerequisite, I have raised a PR to LuxCoreDeps for ARM64 dependency support and an issue to LuxCore requesting to review the PR::
Changes Required
sample-builder.yml: Pinnedilammy/msvc-dev-cmdto a fixed SHA and set dynamicarchselection (arm64orx64) based on runner architecture, to correctly initialize the MSVC environment for ARM64 buildswheel-builder.yml: Added ARM64-aware Conan home path resolution and dynamicCIBW_ARCHSselection; on ARM64, replacedpyluxcoretestwith a minimal Python import test (python -c "import pyluxcore; pyluxcore.Init()"), sincenvidia-cuda-nvrtc(required bypyluxcoretest) is not available on WoA — the same exclusion is reflected inpyproject.tomlby droppingnvidia-cuda-nvrtcas a dependency on ARM64 machinesCMakeLists.txt: Guarded SSE2/SSE/MMX definitions and/arch:AVXflags to prevent x86-only flags from being applied on ARM64build-system/luxmake/deps.py: AddedWindows-ARM64platform detection and the correspondingwindows-11-armrunner mapping, so the correct LuxCoreDeps release artifact URL is constructed when fetching ARM64 dependenciesbuild-system/luxmake/wheel.py: Extended_compute_platform_tag()to detect Windows ARM64 and return the correctwin_arm64platform tag, ensuring Python wheels are packaged and identified with the right architectureTest Environment
ilammy/msvc-dev-cmdwith ARM64 arch)windows-11-armIntent
I plan to submit a PR with these changes once the LuxCoreDeps ARM64 PR is reviewed and merged.