2022-11-01 04:48:20 +08:00
|
|
|
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
|
|
|
|
|
2024-05-11 04:16:48 +08:00
|
|
|
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}")
|
2022-11-01 04:48:20 +08:00
|
|
|
elseif(VCPKG_TARGET_IS_LINUX)
|
2024-05-11 04:16:48 +08:00
|
|
|
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
|
2024-07-31 05:42:13 +08:00
|
|
|
URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-x86_64.zip"
|
|
|
|
FILENAME "slang-${VERSION}-windows-x86_64.zip"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 b1af26beb786b2f47bb4dc4e94613c9dda61f6c26539917376d13252ddcbed925f5b1f82948012d2cd288a20ea9d27f3703db96bc8b6689f69ac9f3e3a673584
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
endif()
|
2024-07-31 05:42:13 +08:00
|
|
|
if(key STREQUAL "windows-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
|
2024-05-11 04:16:48 +08:00
|
|
|
vcpkg_download_distfile(
|
|
|
|
ARCHIVE
|
2024-07-31 05:42:13 +08:00
|
|
|
URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-aarch64.zip"
|
|
|
|
FILENAME "slang-${VERSION}-windows-aarch64.zip"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 8c9f8082dd949d10d4228ce5d58cf862c9419039f7e5fdde3719f9ea446e55a87eb3e6f8367d26e0015830951c98175d1e59e95873cac9e937f98a6c8d211c16
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
if(key STREQUAL "macosx-x64" OR VCPKG_SHADER_SLANG_UPDATE)
|
|
|
|
vcpkg_download_distfile(
|
|
|
|
ARCHIVE
|
2024-07-31 05:42:13 +08:00
|
|
|
URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-x86_64.zip"
|
|
|
|
FILENAME "slang-${VERSION}-macos-x86_64.zip"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 88a920f44650bc99ed97b04d3d674fd256b1414c60697dee7bc234472abe9216d7a3d3e5b75537fe01f7da56fe1fe5348d2cd38dad43f4f143105e4cb2e1ec53
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
endif()
|
2024-07-31 05:42:13 +08:00
|
|
|
if(key STREQUAL "macosx-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
|
2024-05-11 04:16:48 +08:00
|
|
|
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"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 f3de6277d06a9aaadffe4e3d7d74a2352edc12001055142682eb65834cedfdea8f37daa65b7719178a4419f7e87842de6814c03a68b843c5c0085239bb895058
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
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"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 7db8c2635bd5868a6741c1e094b7b2f6a095b66f1314c811e6fd41fc198ef68c7700214d9e81db80615daadd2bb89e2a6169d8cb6da5f2185bafdcff43d581b8
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
endif()
|
2024-07-31 05:42:13 +08:00
|
|
|
if(key STREQUAL "linux-arm64" OR VCPKG_SHADER_SLANG_UPDATE)
|
2024-05-11 04:16:48 +08:00
|
|
|
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"
|
2024-09-10 11:35:55 +08:00
|
|
|
SHA512 5c7bc8a9fe3d7c3829434469833f4c1aa70160914d80ac5292ef115cb0a9c8a0907f9f49488b5d14bd2668bf5d3420ccad289aa4f02c6d673e492b548fd9f4e9
|
2024-05-11 04:16:48 +08:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
if(NOT ARCHIVE)
|
2022-11-01 04:48:20 +08:00
|
|
|
message(FATAL_ERROR "Unsupported platform. Please implement me!")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
vcpkg_extract_source_archive(
|
|
|
|
BINDIST_PATH
|
|
|
|
ARCHIVE "${ARCHIVE}"
|
|
|
|
NO_REMOVE_ONE_LEVEL
|
|
|
|
)
|
|
|
|
|
2024-05-11 04:16:48 +08:00
|
|
|
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()
|
2022-11-01 04:48:20 +08:00
|
|
|
|
2024-05-11 04:16:48 +08:00
|
|
|
file(GLOB libs
|
2024-07-31 05:42:13 +08:00
|
|
|
"${BINDIST_PATH}/lib/*.lib"
|
|
|
|
"${BINDIST_PATH}/lib/*.dylib"
|
|
|
|
"${BINDIST_PATH}/lib/*.so"
|
2022-11-01 04:48:20 +08:00
|
|
|
)
|
2024-05-11 04:16:48 +08:00
|
|
|
file(INSTALL ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
|
|
|
|
|
2024-09-05 13:35:42 +08:00
|
|
|
file(GLOB dyn_libs
|
|
|
|
"${BINDIST_PATH}/lib/*.dylib"
|
|
|
|
"${BINDIST_PATH}/lib/*.so"
|
|
|
|
)
|
|
|
|
|
2024-05-11 04:16:48 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
2024-09-10 11:35:55 +08:00
|
|
|
file(GLOB dlls "${BINDIST_PATH}/bin/*.dll")
|
|
|
|
list(APPEND dyn_libs ${dlls})
|
|
|
|
file(INSTALL ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
|
2024-05-11 04:16:48 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT VCPKG_BUILD_TYPE)
|
2024-09-10 11:35:55 +08:00
|
|
|
file(INSTALL "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
|
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
|
|
file(INSTALL "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
|
|
|
|
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)
|
2024-05-11 04:16:48 +08:00
|
|
|
endif()
|
|
|
|
|
2024-09-05 13:35:42 +08:00
|
|
|
# Must manually copy some tool dependencies since vcpkg can't copy them automagically for us
|
2024-09-10 11:35:55 +08:00
|
|
|
file(INSTALL ${dyn_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/shader-slang")
|
2024-07-31 05:42:13 +08:00
|
|
|
vcpkg_copy_tools(TOOL_NAMES slangc slangd SEARCH_DIR "${BINDIST_PATH}/bin")
|
2024-05-11 04:16:48 +08:00
|
|
|
|
2024-07-31 05:42:13 +08:00
|
|
|
file(GLOB headers "${BINDIST_PATH}/include/*.h")
|
2024-05-11 04:16:48 +08:00
|
|
|
file(INSTALL ${headers} DESTINATION "${CURRENT_PACKAGES_DIR}/include")
|
|
|
|
|
|
|
|
vcpkg_install_copyright(
|
|
|
|
FILE_LIST "${BINDIST_PATH}/LICENSE"
|
|
|
|
COMMENT #[[ from README ]] [[
|
|
|
|
The Slang code itself is under the MIT 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:
|
2022-11-01 04:48:20 +08:00
|
|
|
|
2024-05-11 04:16:48 +08:00
|
|
|
* [`llvm`](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) (Apache 2.0 License with LLVM exceptions)
|
|
|
|
]])
|