mirror of https://github.com/microsoft/vcpkg.git
[directx-dxc] Build from source [dawn] Revise port (#52689)
This commit is contained in:
parent
7341989f0b
commit
a979ee2394
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9a90f5b74b..4cc61df653 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -28,6 +28,8 @@
|
||||
# As per https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||
+
|
||||
# - Since we are past CMake 3.12 we can add CONFIGURE_DEPENDS to DawnGenerator to rerun CMake
|
||||
# in case any of the generator files changes. We should also remove the CACHE "" FORCE stuff to
|
||||
# override options in third_party dependencies.
|
||||
|
|
@ -1,19 +1,3 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9a90f5b74b..6ca0175556 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -484,6 +484,11 @@ set(TINT_SPIRV_TOOLS_DIR ${DAWN_SPIRV_TOOLS_DIR})
|
||||
################################################################################
|
||||
# Run on all subdirectories
|
||||
################################################################################
|
||||
+find_package(absl CONFIG REQUIRED)
|
||||
+if (DAWN_ENABLE_VULKAN)
|
||||
+ find_package(VulkanHeaders CONFIG REQUIRED)
|
||||
+ find_package(VulkanUtilityLibraries CONFIG REQUIRED)
|
||||
+endif()
|
||||
add_subdirectory(third_party)
|
||||
|
||||
# TODO(crbug.com/tint/455): Tint does not currently build with CMake when
|
||||
diff --git a/src/cmake/BundleLibraries.cmake b/src/cmake/BundleLibraries.cmake
|
||||
index 1ea9cfb4ee..1f971241cb 100644
|
||||
--- a/src/cmake/BundleLibraries.cmake
|
||||
|
|
@ -60,7 +44,7 @@ index 8bfeda55bc..a0f9858530 100644
|
|||
+
|
||||
include ("${CMAKE_CURRENT_LIST_DIR}/DawnTargets.cmake")
|
||||
diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt
|
||||
index 9332ff3c71..5f8da13fe0 100644
|
||||
index 9332ff3c71..ed6ca7f401 100644
|
||||
--- a/src/dawn/native/CMakeLists.txt
|
||||
+++ b/src/dawn/native/CMakeLists.txt
|
||||
@@ -668,11 +668,17 @@ if (DAWN_ENABLE_SPIRV_VALIDATION)
|
||||
|
|
@ -82,19 +66,37 @@ index 9332ff3c71..5f8da13fe0 100644
|
|||
"--supported-extensions"
|
||||
"${Dawn_SOURCE_DIR}/src/dawn/native/opengl/supported_extensions.json"
|
||||
OUTPUT_HEADERS DAWN_NATIVE_OPENGL_AUTOGEN_HEADERS
|
||||
@@ -983,7 +989,6 @@ if (DAWN_ENABLE_D3D12)
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
target_compile_definitions(dawn_native PRIVATE "DAWN_USE_BUILT_DXC")
|
||||
target_compile_definitions(dawn_native_objects PRIVATE "DAWN_USE_BUILT_DXC")
|
||||
- add_dependencies(dawn_native copy_dxil_dll)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1084,7 +1089,7 @@ endif ()
|
||||
# They happen because dxcompiler is declared a shared library and bundle_libraries
|
||||
# doesn't work well with shared libs
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
- target_link_libraries(dawn_native PRIVATE dxcompiler)
|
||||
+ target_link_libraries(dawn_native PRIVATE Microsoft::DirectXShaderCompiler)
|
||||
endif()
|
||||
|
||||
# Copy d3dcompiler_47.dll from Windows SDK when not using system component loading
|
||||
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||
index 8ff1eb05f7..d8ebe7c3e1 100644
|
||||
index 8ff1eb05f7..52e426662b 100644
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -41,6 +41,7 @@ if (DAWN_FETCH_DEPENDENCIES)
|
||||
@@ -41,6 +41,8 @@ if (DAWN_FETCH_DEPENDENCIES)
|
||||
)
|
||||
endif ()
|
||||
|
||||
+find_package(absl CONFIG REQUIRED GLOBAL)
|
||||
+if(0)
|
||||
set(ABSL_ROOT_DIR ${DAWN_ABSEIL_DIR})
|
||||
if (NOT TARGET absl::strings)
|
||||
# Recommended setting for compatibility with future abseil releases.
|
||||
@@ -62,6 +63,7 @@ if (NOT TARGET absl::strings)
|
||||
@@ -62,6 +64,7 @@ if (NOT TARGET absl::strings)
|
||||
|
||||
add_subdirectory(${DAWN_ABSEIL_DIR} "${CMAKE_CURRENT_BINARY_DIR}/abseil")
|
||||
endif()
|
||||
|
|
@ -102,7 +104,26 @@ index 8ff1eb05f7..d8ebe7c3e1 100644
|
|||
|
||||
if (DAWN_BUILD_PROTOBUF AND EXISTS "${DAWN_PROTOBUF_DIR}/cmake")
|
||||
if (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") AND WIN32)
|
||||
@@ -182,10 +184,12 @@ endif()
|
||||
@@ -145,6 +148,10 @@ if (NOT TARGET SPIRV-Tools AND
|
||||
endif()
|
||||
|
||||
if(NOT TARGET glslang AND (TINT_BUILD_GLSL_WRITER OR TINT_BUILD_GLSL_VALIDATOR) AND TINT_BUILD_CMD_TOOLS)
|
||||
+ find_package(glslang CONFIG REQUIRED GLOBAL)
|
||||
+ add_library(glslang ALIAS glslang::glslang)
|
||||
+ add_library(glslang-default-resource-limits ALIAS glslang::glslang-default-resource-limits)
|
||||
+ if(0)
|
||||
set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "" FORCE)
|
||||
set(ENABLE_OPT OFF CACHE BOOL "" FORCE)
|
||||
message(STATUS "Dawn: using GLSLang at ${DAWN_GLSLANG_DIR}")
|
||||
@@ -154,6 +161,7 @@ if(NOT TARGET glslang AND (TINT_BUILD_GLSL_WRITER OR TINT_BUILD_GLSL_VALIDATOR)
|
||||
set(BUILD_SHARED_LIBS 0)
|
||||
add_subdirectory("${DAWN_GLSLANG_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/glslang" EXCLUDE_FROM_ALL)
|
||||
set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_SAVED})
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
if (NOT TARGET glfw AND DAWN_USE_GLFW)
|
||||
@@ -182,10 +190,16 @@ endif()
|
||||
if (DAWN_ENABLE_DESKTOP_GL OR DAWN_ENABLE_OPENGLES)
|
||||
# Header-only library for khrplatform.h
|
||||
add_library(dawn_khronos_platform INTERFACE)
|
||||
|
|
@ -113,11 +134,15 @@ index 8ff1eb05f7..d8ebe7c3e1 100644
|
|||
+ target_include_directories(dawn_khronos_platform INTERFACE "${EGL_REGISTRY_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
+if (DAWN_ENABLE_VULKAN)
|
||||
+ find_package(VulkanHeaders CONFIG REQUIRED GLOBAL)
|
||||
+ find_package(VulkanUtilityLibraries CONFIG REQUIRED GLOBAL)
|
||||
+endif()
|
||||
+if(0)
|
||||
if (NOT TARGET Vulkan::Headers AND DAWN_ENABLE_VULKAN)
|
||||
message(STATUS "Dawn: using Vulkan::Headers at ${DAWN_VULKAN_HEADERS_DIR}")
|
||||
|
||||
@@ -202,6 +206,7 @@ if (NOT TARGET Vulkan::UtilityHeaders AND DAWN_ENABLE_VULKAN)
|
||||
@@ -202,6 +216,7 @@ if (NOT TARGET Vulkan::UtilityHeaders AND DAWN_ENABLE_VULKAN)
|
||||
message(STATUS "Dawn: using VulkanUtilityLibraries at ${DAWN_VULKAN_UTILITY_LIBRARIES_DIR}")
|
||||
add_subdirectory(${DAWN_VULKAN_UTILITY_LIBRARIES_DIR} "${CMAKE_CURRENT_BINARY_DIR}/vulkan-utility-libraries/src")
|
||||
endif()
|
||||
|
|
@ -125,3 +150,12 @@ index 8ff1eb05f7..d8ebe7c3e1 100644
|
|||
|
||||
if (DAWN_ENABLE_SWIFTSHADER AND NOT TARGET vk_swiftshader)
|
||||
set(SWIFTSHADER_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
||||
@@ -359,7 +374,7 @@ function(AddSubdirectoryDXC)
|
||||
endfunction()
|
||||
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
- AddSubdirectoryDXC()
|
||||
+ find_package(directx-dxc CONFIG REQUIRED GLOBAL)
|
||||
endif()
|
||||
|
||||
if (TINT_BUILD_TINTD)
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||
index d8ebe7c3e1..1d9cbdb5e4 100644
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -122,6 +122,12 @@ if (EMSCRIPTEN)
|
||||
return()
|
||||
endif()
|
||||
|
||||
+if(NOT TARGET glslang AND (TINT_BUILD_GLSL_WRITER OR TINT_BUILD_GLSL_VALIDATOR) AND TINT_BUILD_CMD_TOOLS)
|
||||
+ find_package(glslang CONFIG REQUIRED GLOBAL)
|
||||
+ add_library(glslang ALIAS glslang::glslang)
|
||||
+ add_library(glslang-default-resource-limits ALIAS glslang::glslang-default-resource-limits)
|
||||
+endif()
|
||||
+
|
||||
# Force ENABLE_RTTI in spirv-tools and glslang.
|
||||
set(ENABLE_RTTI ${DAWN_ENABLE_RTTI} CACHE BOOL "" FORCE)
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt
|
||||
index 5f8da13fe0..ed6ca7f401 100644
|
||||
--- a/src/dawn/native/CMakeLists.txt
|
||||
+++ b/src/dawn/native/CMakeLists.txt
|
||||
@@ -989,7 +989,6 @@ if (DAWN_ENABLE_D3D12)
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
target_compile_definitions(dawn_native PRIVATE "DAWN_USE_BUILT_DXC")
|
||||
target_compile_definitions(dawn_native_objects PRIVATE "DAWN_USE_BUILT_DXC")
|
||||
- add_dependencies(dawn_native copy_dxil_dll)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1090,7 +1089,7 @@ endif ()
|
||||
# They happen because dxcompiler is declared a shared library and bundle_libraries
|
||||
# doesn't work well with shared libs
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
- target_link_libraries(dawn_native PRIVATE dxcompiler)
|
||||
+ target_link_libraries(dawn_native PRIVATE Microsoft::DirectXShaderCompiler)
|
||||
endif()
|
||||
|
||||
# Copy d3dcompiler_47.dll from Windows SDK when not using system component loading
|
||||
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||
index 1d9cbdb5e4..51777b59a4 100644
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -370,7 +370,7 @@ function(AddSubdirectoryDXC)
|
||||
endfunction()
|
||||
|
||||
if (DAWN_USE_BUILT_DXC)
|
||||
- AddSubdirectoryDXC()
|
||||
+ find_package(directx-dxc CONFIG REQUIRED GLOBAL)
|
||||
endif()
|
||||
|
||||
if (TINT_BUILD_TINTD)
|
||||
|
|
@ -32,6 +32,7 @@ if (VCPKG_TARGET_IS_EMSCRIPTEN)
|
|||
return()
|
||||
endif()
|
||||
|
||||
# dawn requires specific version of directx-dxc, when update this port, please update directx-dxc as well.
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO google/dawn
|
||||
|
|
@ -39,68 +40,97 @@ vcpkg_from_github(
|
|||
SHA512 d26d95efd20006f1949804e27c766c31a88183daf7d1c3f42022d856042ea523e1253adb8c90a365bad10a7c3e80acefbae5a3ed6d761f9754573a678283c674
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
001-fix-windows-build.patch
|
||||
# DAWN_BUILD_MONOLITHIC_LIBRARY SHARED/STATIC requires BUILD_SHARED_LIBS=OFF
|
||||
001-fix-linkage.patch
|
||||
002-fix-windows-build.patch
|
||||
003-force-disable-cxx-module.patch
|
||||
004-deps.patch
|
||||
005-bsd-support.patch
|
||||
008-wrong-dxcapi-include.patch
|
||||
009-fix-tint-install.patch
|
||||
010-fix-glslang.patch
|
||||
011-fix-dxc.patch
|
||||
)
|
||||
|
||||
function(checkout_in_path PATH URL REF)
|
||||
cmake_parse_arguments(EXTERNAL "" "" "PATCHES" ${ARGN})
|
||||
if(EXISTS "${PATH}")
|
||||
file(GLOB_RECURSE subdirectory_children "${CURRENT_PACKAGES_DIR}/include/${directory_child}/*")
|
||||
if(NOT "${subdirectory_children}" STREQUAL "")
|
||||
return()
|
||||
function(z_vcpkg_from_github_to_path)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_SOURCE_PATH;REPO;REF;SHA512;HEAD_REF" "PATCHES")
|
||||
if(EXISTS "${arg_OUT_SOURCE_PATH}")
|
||||
file(GLOB children LIST_DIRECTORIES true "${arg_OUT_SOURCE_PATH}/*")
|
||||
if(NOT "${children}" STREQUAL "")
|
||||
message(FATAL_ERROR "The path ${arg_OUT_SOURCE_PATH} already exists and is not empty.")
|
||||
else()
|
||||
file(REMOVE_RECURSE "${PATH}")
|
||||
file(REMOVE_RECURSE "${arg_OUT_SOURCE_PATH}")
|
||||
endif()
|
||||
unset(children)
|
||||
endif()
|
||||
|
||||
vcpkg_from_git(
|
||||
OUT_SOURCE_PATH DEP_SOURCE_PATH
|
||||
URL "${URL}"
|
||||
REF "${REF}"
|
||||
PATCHES ${EXTERNAL_PATCHES}
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH out_source_path
|
||||
REPO "${arg_REPO}"
|
||||
REF "${arg_REF}"
|
||||
SHA512 "${arg_SHA512}"
|
||||
HEAD_REF "${arg_HEAD_REF}"
|
||||
PATCHES ${arg_PATCHES}
|
||||
)
|
||||
file(RENAME "${DEP_SOURCE_PATH}" "${PATH}")
|
||||
file(REMOVE_RECURSE "${DEP_SOURCE_PATH}")
|
||||
file(RENAME "${out_source_path}" "${arg_OUT_SOURCE_PATH}")
|
||||
file(REMOVE_RECURSE "${out_source_path}")
|
||||
endfunction()
|
||||
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/jinja2"
|
||||
"https://chromium.googlesource.com/chromium/src/third_party/jinja2"
|
||||
"c3027d884967773057bf74b957e3fea87e5df4d7"
|
||||
function(z_vcpkg_from_git_to_path)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_SOURCE_PATH;URL;REF" "PATCHES")
|
||||
if(EXISTS "${arg_OUT_SOURCE_PATH}")
|
||||
file(GLOB children LIST_DIRECTORIES true "${arg_OUT_SOURCE_PATH}/*")
|
||||
if(NOT "${children}" STREQUAL "")
|
||||
message(FATAL_ERROR "The path ${arg_OUT_SOURCE_PATH} already exists and is not empty.")
|
||||
else()
|
||||
file(REMOVE_RECURSE "${arg_OUT_SOURCE_PATH}")
|
||||
endif()
|
||||
unset(children)
|
||||
endif()
|
||||
vcpkg_from_git(
|
||||
OUT_SOURCE_PATH out_source_path
|
||||
URL "${arg_URL}"
|
||||
REF "${arg_REF}"
|
||||
PATCHES ${arg_PATCHES}
|
||||
)
|
||||
file(RENAME "${out_source_path}" "${arg_OUT_SOURCE_PATH}")
|
||||
file(REMOVE_RECURSE "${out_source_path}")
|
||||
endfunction()
|
||||
|
||||
z_vcpkg_from_git_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/third_party/jinja2"
|
||||
URL "https://chromium.googlesource.com/chromium/src/third_party/jinja2"
|
||||
REF c3027d884967773057bf74b957e3fea87e5df4d7
|
||||
)
|
||||
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/markupsafe"
|
||||
"https://chromium.googlesource.com/chromium/src/third_party/markupsafe"
|
||||
"4256084ae14175d38a3ff7d739dca83ae49ccec6"
|
||||
z_vcpkg_from_git_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/third_party/markupsafe"
|
||||
URL "https://chromium.googlesource.com/chromium/src/third_party/markupsafe"
|
||||
REF 4256084ae14175d38a3ff7d739dca83ae49ccec6
|
||||
)
|
||||
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/spirv-headers/src"
|
||||
"https://github.com/KhronosGroup/SPIRV-Headers"
|
||||
"c63848ecf2200425511319fd8bf2c17b751e501e"
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/third_party/spirv-headers/src"
|
||||
REPO KhronosGroup/SPIRV-Headers
|
||||
REF c63848ecf2200425511319fd8bf2c17b751e501e
|
||||
SHA512 076a575a00c1cdd2e02d0b3b5805b05b3a855eef301d9d6a0f8334d9cd79b31367e69c0cb8fceea4d9398bc7a012ea3baa23259fc2c5d63f48fe4df4007f6945
|
||||
HEAD_REF main
|
||||
)
|
||||
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/spirv-tools/src"
|
||||
"https://github.com/KhronosGroup/SPIRV-Tools"
|
||||
"58fe144fdc8847b303be51d4f8fcc9e7da17056e"
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/third_party/spirv-tools/src"
|
||||
REPO KhronosGroup/SPIRV-Tools
|
||||
REF 58fe144fdc8847b303be51d4f8fcc9e7da17056e
|
||||
SHA512 37af62c52ff296f64e745f58a7abad16d218e0323329bb6eec36aa4abdfbca3f0806b7e3b76a7bba0dd273519ecc4ba86eba0d2c5e1103669c00aec6dfb08bd4
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
# Dawn sets SPIRV_WERROR to OFF when building SPIRV-Tools, but https://github.com/KhronosGroup/SPIRV-Tools/commit/337fdb6a284fe7f7e374a14271f8e20e579f3263 ignores that CMake variable and forces /WX
|
||||
800-msvc-spirv-tools-disable-warnaserror.patch
|
||||
)
|
||||
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/webgpu-headers/src"
|
||||
"https://github.com/webgpu-native/webgpu-headers"
|
||||
"a11ef4462405c4506ad7284e5b1edeff2750bb54"
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/third_party/webgpu-headers/src"
|
||||
REPO webgpu-native/webgpu-headers
|
||||
REF a11ef4462405c4506ad7284e5b1edeff2750bb54
|
||||
SHA512 54d51b3fda588d0d99c2b3b369456cc4291ab344d91a7d050e65b5ce5258263b8e39be36d9ca80d6f93e97a3d22a1468cb247800eae29e77c217e695b392faf6
|
||||
HEAD_REF main
|
||||
)
|
||||
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
|
|
@ -126,7 +156,7 @@ vcpkg_check_features(
|
|||
)
|
||||
|
||||
set(DAWN_USE_BUILT_DXC OFF)
|
||||
if(DAWN_ENABLE_D3D11 OR DAWN_ENABLE_D3D12)
|
||||
if(DAWN_ENABLE_D3D12)
|
||||
set(DAWN_USE_BUILT_DXC ON)
|
||||
endif()
|
||||
set(DAWN_USE_TINT_SPV OFF)
|
||||
|
|
@ -134,10 +164,6 @@ if(DAWN_ENABLE_VULKAN)
|
|||
set(DAWN_USE_TINT_SPV ON)
|
||||
endif()
|
||||
|
||||
# DAWN_BUILD_MONOLITHIC_LIBRARY SHARED/STATIC requires BUILD_SHARED_LIBS=OFF
|
||||
set(VCPKG_LIBRARY_LINKAGE_BACKUP ${VCPKG_LIBRARY_LINKAGE})
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
|
|
@ -162,9 +188,6 @@ vcpkg_cmake_configure(
|
|||
vcpkg_cmake_install()
|
||||
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Dawn)
|
||||
|
||||
# Restore the original library linkage
|
||||
set(VCPKG_LIBRARY_LINKAGE ${VCPKG_LIBRARY_LINKAGE_BACKUP})
|
||||
|
||||
list(APPEND DAWN_ABSL_REQUIRES
|
||||
absl_flat_hash_set
|
||||
absl_flat_hash_map
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "dawn",
|
||||
"version": "20260624.223603",
|
||||
"port-version": 1,
|
||||
"description": "Dawn is an open-source and cross-platform implementation of the WebGPU standard.",
|
||||
"homepage": "https://dawn.googlesource.com/dawn",
|
||||
"license": "BSD-3-Clause",
|
||||
|
|
@ -55,10 +56,7 @@
|
|||
"features": {
|
||||
"d3d11": {
|
||||
"description": "Direct3D 11 backend support",
|
||||
"supports": "windows",
|
||||
"dependencies": [
|
||||
"directx-dxc"
|
||||
]
|
||||
"supports": "windows"
|
||||
},
|
||||
"d3d12": {
|
||||
"description": "Direct3D 12 backend support",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 521071800..49f35983c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,6 +1,8 @@
|
||||
# See docs/CMake.html for instructions about how to build LLVM with CMake.
|
||||
cmake_minimum_required(VERSION 3.17.2) # HLSL Change - Require CMake 3.17.2.
|
||||
|
||||
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||
+
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
diff --git a/utils/GetCommitInfo.py b/utils/GetCommitInfo.py
|
||||
index bbb4675ad..726bd53d5 100644
|
||||
--- a/utils/GetCommitInfo.py
|
||||
+++ b/utils/GetCommitInfo.py
|
||||
@@ -5,6 +5,7 @@ import subprocess
|
||||
|
||||
|
||||
def git_get_commit_hash():
|
||||
+ return "e39cf36f5"
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
['git', 'rev-parse', '--short=8', 'HEAD']).decode('ascii').strip()
|
||||
@@ -13,6 +14,7 @@ def git_get_commit_hash():
|
||||
|
||||
|
||||
def git_get_commit_count():
|
||||
+ return 5376
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
['git', 'rev-list', '--count', 'HEAD']).decode('ascii').strip()
|
||||
diff --git a/utils/version/gen_version.py b/utils/version/gen_version.py
|
||||
index 97856d42b..6433b4f62 100644
|
||||
--- a/utils/version/gen_version.py
|
||||
+++ b/utils/version/gen_version.py
|
||||
@@ -40,6 +40,7 @@ def is_dirty():
|
||||
return len(diff.strip()) != 0
|
||||
|
||||
def get_last_commit_sha():
|
||||
+ return "e39cf36f5-dirty"
|
||||
try:
|
||||
sha = get_output_of(["git", "rev-parse", "--short", "HEAD"])
|
||||
if is_dirty():
|
||||
@@ -49,12 +50,14 @@ def get_last_commit_sha():
|
||||
return "00000000"
|
||||
|
||||
def get_current_branch():
|
||||
+ return "HEAD"
|
||||
try:
|
||||
return get_output_of(["git", "rev-parse", "--abbrev-ref", "HEAD"])
|
||||
except subprocess.CalledProcessError:
|
||||
return "private"
|
||||
|
||||
def get_commit_count(sha):
|
||||
+ return 5376
|
||||
try:
|
||||
return get_output_of(["git", "rev-list", "--count", sha])
|
||||
except subprocess.CalledProcessError:
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
diff --git a/cmake/modules/CrossCompile.cmake b/cmake/modules/CrossCompile.cmake
|
||||
index 76a3078a5..5cb0aa0a6 100644
|
||||
--- a/cmake/modules/CrossCompile.cmake
|
||||
+++ b/cmake/modules/CrossCompile.cmake
|
||||
@@ -18,6 +18,7 @@ function(llvm_create_cross_target_internal target_name toochain buildtype)
|
||||
|
||||
add_custom_command(OUTPUT ${LLVM_${target_name}_BUILD}/CMakeCache.txt
|
||||
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
|
||||
+ "-DPython3_EXECUTABLE=${Python3_EXECUTABLE}"
|
||||
${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_SOURCE_DIR}
|
||||
WORKING_DIRECTORY ${LLVM_${target_name}_BUILD}
|
||||
DEPENDS ${LLVM_${target_name}_BUILD}
|
||||
@@ -42,6 +43,7 @@ function(llvm_create_cross_target_internal target_name toochain buildtype)
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} ${build_type_flags}
|
||||
-G "${CMAKE_GENERATOR}" -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD}
|
||||
+ "-DPython3_EXECUTABLE=${Python3_EXECUTABLE}"
|
||||
${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_SOURCE_DIR}
|
||||
WORKING_DIRECTORY ${LLVM_${target_name}_BUILD} )
|
||||
endif(NOT IS_DIRECTORY ${LLVM_${target_name}_BUILD})
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
|
||||
set(VCPKG_BUILD_TYPE release) # host tool for building directx-dxc
|
||||
|
||||
# Stay up to date with directx-dxc
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO microsoft/DirectXShaderCompiler
|
||||
REF e39cf36f5b2a171000a3a1134dadc9f454ff54cf
|
||||
SHA512 143f560ec7d8753ea1795fe7b2922823a6f1dcaf2becbd1a88b1a3fd9ce2da006072d8d1c318b834ea4b6344d3ec71d8d8f5b8870e06282fbb5352d16d7ca1cb
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
001-fix-linkage.patch
|
||||
# Update this patch file when update version
|
||||
002-fix-gen-version-inc.patch
|
||||
003-fix-python.patch
|
||||
)
|
||||
|
||||
function(z_vcpkg_from_github_to_path)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_SOURCE_PATH;REPO;REF;SHA512;HEAD_REF" "PATCHES")
|
||||
if(EXISTS "${arg_OUT_SOURCE_PATH}")
|
||||
file(GLOB children LIST_DIRECTORIES true "${arg_OUT_SOURCE_PATH}/*")
|
||||
if(NOT "${children}" STREQUAL "")
|
||||
message(FATAL_ERROR "The path ${arg_OUT_SOURCE_PATH} already exists and is not empty.")
|
||||
else()
|
||||
file(REMOVE_RECURSE "${arg_OUT_SOURCE_PATH}")
|
||||
endif()
|
||||
unset(children)
|
||||
endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH out_source_path
|
||||
REPO "${arg_REPO}"
|
||||
REF "${arg_REF}"
|
||||
SHA512 "${arg_SHA512}"
|
||||
HEAD_REF "${arg_HEAD_REF}"
|
||||
PATCHES ${arg_PATCHES}
|
||||
)
|
||||
file(RENAME "${out_source_path}" "${arg_OUT_SOURCE_PATH}")
|
||||
file(REMOVE_RECURSE "${out_source_path}")
|
||||
endfunction()
|
||||
|
||||
if(NOT VCPKG_TARGET_IS_WINDOWS)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/DirectX-Headers"
|
||||
REPO microsoft/DirectX-Headers
|
||||
REF 980971e835876dc0cde415e8f9bc646e64667bf7
|
||||
SHA512 a570068d3c25c68eba34a2653108e2019f888a7392a803f97da9a401713b14bf4235520f0adc37c2f6ffb27cfb118ca7bb0fc8e446b342a7393c9c64afd84ed8
|
||||
HEAD_REF main
|
||||
)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/SPIRV-Headers"
|
||||
REPO KhronosGroup/SPIRV-Headers
|
||||
REF ad9184e76a66b1001c29db9b0a3e87f646c64de0
|
||||
SHA512 7d422d2a37617bd05e050000caab431dd35aae86d0925becbe22ea22cbf4be96ecbc429f5442d3b9386026496a91f44e8d1a6867725ee60f4ea3a23d4e2ad969
|
||||
HEAD_REF main
|
||||
)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/SPIRV-Tools"
|
||||
REPO KhronosGroup/SPIRV-Tools
|
||||
REF 0539c81f69a3daeb706fd3477dca61435b475156
|
||||
SHA512 d620f1875c8a12201ca90af7a4a2cb53bd174ade53e898dae325095b50440b59fb6996e4bd0650c49b1ee5fcd6fbca8fd38dd5089b82030864494e95b29f7c76
|
||||
HEAD_REF main
|
||||
)
|
||||
endif()
|
||||
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
"-DPython3_EXECUTABLE=${PYTHON3}"
|
||||
-DHLSL_OPTIONAL_PROJS_IN_DEFAULT=OFF
|
||||
-DHLSL_ENABLE_ANALYZE=OFF
|
||||
-DHLSL_OFFICIAL_BUILD=OFF
|
||||
-DHLSL_ENABLE_FIXED_VER=OFF
|
||||
-DHLSL_BUILD_DXILCONV=OFF
|
||||
-DHLSL_INCLUDE_TESTS=OFF
|
||||
-DHLSL_ENABLE_DEBUG_ITERATORS=ON
|
||||
-DENABLE_SPIRV_CODEGEN=OFF
|
||||
-DSPIRV_BUILD_TESTS=OFF
|
||||
-DLLVM_BUILD_INSTRUMENTED_COVERAGE=OFF
|
||||
-DLLVM_BUILD_RUNTIME=ON
|
||||
-DLLVM_BUILD_EXAMPLES=OFF
|
||||
-DLLVM_BUILD_TESTS=OFF
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_INCLUDE_DOCS=OFF
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=OFF
|
||||
-DLLVM_APPEND_VC_REV=OFF
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_TARGETS_TO_BUILD=None
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE=dxil-ms-dx
|
||||
-DCLANG_CL=OFF
|
||||
-DCLANG_ENABLE_STATIC_ANALYZER=OFF
|
||||
-DCLANG_ENABLE_ARCMT=OFF
|
||||
-DCLANG_BUILD_EXAMPLES=OFF
|
||||
-DCLANG_INCLUDE_TESTS=OFF
|
||||
-DLIBCLANG_BUILD_STATIC=ON
|
||||
MAYBE_UNUSED_VARIABLES
|
||||
CLANG_CL
|
||||
)
|
||||
|
||||
vcpkg_cmake_build(TARGET "llvm-tblgen;clang-tblgen")
|
||||
|
||||
set(BUILD_REL_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
||||
|
||||
if(NOT EXISTS "${BUILD_REL_DIR}")
|
||||
message(FATAL_ERROR "${BUILD_REL_DIR} is not exists")
|
||||
endif()
|
||||
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/bin/llvm-tblgen${VCPKG_HOST_EXECUTABLE_SUFFIX}"
|
||||
"${BUILD_REL_DIR}/bin/clang-tblgen${VCPKG_HOST_EXECUTABLE_SUFFIX}"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}"
|
||||
USE_SOURCE_PERMISSIONS
|
||||
)
|
||||
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT")
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "directx-dxc-tblgen",
|
||||
"version-date": "2026-06-24",
|
||||
"description": "Host tool llvm-tblgen and clang-tblgen for directx-dxc build",
|
||||
"homepage": "https://github.com/microsoft/DirectXShaderCompiler",
|
||||
"documentation": "https://github.com/microsoft/DirectXShaderCompiler/wiki",
|
||||
"license": null,
|
||||
"supports": "native & ((windows & !arm32 & !uwp & !xbox) | (linux & x64))",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-get-python-packages",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 521071800..49f35983c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,6 +1,8 @@
|
||||
# See docs/CMake.html for instructions about how to build LLVM with CMake.
|
||||
cmake_minimum_required(VERSION 3.17.2) # HLSL Change - Require CMake 3.17.2.
|
||||
|
||||
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||
+
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
diff --git a/utils/GetCommitInfo.py b/utils/GetCommitInfo.py
|
||||
index bbb4675ad..726bd53d5 100644
|
||||
--- a/utils/GetCommitInfo.py
|
||||
+++ b/utils/GetCommitInfo.py
|
||||
@@ -5,6 +5,7 @@ import subprocess
|
||||
|
||||
|
||||
def git_get_commit_hash():
|
||||
+ return "e39cf36f5"
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
['git', 'rev-parse', '--short=8', 'HEAD']).decode('ascii').strip()
|
||||
@@ -13,6 +14,7 @@ def git_get_commit_hash():
|
||||
|
||||
|
||||
def git_get_commit_count():
|
||||
+ return 5376
|
||||
try:
|
||||
return subprocess.check_output(
|
||||
['git', 'rev-list', '--count', 'HEAD']).decode('ascii').strip()
|
||||
diff --git a/utils/version/gen_version.py b/utils/version/gen_version.py
|
||||
index 97856d42b..6433b4f62 100644
|
||||
--- a/utils/version/gen_version.py
|
||||
+++ b/utils/version/gen_version.py
|
||||
@@ -40,6 +40,7 @@ def is_dirty():
|
||||
return len(diff.strip()) != 0
|
||||
|
||||
def get_last_commit_sha():
|
||||
+ return "e39cf36f5-dirty"
|
||||
try:
|
||||
sha = get_output_of(["git", "rev-parse", "--short", "HEAD"])
|
||||
if is_dirty():
|
||||
@@ -49,12 +50,14 @@ def get_last_commit_sha():
|
||||
return "00000000"
|
||||
|
||||
def get_current_branch():
|
||||
+ return "HEAD"
|
||||
try:
|
||||
return get_output_of(["git", "rev-parse", "--abbrev-ref", "HEAD"])
|
||||
except subprocess.CalledProcessError:
|
||||
return "private"
|
||||
|
||||
def get_commit_count(sha):
|
||||
+ return 5376
|
||||
try:
|
||||
return get_output_of(["git", "rev-list", "--count", sha])
|
||||
except subprocess.CalledProcessError:
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
diff --git a/cmake/modules/CrossCompile.cmake b/cmake/modules/CrossCompile.cmake
|
||||
index 76a3078a5..5cb0aa0a6 100644
|
||||
--- a/cmake/modules/CrossCompile.cmake
|
||||
+++ b/cmake/modules/CrossCompile.cmake
|
||||
@@ -18,6 +18,7 @@ function(llvm_create_cross_target_internal target_name toochain buildtype)
|
||||
|
||||
add_custom_command(OUTPUT ${LLVM_${target_name}_BUILD}/CMakeCache.txt
|
||||
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
|
||||
+ "-DPython3_EXECUTABLE=${Python3_EXECUTABLE}"
|
||||
${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_SOURCE_DIR}
|
||||
WORKING_DIRECTORY ${LLVM_${target_name}_BUILD}
|
||||
DEPENDS ${LLVM_${target_name}_BUILD}
|
||||
@@ -42,6 +43,7 @@ function(llvm_create_cross_target_internal target_name toochain buildtype)
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} ${build_type_flags}
|
||||
-G "${CMAKE_GENERATOR}" -DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD}
|
||||
+ "-DPython3_EXECUTABLE=${Python3_EXECUTABLE}"
|
||||
${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_SOURCE_DIR}
|
||||
WORKING_DIRECTORY ${LLVM_${target_name}_BUILD} )
|
||||
endif(NOT IS_DIRECTORY ${LLVM_${target_name}_BUILD})
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 49f35983c..171ff6fef 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -627,9 +627,11 @@ include_directories( ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR})
|
||||
include_directories( ${LLVM_INCLUDE_DIR}/dxc/Tracing) # HLSL Change
|
||||
|
||||
# when crosscompiling import the executable targets from a file
|
||||
+if(DXC_ENABLE_HOST_TOOLS)
|
||||
if(LLVM_USE_HOST_TOOLS)
|
||||
include(CrossCompile)
|
||||
endif(LLVM_USE_HOST_TOOLS)
|
||||
+endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
|
||||
# On FreeBSD, /usr/local/* is not used by default. In order to build LLVM
|
||||
diff --git a/cmake/modules/TableGen.cmake b/cmake/modules/TableGen.cmake
|
||||
index 85d720e91..2a872491a 100644
|
||||
--- a/cmake/modules/TableGen.cmake
|
||||
+++ b/cmake/modules/TableGen.cmake
|
||||
@@ -92,6 +92,7 @@ macro(add_tablegen target project)
|
||||
set(${project}_TABLEGEN_EXE ${${project}_TABLEGEN} PARENT_SCOPE)
|
||||
set(${project}_TABLEGEN_TARGET ${${project}_TABLEGEN} PARENT_SCOPE)
|
||||
|
||||
+ if(DXC_ENABLE_HOST_TOOLS)
|
||||
if(LLVM_USE_HOST_TOOLS)
|
||||
if( ${${project}_TABLEGEN} STREQUAL "${target}" )
|
||||
if (NOT CMAKE_CONFIGURATION_TYPES)
|
||||
@@ -110,6 +111,7 @@ macro(add_tablegen target project)
|
||||
set(${project}_TABLEGEN_TARGET ${project}-tablegen-host PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
+ endif()
|
||||
|
||||
if( MINGW )
|
||||
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
|
||||
index edbd8c950..1d2e3e658 100644
|
||||
--- a/tools/llvm-config/CMakeLists.txt
|
||||
+++ b/tools/llvm-config/CMakeLists.txt
|
||||
@@ -37,6 +37,7 @@ add_definitions(-DCMAKE_CFG_INTDIR="${CMAKE_CFG_INTDIR}")
|
||||
# Add the dependency on the generation step.
|
||||
add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH})
|
||||
|
||||
+if(DXC_ENABLE_HOST_TOOLS)
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
set(${project}_LLVM_CONFIG_EXE "${LLVM_NATIVE_BUILD}/bin/llvm-config")
|
||||
set(${project}_LLVM_CONFIG_EXE ${${project}_LLVM_CONFIG_EXE} PARENT_SCOPE)
|
||||
@@ -51,3 +52,4 @@ if(CMAKE_CROSSCOMPILING)
|
||||
|
||||
add_dependencies(llvm-config ${project}NativeLLVMConfig)
|
||||
endif(CMAKE_CROSSCOMPILING)
|
||||
+endif()
|
||||
|
|
@ -1,28 +1,158 @@
|
|||
get_filename_component(_dxc_root "${CMAKE_CURRENT_LIST_DIR}" PATH)
|
||||
get_filename_component(_dxc_root "${_dxc_root}" PATH)
|
||||
get_filename_component(Z_VCPKG_DXC_ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(Z_VCPKG_DXC_ROOT "${Z_VCPKG_DXC_ROOT}" PATH)
|
||||
get_filename_component(Z_VCPKG_DXC_ROOT "${Z_VCPKG_DXC_ROOT}" PATH)
|
||||
if(Z_VCPKG_DXC_ROOT STREQUAL "/")
|
||||
set(Z_VCPKG_DXC_ROOT "")
|
||||
endif()
|
||||
|
||||
set(DIRECTX_DXC_TOOL "${_dxc_root}/@tool_path@" CACHE PATH "Location of the dxc tool")
|
||||
find_program(DIRECTX_DXC_TOOL
|
||||
NAMES dxc dxc.exe
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/tools/@PORT@"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
mark_as_advanced(DIRECTX_DXC_TOOL)
|
||||
|
||||
add_library(Microsoft::DirectXShaderCompiler SHARED IMPORTED)
|
||||
set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_LOCATION_DEBUG "${_dxc_root}/@dll_debug_dir@/@dll_name_dxc@"
|
||||
IMPORTED_LOCATION_RELEASE "${_dxc_root}/@dll_dir@/@dll_name_dxc@"
|
||||
IMPORTED_IMPLIB "${_dxc_root}/lib/@lib_name@"
|
||||
IMPORTED_SONAME "@lib_name@"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${_dxc_root}/include/directx-dxc"
|
||||
INTERFACE_LINK_LIBRARIES "Microsoft::DXIL"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
if(NOT TARGET Microsoft::DXIL)
|
||||
add_library(Microsoft::DXIL SHARED IMPORTED)
|
||||
find_library(Z_VCPKG_DXIL_LIBRARY_RELEASE
|
||||
NAMES dxil
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
find_library(Z_VCPKG_DXIL_LIBRARY_DEBUG
|
||||
NAMES dxil
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/debug/lib"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(@Z_VCPKG_DXC_TARGET_IS_WINDOWS@)
|
||||
find_file(Z_VCPKG_DXIL_DLL_RELEASE
|
||||
NAMES dxil.dll
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/bin"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
find_file(Z_VCPKG_DXIL_DLL_DEBUG
|
||||
NAMES dxil.dll
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/debug/bin"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(Z_VCPKG_DXIL_LIBRARY_DEBUG AND Z_VCPKG_DXIL_DLL_DEBUG)
|
||||
set_target_properties(Microsoft::DXIL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_IMPLIB_DEBUG "${Z_VCPKG_DXIL_LIBRARY_DEBUG}"
|
||||
IMPORTED_LOCATION_DEBUG "${Z_VCPKG_DXIL_DLL_DEBUG}"
|
||||
IMPORTED_IMPLIB_RELEASE "${Z_VCPKG_DXIL_LIBRARY_RELEASE}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXIL_DLL_RELEASE}"
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
else()
|
||||
set_target_properties(Microsoft::DXIL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Release"
|
||||
IMPORTED_IMPLIB_RELEASE "${Z_VCPKG_DXIL_LIBRARY_RELEASE}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXIL_DLL_RELEASE}"
|
||||
MAP_IMPORTED_CONFIG_DEBUG Release
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
if(Z_VCPKG_DXIL_LIBRARY_DEBUG)
|
||||
set_target_properties(Microsoft::DXIL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_LOCATION_DEBUG "${Z_VCPKG_DXIL_LIBRARY_DEBUG}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXIL_LIBRARY_RELEASE}"
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
else()
|
||||
set_target_properties(Microsoft::DXIL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Release"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXIL_LIBRARY_RELEASE}"
|
||||
MAP_IMPORTED_CONFIG_DEBUG Release
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(Microsoft::DXIL SHARED IMPORTED)
|
||||
set_target_properties(Microsoft::DXIL PROPERTIES
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_LOCATION_DEBUG "${_dxc_root}/@dll_debug_dir@/@dll_name_dxil@"
|
||||
IMPORTED_LOCATION_RELASE "${_dxc_root}/@dll_dir@/@dll_name_dxil@"
|
||||
IMPORTED_IMPLIB "${_dxc_root}/lib/@lib_name@"
|
||||
IMPORTED_NO_SONAME TRUE
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${_dxc_root}/include/directx-dxc"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C")
|
||||
|
||||
unset(_dxc_root)
|
||||
if(NOT TARGET Microsoft::DirectXShaderCompiler)
|
||||
add_library(Microsoft::DirectXShaderCompiler SHARED IMPORTED)
|
||||
find_library(Z_VCPKG_DXCOMPILER_LIBRARY_RELEASE
|
||||
NAMES dxcompiler
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
find_library(Z_VCPKG_DXCOMPILER_LIBRARY_DEBUG
|
||||
NAMES dxcompiler
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/debug/lib"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(@Z_VCPKG_DXC_TARGET_IS_WINDOWS@)
|
||||
find_file(Z_VCPKG_DXCOMPILER_DLL_RELEASE
|
||||
NAMES dxcompiler.dll
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/bin"
|
||||
NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
find_file(Z_VCPKG_DXCOMPILER_DLL_DEBUG
|
||||
NAMES dxcompiler.dll
|
||||
PATHS "${Z_VCPKG_DXC_ROOT}/debug/bin"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(Z_VCPKG_DXCOMPILER_LIBRARY_DEBUG AND Z_VCPKG_DXCOMPILER_DLL_DEBUG)
|
||||
set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_IMPLIB_DEBUG "${Z_VCPKG_DXCOMPILER_LIBRARY_DEBUG}"
|
||||
IMPORTED_LOCATION_DEBUG "${Z_VCPKG_DXCOMPILER_DLL_DEBUG}"
|
||||
IMPORTED_IMPLIB_RELEASE "${Z_VCPKG_DXCOMPILER_LIBRARY_RELEASE}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXCOMPILER_DLL_RELEASE}"
|
||||
INTERFACE_LINK_LIBRARIES "Microsoft::DXIL"
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
else()
|
||||
set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Release"
|
||||
IMPORTED_IMPLIB_RELEASE "${Z_VCPKG_DXCOMPILER_LIBRARY_RELEASE}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXCOMPILER_DLL_RELEASE}"
|
||||
INTERFACE_LINK_LIBRARIES "Microsoft::DXIL"
|
||||
MAP_IMPORTED_CONFIG_DEBUG Release
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
if(Z_VCPKG_DXCOMPILER_LIBRARY_DEBUG)
|
||||
set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Debug;Release"
|
||||
IMPORTED_LOCATION_DEBUG "${Z_VCPKG_DXCOMPILER_LIBRARY_DEBUG}"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXCOMPILER_LIBRARY_RELEASE}"
|
||||
INTERFACE_LINK_LIBRARIES "Microsoft::DXIL"
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
else()
|
||||
set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Z_VCPKG_DXC_ROOT}/include/dxc"
|
||||
IMPORTED_CONFIGURATIONS "Release"
|
||||
IMPORTED_LOCATION_RELEASE "${Z_VCPKG_DXCOMPILER_LIBRARY_RELEASE}"
|
||||
INTERFACE_LINK_LIBRARIES "Microsoft::DXIL"
|
||||
MAP_IMPORTED_CONFIG_DEBUG Release
|
||||
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
||||
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,133 +1,194 @@
|
|||
set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled)
|
||||
|
||||
set(DIRECTX_DXC_TAG v1.9.2602.24)
|
||||
set(DIRECTX_DXC_VERSION 2026_05_27)
|
||||
set(DIRECTX_DXC_VERSION_WSL 2026_05_26)
|
||||
# Stay up to date with directx-dxc-tblgen
|
||||
# dawn requires specific version of directx-dxc, when update this port, please check dawn's requirements
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO microsoft/DirectXShaderCompiler
|
||||
REF e39cf36f5b2a171000a3a1134dadc9f454ff54cf
|
||||
SHA512 143f560ec7d8753ea1795fe7b2922823a6f1dcaf2becbd1a88b1a3fd9ce2da006072d8d1c318b834ea4b6344d3ec71d8d8f5b8870e06282fbb5352d16d7ca1cb
|
||||
HEAD_REF main
|
||||
PATCHES
|
||||
001-fix-linkage.patch
|
||||
# Update this patch file when update version
|
||||
002-fix-gen-version-inc.patch
|
||||
003-fix-python.patch
|
||||
004-fix-cross-compilation.patch
|
||||
)
|
||||
|
||||
if (NOT VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
message(STATUS "Note: ${PORT} always requires dynamic library linkage at runtime.")
|
||||
endif()
|
||||
|
||||
if (VCPKG_TARGET_IS_LINUX)
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://github.com/microsoft/DirectXShaderCompiler/releases/download/${DIRECTX_DXC_TAG}/linux_dxc_${DIRECTX_DXC_VERSION_WSL}.x86_64.tar.gz"
|
||||
FILENAME "linux_dxc_${DIRECTX_DXC_VERSION_WSL}.tar.gz"
|
||||
SHA512 3da18b4b32899c65881276315411092fa1a076e25bbea20606bc247c5fa93c83f948785969e007115dc72afcd433ab76e54c392de6d37c11d93d8614a829e40a
|
||||
function(z_vcpkg_from_github_to_path)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_SOURCE_PATH;REPO;REF;SHA512;HEAD_REF" "PATCHES")
|
||||
if(EXISTS "${arg_OUT_SOURCE_PATH}")
|
||||
file(GLOB children LIST_DIRECTORIES true "${arg_OUT_SOURCE_PATH}/*")
|
||||
if(NOT "${children}" STREQUAL "")
|
||||
message(FATAL_ERROR "The path ${arg_OUT_SOURCE_PATH} already exists and is not empty.")
|
||||
else()
|
||||
file(REMOVE_RECURSE "${arg_OUT_SOURCE_PATH}")
|
||||
endif()
|
||||
unset(children)
|
||||
endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH out_source_path
|
||||
REPO "${arg_REPO}"
|
||||
REF "${arg_REF}"
|
||||
SHA512 "${arg_SHA512}"
|
||||
HEAD_REF "${arg_HEAD_REF}"
|
||||
PATCHES ${arg_PATCHES}
|
||||
)
|
||||
else()
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://github.com/microsoft/DirectXShaderCompiler/releases/download/${DIRECTX_DXC_TAG}/dxc_${DIRECTX_DXC_VERSION}.zip"
|
||||
FILENAME "dxc_${DIRECTX_DXC_VERSION}.zip"
|
||||
SHA512 cf331112f1753fca68525c85bb4964714d85dbf7cb5e41af4720bbdffefdfddad1878c7a1a74898e2105dff32957a526d188d9ee3f18f0df310ec8548827a374
|
||||
file(RENAME "${out_source_path}" "${arg_OUT_SOURCE_PATH}")
|
||||
file(REMOVE_RECURSE "${out_source_path}")
|
||||
endfunction()
|
||||
|
||||
if(NOT VCPKG_TARGET_IS_WINDOWS)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/DirectX-Headers"
|
||||
REPO microsoft/DirectX-Headers
|
||||
REF 980971e835876dc0cde415e8f9bc646e64667bf7
|
||||
SHA512 a570068d3c25c68eba34a2653108e2019f888a7392a803f97da9a401713b14bf4235520f0adc37c2f6ffb27cfb118ca7bb0fc8e446b342a7393c9c64afd84ed8
|
||||
HEAD_REF main
|
||||
)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/SPIRV-Headers"
|
||||
REPO KhronosGroup/SPIRV-Headers
|
||||
REF ad9184e76a66b1001c29db9b0a3e87f646c64de0
|
||||
SHA512 7d422d2a37617bd05e050000caab431dd35aae86d0925becbe22ea22cbf4be96ecbc429f5442d3b9386026496a91f44e8d1a6867725ee60f4ea3a23d4e2ad969
|
||||
HEAD_REF main
|
||||
)
|
||||
z_vcpkg_from_github_to_path(
|
||||
OUT_SOURCE_PATH "${SOURCE_PATH}/external/SPIRV-Tools"
|
||||
REPO KhronosGroup/SPIRV-Tools
|
||||
REF 0539c81f69a3daeb706fd3477dca61435b475156
|
||||
SHA512 d620f1875c8a12201ca90af7a4a2cb53bd174ade53e898dae325095b50440b59fb6996e4bd0650c49b1ee5fcd6fbca8fd38dd5089b82030864494e95b29f7c76
|
||||
HEAD_REF main
|
||||
)
|
||||
endif()
|
||||
|
||||
vcpkg_download_distfile(
|
||||
LICENSE_TXT
|
||||
URLS "https://raw.githubusercontent.com/microsoft/DirectXShaderCompiler/${DIRECTX_DXC_TAG}/LICENSE.TXT"
|
||||
FILENAME "LICENSE.${DIRECTX_DXC_VERSION}"
|
||||
SHA512 9feaa85ca6d42d5a2d6fe773706bbab8241e78390a9d61ea9061c8f0eeb5a3e380ff07c222e02fbf61af7f2b2f6dd31c5fc87247a94dae275dc0a20cdfcc8c9d
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DDXC_ENABLE_HOST_TOOLS=OFF
|
||||
"-DLLVM_TABLEGEN=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/directx-dxc-tblgen/llvm-tblgen${VCPKG_HOST_EXECUTABLE_SUFFIX}"
|
||||
"-DCLANG_TABLEGEN=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/directx-dxc-tblgen/clang-tblgen${VCPKG_HOST_EXECUTABLE_SUFFIX}"
|
||||
"-DPython3_EXECUTABLE=${PYTHON3}"
|
||||
-DHLSL_OPTIONAL_PROJS_IN_DEFAULT=OFF
|
||||
-DHLSL_ENABLE_ANALYZE=OFF
|
||||
-DHLSL_OFFICIAL_BUILD=OFF
|
||||
-DHLSL_ENABLE_FIXED_VER=OFF
|
||||
-DHLSL_BUILD_DXILCONV=OFF
|
||||
-DHLSL_INCLUDE_TESTS=OFF
|
||||
-DHLSL_ENABLE_DEBUG_ITERATORS=ON
|
||||
-DENABLE_SPIRV_CODEGEN=OFF
|
||||
-DSPIRV_BUILD_TESTS=OFF
|
||||
-DLLVM_BUILD_INSTRUMENTED_COVERAGE=OFF
|
||||
-DLLVM_BUILD_RUNTIME=ON
|
||||
-DLLVM_BUILD_EXAMPLES=OFF
|
||||
-DLLVM_BUILD_TESTS=OFF
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_INCLUDE_DOCS=OFF
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=OFF
|
||||
-DLLVM_APPEND_VC_REV=OFF
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_TARGETS_TO_BUILD=None
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE=dxil-ms-dx
|
||||
-DCLANG_CL=OFF
|
||||
-DCLANG_ENABLE_STATIC_ANALYZER=OFF
|
||||
-DCLANG_ENABLE_ARCMT=OFF
|
||||
-DCLANG_BUILD_EXAMPLES=OFF
|
||||
-DCLANG_INCLUDE_TESTS=OFF
|
||||
-DLIBCLANG_BUILD_STATIC=ON
|
||||
MAYBE_UNUSED_VARIABLES
|
||||
CLANG_CL
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive(
|
||||
PACKAGE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
NO_REMOVE_ONE_LEVEL
|
||||
)
|
||||
vcpkg_cmake_build(TARGET "dxildll;dxcompiler;dxc;dxv")
|
||||
|
||||
if (VCPKG_TARGET_IS_LINUX)
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/include/dxc/dxcapi.h"
|
||||
"${PACKAGE_PATH}/include/dxc/dxcerrors.h"
|
||||
"${PACKAGE_PATH}/include/dxc/dxcisense.h"
|
||||
"${PACKAGE_PATH}/include/dxc/WinAdapter.h"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}")
|
||||
set(BUILD_DBG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
|
||||
set(BUILD_REL_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
||||
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/lib/libdxcompiler.so"
|
||||
"${PACKAGE_PATH}/lib/libdxil.so"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
|
||||
|
||||
if(NOT DEFINED VCPKG_BUILD_TYPE)
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/lib/libdxcompiler.so"
|
||||
"${PACKAGE_PATH}/lib/libdxil.so"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
|
||||
endif()
|
||||
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/bin/dxc"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/"
|
||||
FILE_PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE)
|
||||
|
||||
set(dll_name_dxc "libdxcompiler.so")
|
||||
set(dll_name_dxil "libdxil.so")
|
||||
set(dll_dir "lib")
|
||||
if(NOT DEFINED VCPKG_BUILD_TYPE)
|
||||
set(dll_debug_dir "debug/lib")
|
||||
else()
|
||||
set(dll_debug_dir "lib")
|
||||
endif()
|
||||
set(lib_name "libdxcompiler.so")
|
||||
set(tool_path "tools/${PORT}/dxc")
|
||||
else()
|
||||
# VCPKG_TARGET_IS_WINDOWS
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
||||
set(DXC_ARCH arm64)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
set(DXC_ARCH x86)
|
||||
else()
|
||||
set(DXC_ARCH x64)
|
||||
endif()
|
||||
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/inc/dxcapi.h"
|
||||
"${PACKAGE_PATH}/inc/dxcerrors.h"
|
||||
"${PACKAGE_PATH}/inc/dxcisense.h"
|
||||
"${PACKAGE_PATH}/inc/d3d12shader.h"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}")
|
||||
|
||||
file(INSTALL "${PACKAGE_PATH}/lib/${DXC_ARCH}/dxcompiler.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
|
||||
if(NOT DEFINED VCPKG_BUILD_TYPE)
|
||||
file(INSTALL "${PACKAGE_PATH}/lib/${DXC_ARCH}/dxcompiler.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
|
||||
endif()
|
||||
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll"
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
|
||||
|
||||
if(NOT DEFINED VCPKG_BUILD_TYPE)
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll"
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/")
|
||||
|
||||
file(INSTALL
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxc.exe"
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll"
|
||||
"${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/")
|
||||
|
||||
set(dll_name_dxc "dxcompiler.dll")
|
||||
set(dll_name_dxil "dxil.dll")
|
||||
set(dll_dir "bin")
|
||||
set(dll_debug_dir "bin")
|
||||
set(lib_name "dxcompiler.lib")
|
||||
set(tool_path "tools/${PORT}/dxc.exe")
|
||||
if(NOT EXISTS "${BUILD_REL_DIR}")
|
||||
message(FATAL_ERROR "${BUILD_REL_DIR} is not exists")
|
||||
endif()
|
||||
|
||||
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
|
||||
file(INSTALL
|
||||
"${SOURCE_PATH}/include/dxc/dxcapi.h"
|
||||
"${SOURCE_PATH}/include/dxc/dxcerrors.h"
|
||||
"${SOURCE_PATH}/include/dxc/dxcisense.h"
|
||||
"${SOURCE_PATH}/include/dxc/dxcpix.h"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include/dxc"
|
||||
)
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
set(Z_VCPKG_DXC_TARGET_IS_WINDOWS ON)
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/directx-dxc-config.cmake.in"
|
||||
"${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake"
|
||||
@ONLY)
|
||||
if(EXISTS "${BUILD_DBG_DIR}")
|
||||
file(INSTALL
|
||||
"${BUILD_DBG_DIR}/bin/dxil.dll"
|
||||
"${BUILD_DBG_DIR}/bin/dxil.pdb"
|
||||
"${BUILD_DBG_DIR}/bin/dxcompiler.dll"
|
||||
"${BUILD_DBG_DIR}/bin/dxcompiler.pdb"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
|
||||
)
|
||||
file(INSTALL
|
||||
"${BUILD_DBG_DIR}/lib/dxil.lib"
|
||||
"${BUILD_DBG_DIR}/lib/dxcompiler.lib"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
vcpkg_install_copyright(FILE_LIST "${LICENSE_TXT}")
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/bin/dxil.dll"
|
||||
"${BUILD_REL_DIR}/bin/dxil.pdb"
|
||||
"${BUILD_REL_DIR}/bin/dxcompiler.dll"
|
||||
"${BUILD_REL_DIR}/bin/dxcompiler.pdb"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
|
||||
)
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/lib/dxil.lib"
|
||||
"${BUILD_REL_DIR}/lib/dxcompiler.lib"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/lib"
|
||||
)
|
||||
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/bin/dxil.dll"
|
||||
"${BUILD_REL_DIR}/bin/dxcompiler.dll"
|
||||
"${BUILD_REL_DIR}/bin/dxc.exe"
|
||||
"${BUILD_REL_DIR}/bin/dxv.exe"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}"
|
||||
)
|
||||
else()
|
||||
set(Z_VCPKG_DXC_TARGET_IS_WINDOWS OFF)
|
||||
|
||||
file(INSTALL
|
||||
"${SOURCE_PATH}/include/dxc/WinAdapter.h"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include/dxc"
|
||||
)
|
||||
|
||||
if(EXISTS "${BUILD_DBG_DIR}")
|
||||
file(INSTALL
|
||||
"${BUILD_DBG_DIR}/lib/libdxil.so"
|
||||
"${BUILD_DBG_DIR}/lib/libdxcompiler.so"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/lib/libdxil.so"
|
||||
"${BUILD_REL_DIR}/lib/libdxcompiler.so"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/lib"
|
||||
)
|
||||
|
||||
file(INSTALL
|
||||
"${BUILD_REL_DIR}/bin/dxc"
|
||||
"${BUILD_REL_DIR}/bin/dxv"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}"
|
||||
USE_SOURCE_PERMISSIONS
|
||||
)
|
||||
endif()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/directx-dxc-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/directx-dxc-config.cmake" @ONLY)
|
||||
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT")
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
The DirectX Shader Compiler package provides CMake targets:
|
||||
|
||||
find_package(directx-dxc CONFIG REQUIRED)
|
||||
target_link_libraries(main PRIVATE Microsoft::DirectXShaderCompiler)
|
||||
|
||||
The CMake variable DIRECTX_DXC_TOOL is also set to point to the appropriate DXC command-line tool.
|
||||
|
|
@ -1,23 +1,23 @@
|
|||
{
|
||||
"name": "directx-dxc",
|
||||
"version-date": "2026-05-27",
|
||||
"version-date": "2026-06-24",
|
||||
"description": "DirectX Shader Compiler (LLVM/Clang)",
|
||||
"homepage": "https://github.com/microsoft/DirectXShaderCompiler",
|
||||
"documentation": "https://github.com/microsoft/DirectXShaderCompiler/wiki",
|
||||
"license": null,
|
||||
"supports": "(windows & !arm32 & !uwp & !xbox) | (linux & x64)",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "directx-dxc-tblgen",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"name": "vcpkg-get-python-packages",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "zlib",
|
||||
"platform": "linux & !static"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2430,7 +2430,7 @@
|
|||
},
|
||||
"dawn": {
|
||||
"baseline": "20260624.223603",
|
||||
"port-version": 0
|
||||
"port-version": 1
|
||||
},
|
||||
"daxa": {
|
||||
"baseline": "3.3.1",
|
||||
|
|
@ -2513,7 +2513,11 @@
|
|||
"port-version": 0
|
||||
},
|
||||
"directx-dxc": {
|
||||
"baseline": "2026-05-27",
|
||||
"baseline": "2026-06-24",
|
||||
"port-version": 0
|
||||
},
|
||||
"directx-dxc-tblgen": {
|
||||
"baseline": "2026-06-24",
|
||||
"port-version": 0
|
||||
},
|
||||
"directx-headers": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "efdbc0fe07c33f198d9f1f1a914749eb15389fb7",
|
||||
"version": "20260624.223603",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "674181babc69b624fec7a64ce61f46fb11ecada3",
|
||||
"version": "20260624.223603",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "cada08e80cc77cc15de5515bf4e3429b1d588b35",
|
||||
"version-date": "2026-06-24",
|
||||
"port-version": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "eb44fc70e424469759405d7ecc0681c0050dd0c6",
|
||||
"version-date": "2026-06-24",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "9755705e5026eecae165fcb535c00ba89e027cd6",
|
||||
"version-date": "2026-05-27",
|
||||
|
|
|
|||
Loading…
Reference in New Issue