diff --git a/.github/workflows/continuous.yaml b/.github/workflows/continuous.yaml index 96fcd092..237fb8a4 100644 --- a/.github/workflows/continuous.yaml +++ b/.github/workflows/continuous.yaml @@ -257,7 +257,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025] + os: [windows-2025, windows-11-arm] config: [Release, Debug] steps: - name: Show disk space diff --git a/cmake/recipes/external/Boost.cmake b/cmake/recipes/external/Boost.cmake index ac371ef1..a6391978 100644 --- a/cmake/recipes/external/Boost.cmake +++ b/cmake/recipes/external/Boost.cmake @@ -79,23 +79,24 @@ option(BOOST_IOSTREAMS_ENABLE_BZIP2 "Boost.Iostreams: Enable BZip2 support" OFF) option(BOOST_IOSTREAMS_ENABLE_LZMA "Boost.Iostreams: Enable LZMA support" OFF) option(BOOST_IOSTREAMS_ENABLE_ZSTD "Boost.Iostreams: Enable Zstd support" OFF) -set(BOOST_PATCHES "") +set(BOOST_PATCHES) if(EMSCRIPTEN) # Wasm doesn't have rounding mode control yet, so we trick Boost::interval into thinking it has. # https://github.com/WebAssembly/rounding-mode-control # https://github.com/boostorg/interval/issues/44 - set(BOOST_PATCHES PATCHES Boost.wasm.patch) + list(APPEND BOOST_PATCHES Boost.wasm.patch) endif() # Modern CMake target support was added in Boost 1.82.0 # CMake support for boost::numeric_ublas was added in Boost 1.84.0 +# Windows ARM64 requires Boost 1.89.0 or newer for Boost.Context assembler support. include(CPM) CPMAddPackage( NAME Boost - URL https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.xz - URL_HASH SHA256=2e64e5d79a738d0fa6fb546c6e5c2bd28f88d268a2a080546f74e5ff98f29d0e + URL https://github.com/boostorg/boost/releases/download/boost-1.92.0/boost-1.92.0-cmake.tar.xz + URL_HASH SHA256=9bed76128d4e46755dbe818487788c6fceb6f72b378f4daa49b7e1e600d9088d EXCLUDE_FROM_ALL ON - ${BOOST_PATCHES} + PATCHES ${BOOST_PATCHES} ) # Due to MKL, we may require the release runtime (/MD) even when compiling in Debug mode. @@ -123,7 +124,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE}) # Indirect deps pulled by other boost targets set(Boost_Deps - assert context core coroutine exception random serialization variant2 + assert context core exception random serialization variant2 ) foreach(name IN ITEMS ${BOOST_INCLUDE_LIBRARIES} ${Boost_Deps}) if(TARGET boost_${name}) diff --git a/cmake/recipes/external/embree.cmake b/cmake/recipes/external/embree.cmake index 04ffd5a4..56608432 100644 --- a/cmake/recipes/external/embree.cmake +++ b/cmake/recipes/external/embree.cmake @@ -33,8 +33,10 @@ option(EMBREE_RAY_PACKETS "Enable the usage packed ray." # Match embree's platform detection logic for arm if(APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" AND CMAKE_OSX_ARCHITECTURES STREQUAL "") OR ("arm64" IN_LIST CMAKE_OSX_ARCHITECTURES)) + message(STATUS "Setting arm version of Embree") set(EMBREE_ARM ON) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") + message(STATUS "Setting arm version of Embree") set(EMBREE_ARM ON) endif()