From 430940ebfe9e4f71303ceaad84d68a49d38324cc Mon Sep 17 00:00:00 2001 From: Craig Kolb Date: Thu, 13 Feb 2025 12:03:34 -0800 Subject: [PATCH] Initial linux-aarch64 support --- CMakeLists.txt | 8 ++++++++ external/CMakeLists.txt | 6 +++++- setup-tools.py | 19 ++++++++++++++----- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e706d4e5..6f6bd0b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,11 @@ enable_testing() include(GNUInstallDirs) include(CMakeRC) +if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") + # Building vcpkg for aarch64 requires the following + set($ENV{VCPKG_FORCE_SYSTEM_BINARIES}) +endif() + set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0") if (APPLE) @@ -84,6 +89,9 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(SGL_LINUX TRUE) set(SGL_HAS_D3D12 OFF) set(SGL_HAS_VULKAN ON) + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") + set(SGL_ARCH_ARM64 TRUE) + endif() elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(SGL_PLATFORM "macOS") set(SGL_MACOS TRUE) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 253d5473..1f7f940b 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -61,7 +61,11 @@ set(SLANG_URL_BASE "https://github.com/shader-slang/slang/releases/download/v${S if(SGL_WINDOWS) set(SLANG_URL "${SLANG_URL_BASE}/slang-${SLANG_VERSION}-windows-x86_64.zip") elseif(SGL_LINUX) - set(SLANG_URL "${SLANG_URL_BASE}/slang-${SLANG_VERSION}-linux-x86_64-glibc-2.17.tar.gz") + if(SGL_ARCH_ARM64) + set(SLANG_URL "${SLANG_URL_BASE}/slang-${SLANG_VERSION}-linux-aarch64.tar.gz") + else() + set(SLANG_URL "${SLANG_URL_BASE}/slang-${SLANG_VERSION}-linux-x86_64-glibc-2.17.tar.gz") + endif() elseif(SGL_MACOS) if(CMAKE_APPLE_SILICON_PROCESSOR MATCHES "x86_64") set(SLANG_URL "${SLANG_URL_BASE}/slang-${SLANG_VERSION}-macos-x86_64.zip") diff --git a/setup-tools.py b/setup-tools.py index e7bb65d6..36186121 100644 --- a/setup-tools.py +++ b/setup-tools.py @@ -300,23 +300,27 @@ def __init__(self): class ninja(Package): def __init__(self): self.name = "ninja" - self.version = "1.11.1" + self.version = "1.12.1" self.infos = { "windows-x64": { "url": f"https://github.com/ninja-build/ninja/releases/download/v{self.version}/ninja-win.zip", - "sha512": "a700e794c32eb67b9f87040db7f1ba3a8e891636696fc54d416b01661c2421ff46fa517c97fd904adacdf8e621df3e68ea380105b909ae8b6651a78ae7eb3199", + "sha512": "d6715c6458d798bcb809f410c0364dabd937b5b7a3ddb4cd5aba42f9fca45139b2a8a3e7fd9fbd88fd75d298ed99123220b33c7bdc8966a9d5f2a1c9c230955f", }, "linux-x64": { "url": f"https://github.com/ninja-build/ninja/releases/download/v{self.version}/ninja-linux.zip", - "sha512": "6403dac9196baffcff614fa73ea530752997c8db6bbfbaa0446b4b09d7327e2aa6e8615d1283c961d3bf0df497e85ba86604149f1505ee75f89d600245a45dde", + "sha512": "9c2ad534e7e72e67c608de7784cfbae601095bfca96713731a3f1eca268d66a6302f40c138a4ad97f7e8c902cd3fb05994a175e46fe922295dcc2d1334bf9014", + }, + "linux-arm64": { + "url": f"https://github.com/ninja-build/ninja/releases/download/v{self.version}/ninja-linux-aarch64.zip", + "sha512": "22c46abb7e6d916e11713705f78d093e9b30029cb49cadc65755908ad9f44b3f2548105174cc615a5ef86c4672b366173f18bd04c2d71710a303d952c06db334", }, "macos-x64": { "url": f"https://github.com/ninja-build/ninja/releases/download/v{self.version}/ninja-mac.zip", - "sha512": "dad33b0918c60bbf5107951a936175b1610b4894a408f4ba4b47a2f5b328fc982a52a2aed6a0cb75028ee4765af5083bea66611c37516826eb0c851366bb4427", + "sha512": "4c11f477359c9d1dcda72529a503a59948ec20b368992132e545d6d4f6e3aabfd1d6b1d0f32cf932626037959b24a7bb375ef901e2d002eabadc83a265cbc351", }, "macos-arm64": { "url": f"https://github.com/ninja-build/ninja/releases/download/v{self.version}/ninja-mac.zip", - "sha512": "dad33b0918c60bbf5107951a936175b1610b4894a408f4ba4b47a2f5b328fc982a52a2aed6a0cb75028ee4765af5083bea66611c37516826eb0c851366bb4427", + "sha512": "4c11f477359c9d1dcda72529a503a59948ec20b368992132e545d6d4f6e3aabfd1d6b1d0f32cf932626037959b24a7bb375ef901e2d002eabadc83a265cbc351", }, } @@ -336,6 +340,11 @@ def __init__(self): "sha512": "9dbb215810dbff4f75614928532f2ee88cf527b11b0834adbaa8d4f3a1940ce9aeb6e44475edbf3097f49bdad8a4b9f4d857c74798ff993b0f49a7dee0b033a3", "use_sub_dir": "clang_format/data/bin", }, + "linux-arm64": { + "url": f"https://files.pythonhosted.org/packages/83/47/10591237672762b61099011f04f154d5b46c21b4f88979c92331a04edacb/clang_format-{self.version}-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "sha512": "9dbb215810dbff4f75614928532f2ee88cf527b11b0834adbaa8d4f3a1940ce9aeb6e44475edbf3097f49bdad8a4b9f4d857c74798ff993b0f49a7dee0b033a3", + "use_sub_dir": "clang_format/data/bin", + }, "macos-x64": { "url": f"https://files.pythonhosted.org/packages/01/fb/8267d7035ec217df109cfde2164a26121413c3e7cd92896b862ce86b947c/clang_format-{self.version}-py2.py3-none-macosx_10_9_universal2.whl", "sha512": "705244ca8ba4c3fa9926311deedceebd9afdc6927c8ec38ac3d7083c814788060735b3baa6a8c5d8449737b4f7aedd590471ec18988e4508fc225d0a9a2d4bc9",