diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d63bb1cd..0e122f89 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -144,27 +144,31 @@ jobs: name: windows strategy: matrix: - arch: [Win32, x64] + arch: [Win32, x64, Arm64] vstools: [vs2017, vs2022] include: - arch: x64 name_suffix: 64 - - vstools: vs2017 - arch: Win32 - cmake_generator: Visual Studio 15 2017 + - arch: Arm64 + name_suffix: -arm64 + runner: windows-11-arm + CMAKE_FLAGS: -DWITH_APACHE=OFF - vstools: vs2017 - arch: x64 - cmake_generator: Visual Studio 15 2017 Win64 + cmake_generator: Visual Studio 15 2017 - vstools: vs2022 cmake_generator: Visual Studio 17 2022 + exclude: + - vstools: vs2017 + arch: Arm64 + env: CMAKE_BUILD_TYPE: RelWithDebInfo - runs-on: windows-2022 + runs-on: ${{ matrix.runner || 'windows-2022' }} steps: - name: Checkout uses: actions/checkout@v7 @@ -176,9 +180,7 @@ jobs: - name: CMake run: | - cmake . -G "${{ matrix.cmake_generator }}" ${{ env.CMAKE_ARCH_FLAG }} - env: - CMAKE_ARCH_FLAG: ${{ matrix.vstools == 'vs2022' && format('-A {0}', matrix.arch) || ' ' }} + cmake . -G "${{ matrix.cmake_generator }}" -A ${{ matrix.arch }} ${{ matrix.CMAKE_FLAGS }} - name: Download dependencies run: | @@ -355,6 +357,11 @@ jobs: with: name: windows64-vs2017-binaries + - name: Download windows-arm64-vs2022-binaries + uses: actions/download-artifact@v8 + with: + name: windows-arm64-vs2022-binaries + - name: Download chocolatey uses: actions/download-artifact@v8 with: @@ -401,6 +408,7 @@ jobs: rclone copyto mac-static-universal-binaries/neko-*.tar.gz "r2:hxbuilds-hjtpx7fj/builds/neko/mac-universal/${FILE_NAME}.tar.gz" rclone copyto neko-*-win.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows/${FILE_NAME}.zip" rclone copyto neko-*-win64.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows64/${FILE_NAME}.zip" + rclone copyto neko-*-win-arm64.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows-arm64/${FILE_NAME}.zip" rclone copy neko.*.nupkg "r2:hxbuilds-hjtpx7fj/builds/neko/windows64-choco/" rclone copyto linux-static-amd64-binaries/neko-*.tar.gz "s3:hxbuilds/builds/neko/linux64/${FILE_NAME}.tar.gz" @@ -410,6 +418,7 @@ jobs: rclone copyto mac-static-universal-binaries/neko-*.tar.gz "s3:hxbuilds/builds/neko/mac-universal/${FILE_NAME}.tar.gz" rclone copyto neko-*-win.zip "s3:hxbuilds/builds/neko/windows/${FILE_NAME}.zip" rclone copyto neko-*-win64.zip "s3:hxbuilds/builds/neko/windows64/${FILE_NAME}.zip" + rclone copyto neko-*-win-arm64.zip "s3:hxbuilds/builds/neko/windows-arm64/${FILE_NAME}.zip" rclone copy neko.*.nupkg "s3:hxbuilds/builds/neko/windows64-choco/" - name: Update "latest" @@ -439,6 +448,7 @@ jobs: rclone copyto mac-static-universal-binaries/neko-*.tar.gz "r2:hxbuilds-hjtpx7fj/builds/neko/mac-universal/neko_latest.tar.gz" rclone copyto neko-*-win.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows/neko_latest.zip" rclone copyto neko-*-win64.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows64/neko_latest.zip" + rclone copyto neko-*-win-arm64.zip "r2:hxbuilds-hjtpx7fj/builds/neko/windows-arm64/neko_latest.zip" rclone copyto neko.*.nupkg "r2:hxbuilds-hjtpx7fj/builds/neko/windows64-choco/neko_latest.nupkg" rclone copyto linux-static-amd64-binaries/neko-*.tar.gz "s3:hxbuilds/builds/neko/linux64/neko_latest.tar.gz" @@ -448,8 +458,9 @@ jobs: rclone copyto mac-static-universal-binaries/neko-*.tar.gz "s3:hxbuilds/builds/neko/mac-universal/neko_latest.tar.gz" rclone copyto neko-*-win.zip "s3:hxbuilds/builds/neko/windows/neko_latest.zip" rclone copyto neko-*-win64.zip "s3:hxbuilds/builds/neko/windows64/neko_latest.zip" + rclone copyto neko-*-win-arm64.zip "s3:hxbuilds/builds/neko/windows-arm64/neko_latest.zip" rclone copyto neko.*.nupkg "s3:hxbuilds/builds/neko/windows64-choco/neko_latest.nupkg" - + curl "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/purge_cache" \ -fsS \ -H 'Content-Type: application/json' \ @@ -463,6 +474,7 @@ jobs: "https://build.haxe.org/builds/neko/mac-universal/neko_latest.tar.gz", "https://build.haxe.org/builds/neko/windows/neko_latest.zip", "https://build.haxe.org/builds/neko/windows64/neko_latest.zip", + "https://build.haxe.org/builds/neko/windows-arm64/neko_latest.zip", "https://build.haxe.org/builds/neko/windows64-choco/neko_latest.nupkg" ] }' diff --git a/CMakeLists.txt b/CMakeLists.txt index f074b2a1..b10ebe6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -738,7 +738,7 @@ else() set(OS_NAME "") endif() -if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") +if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(ARM|arm|aarch)64$") set(arch_suffix "-arm64") else() set(arch_suffix ${arch_64}) diff --git a/libs/mysql/CMakeLists.txt b/libs/mysql/CMakeLists.txt index e296c01a..31a4776c 100644 --- a/libs/mysql/CMakeLists.txt +++ b/libs/mysql/CMakeLists.txt @@ -6,7 +6,9 @@ if (STATIC_OPENSSL) if (WIN32) # perl is needed to run the openssl Configure script... find_package(Perl REQUIRED) - if (arch_64) + if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(ARM64|aarch64)$") + set(openssl_target VC-WIN64-ARM) + elseif (arch_64) set(openssl_target VC-WIN64A) else() set(openssl_target VC-WIN32) @@ -50,8 +52,8 @@ if (STATIC_OPENSSL) endif() ExternalProject_Add(OpenSSL ${EP_CONFIGS} - URL https://www.openssl.org/source/openssl-3.0.8.tar.gz - URL_HASH SHA256=6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e + URL https://github.com/openssl/openssl/releases/download/openssl-3.6.4/openssl-3.6.4.tar.gz + URL_HASH SHA256=9bffaa1ad1e07b354c21bd3324ec02fa15579f45a7d0494b3e74bc449b7333ef ${OPENSSL_CONFIGS} BYPRODUCTS ${OPENSSL_LIBRARIES} SOURCE_DIR ${CMAKE_BINARY_DIR}/libs/src/openssl diff --git a/libs/regexp/CMakeLists.txt b/libs/regexp/CMakeLists.txt index 20763827..9831cd05 100644 --- a/libs/regexp/CMakeLists.txt +++ b/libs/regexp/CMakeLists.txt @@ -9,8 +9,8 @@ if (STATIC_PCRE2) COMPILE_DEFINITIONS PCRE2_STATIC_LINK ) set(PCRE2_CONFIG - URL https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz - URL_HASH SHA256=c33b418e3b936ee3153de2c61cc638e7e4fe3156022a5c77d0711bcbb9d64f1f + URL https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.48/pcre2-10.48.tar.gz + URL_HASH SHA256=ebcc25aadf2a51fa1fefa9b8bc9e7a79b3dae86870a0f1152a22e42befd46888 ) if (WIN32) ExternalProject_Add(pcre2