aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/shader-slang
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/shader-slang
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/shader-slang')
-rw-r--r--vcpkg/ports/shader-slang/portfile.cmake149
-rw-r--r--vcpkg/ports/shader-slang/vcpkg.json14
2 files changed, 163 insertions, 0 deletions
diff --git a/vcpkg/ports/shader-slang/portfile.cmake b/vcpkg/ports/shader-slang/portfile.cmake
new file mode 100644
index 0000000..3cc03b7
--- /dev/null
+++ b/vcpkg/ports/shader-slang/portfile.cmake
@@ -0,0 +1,149 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+set(key NOTFOUND)
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(key "windows-${VCPKG_TARGET_ARCHITECTURE}")
+elseif(VCPKG_TARGET_IS_OSX)
+ set(key "macosx-${VCPKG_TARGET_ARCHITECTURE}")
+elseif(VCPKG_TARGET_IS_LINUX)
+ set(key "linux-${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+set(ARCHIVE NOTFOUND)
+# For convenient updates, use
+# vcpkg install shader-slang --cmake-args=-DVCPKG_SHADER_SLANG_UPDATE=1
+if(key STREQUAL "windows-x64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-x86_64.zip"
+ FILENAME "slang-${VERSION}-windows-x86_64.zip"
+ SHA512 82533b688e100a1aba34be4ae5ef30cda158d7bb7f06f7f6d02a9d3b08b69277f4edc6650ed60967162b812835c9c8b5a85defb21aef0012a00dad5344340111
+ )
+endif()
+if(key STREQUAL "windows-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-aarch64.zip"
+ FILENAME "slang-${VERSION}-windows-aarch64.zip"
+ SHA512 4962ec98bf61bb15296697681d8070a59c916eb583831bfc611684cbbf459b17e197c068862357bb7cf7160d14548a01c206723338c8e576db4103fe7dce6778
+ )
+endif()
+if(key STREQUAL "macosx-x64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-x86_64.zip"
+ FILENAME "slang-${VERSION}-macos-x86_64.zip"
+ SHA512 04f23543163bba57e68f130ee67e0de2a405b7d69f2a04c1a115432bd4b18e8ce93d6ae146616e06843bac9bbf6eaec315e05c021faa0dc383a870df1e5649ef
+ )
+endif()
+if(key STREQUAL "macosx-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-aarch64.zip"
+ FILENAME "slang-${VERSION}-macos-aarch64.zip"
+ SHA512 1f62de8a8f8b364c2b45dd1cd4781ebd3823fde4ca81b560a068638ac6662e6ef1143cd9f161bd401185a2b2a3df4b553b14c10e8fd042babbe057456cf17226
+ )
+endif()
+if(key STREQUAL "linux-x64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-x86_64.zip"
+ FILENAME "slang-${VERSION}-linux-x86_64.zip"
+ SHA512 9f13335f5d5599fab5c4ba17ee6003542f41e925e9f4b0c9695910d6012072cd0350a5b5e1e745c97375ece98cd9b3e4ca694c4160a74b0cf33309864186d4f7
+ )
+endif()
+if(key STREQUAL "linux-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
+ vcpkg_download_distfile(
+ ARCHIVE
+ URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-aarch64.zip"
+ FILENAME "slang-${VERSION}-linux-aarch64.zip"
+ SHA512 2b8b42c2ada7dc76e246a5668d01a416a99ebe2bcececabdbc43733ffe30ce743c4607ba84ce5e2682702ffd26f84ef2928c5f5a3a2cef860eaa15c384b7ee47
+ )
+endif()
+if(NOT ARCHIVE)
+ message(FATAL_ERROR "Unsupported platform. Please implement me!")
+endif()
+
+vcpkg_extract_source_archive(
+ BINDIST_PATH
+ ARCHIVE "${ARCHIVE}"
+ NO_REMOVE_ONE_LEVEL
+)
+
+if(VCPKG_SHADER_SLANG_UPDATE)
+ message(STATUS "All downloads are up-to-date.")
+ message(FATAL_ERROR "Stopping due to VCPKG_SHADER_SLANG_UPDATE being enabled.")
+endif()
+
+file(GLOB libs
+ "${BINDIST_PATH}/lib/*.lib"
+ "${BINDIST_PATH}/lib/*.dylib"
+ "${BINDIST_PATH}/lib/*.so"
+)
+file(INSTALL ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
+
+file(GLOB dyn_libs
+ "${BINDIST_PATH}/lib/*.dylib"
+ "${BINDIST_PATH}/lib/*.so"
+)
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ file(GLOB dlls "${BINDIST_PATH}/bin/*.dll")
+ list(APPEND dyn_libs ${dlls})
+ file(INSTALL ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
+endif()
+
+if(NOT VCPKG_BUILD_TYPE)
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug")
+ endif()
+endif()
+
+# On macos, slang has signed their binaries
+# vcpkg wants to be helpful and update the rpath as it moves binaries around but this
+# breaks the code signature and makes the binaries useless
+# Removing the signature is rude so instead we will disable rpath fixup
+if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
+ set(VCPKG_FIXUP_MACHO_RPATH OFF)
+endif()
+
+# Must manually copy some tool dependencies since vcpkg can't copy them automagically for us
+file(INSTALL ${dyn_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/shader-slang")
+vcpkg_copy_tools(TOOL_NAMES slangc slangd slangi SEARCH_DIR "${BINDIST_PATH}/bin")
+
+file(GLOB headers "${BINDIST_PATH}/include/*.h")
+file(INSTALL ${headers} DESTINATION "${CURRENT_PACKAGES_DIR}/include")
+
+block(SCOPE_FOR VARIABLES)
+ set(VCPKG_BUILD_TYPE Release) # no debug binaries anyways
+ file(COPY "${BINDIST_PATH}/cmake" DESTINATION "${CURRENT_PACKAGES_DIR}")
+ vcpkg_cmake_config_fixup(CONFIG_PATH cmake PACKAGE_NAME slang)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/slang/slangConfig.cmake"
+ [[HINTS ENV PATH "${PACKAGE_PREFIX_DIR}/bin"]]
+ [[PATHS "${PACKAGE_PREFIX_DIR}/tools/shader-slang" NO_DEFAULT_PATH REQUIRED]]
+ )
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/slang/slangConfigVersion.cmake"
+ [[if("${CMAKE_SIZEOF_VOID_P}" STREQUAL ""]]
+ [[if(#[=[ host tool ]=] "TRUE"]]
+ )
+endblock()
+
+vcpkg_install_copyright(
+ FILE_LIST "${BINDIST_PATH}/LICENSE"
+ COMMENT #[[ from README ]] [[
+The Slang code itself is under the Apache 2.0 with LLVM Exception license.
+
+Builds of the core Slang tools depend on the following projects, either automatically or optionally, which may have their own licenses:
+
+* [`glslang`](https://github.com/KhronosGroup/glslang) (BSD)
+* [`lz4`](https://github.com/lz4/lz4) (BSD)
+* [`miniz`](https://github.com/richgel999/miniz) (MIT)
+* [`spirv-headers`](https://github.com/KhronosGroup/SPIRV-Headers) (Modified MIT)
+* [`spirv-tools`](https://github.com/KhronosGroup/SPIRV-Tools) (Apache 2.0)
+* [`ankerl::unordered_dense::{map, set}`](https://github.com/martinus/unordered_dense) (MIT)
+
+Slang releases may include [slang-llvm](https://github.com/shader-slang/slang-llvm) which includes [LLVM](https://github.com/llvm/llvm-project) under the license:
+
+* [`llvm`](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) (Apache 2.0 License with LLVM exceptions)
+]])
diff --git a/vcpkg/ports/shader-slang/vcpkg.json b/vcpkg/ports/shader-slang/vcpkg.json
new file mode 100644
index 0000000..02e6029
--- /dev/null
+++ b/vcpkg/ports/shader-slang/vcpkg.json
@@ -0,0 +1,14 @@
+{
+ "name": "shader-slang",
+ "version": "2025.14.3",
+ "description": "Slang is a shading language that makes it easier to build and maintain large shader codebases in a modular and extensible fashion, while also maintaining the highest possible performance on modern GPUs and graphics APIs. Slang is based on years of collaboration between researchers at NVIDIA, Carnegie Mellon University, and Stanford.",
+ "homepage": "https://github.com/shader-slang/slang",
+ "license": null,
+ "supports": "(arm64 | x64) & (linux | osx | windows) & !uwp & !(static & staticcrt)",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}