From aa384798e76ab79b642fef43d49b5c09a83cc454 Mon Sep 17 00:00:00 2001 From: SupervisedThinking Date: Thu, 15 Dec 2022 14:35:02 +0100 Subject: [PATCH] glslang: updated for target build --- packages/graphics/vulkan/glslang/package.mk | 24 ++++++++++--- ...lang-100.01-build-static-spirv-tools.patch | 34 +++++++++++++++++++ 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch diff --git a/packages/graphics/vulkan/glslang/package.mk b/packages/graphics/vulkan/glslang/package.mk index 1fdb6feb58..ed425846f4 100644 --- a/packages/graphics/vulkan/glslang/package.mk +++ b/packages/graphics/vulkan/glslang/package.mk @@ -11,12 +11,12 @@ PKG_SHA256="592c98aeb03b3e81597ddaf83633c4e63068d14b18a766fd11033bad73127162" PKG_LICENSE="Apache-2.0" PKG_SITE="https://github.com/KhronosGroup/glslang" PKG_URL="https://github.com/KhronosGroup/glslang/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="toolchain:host Python3:host spirv-tools:host spirv-headers:host" +PKG_DEPENDS_HOST="toolchain:host Python3:host" +PKG_DEPENDS_TARGET="toolchain Python3" PKG_LONGDESC="Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator." +PKG_DEPENDS_UNPACK="spirv-headers spirv-tools" -pre_configure_host() { - PKG_CMAKE_OPTS_HOST="-DBUILD_SHARED_LIBS=OFF \ - -DBUILD_EXTERNAL=ON \ +PKG_CMAKE_OPTS_COMMON="-DBUILD_EXTERNAL=ON \ -DENABLE_SPVREMAPPER=OFF \ -DENABLE_GLSLANG_JS=OFF \ -DENABLE_RTTI=OFF \ @@ -24,10 +24,24 @@ pre_configure_host() { -DENABLE_OPT=ON \ -DENABLE_PCH=ON \ -DENABLE_CTEST=OFF \ - -DENABLE_RTTI=OFF \ + -DUSE_CCACHE=ON \ -Wno-dev" +post_unpack() { + # Enables SPIR-V optimzer capability needed for ENABLE_OPT CMake build option mkdir -p ${PKG_BUILD}/External/spirv-tools/external/spirv-headers cp -R $(get_build_dir spirv-tools)/* ${PKG_BUILD}/External/spirv-tools cp -R $(get_build_dir spirv-headers)/* ${PKG_BUILD}/External/spirv-tools/external/spirv-headers } + +pre_configure_host() { + PKG_CMAKE_OPTS_HOST+="${PKG_CMAKE_OPTS_COMMON} \ + -DBUILD_SHARED_LIBS=OFF" + +} + +pre_configure_target() { + PKG_CMAKE_OPTS_TARGET+="${PKG_CMAKE_OPTS_COMMON} \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_GLSLANG_BINARIES=OFF" +} diff --git a/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch b/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch new file mode 100644 index 0000000000..adde65d169 --- /dev/null +++ b/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch @@ -0,0 +1,34 @@ +--- a/External/CMakeLists.txt ++++ b/External/CMakeLists.txt +@@ -71,7 +71,8 @@ endif() + if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) + set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") +- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools) ++ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Disable build shared libs" FORCE) ++ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools EXCLUDE_FROM_ALL) + endif() + endif() + +--- a/SPIRV/CMakeLists.txt ++++ b/SPIRV/CMakeLists.txt +@@ -100,7 +100,7 @@ if(ENABLE_OPT) + target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt) + target_include_directories(SPIRV PUBLIC + $ +- $) ++ $) + else() + target_link_libraries(SPIRV PRIVATE MachineIndependent) + endif() +--- a/StandAlone/CMakeLists.txt ++++ b/StandAlone/CMakeLists.txt +@@ -83,7 +83,7 @@ endif() + target_link_libraries(glslangValidator ${LIBRARIES}) + target_include_directories(glslangValidator PUBLIC + $ +- $) ++ $) + + if(ENABLE_OPT) + target_include_directories(glslangValidator