Date: Friday, December 16, 2022 @ 23:15:54
  Author: dvzrv
Revision: 464491

Add fix for include dirs and LTO.

Use -ffat-lto-objects to not break consumers during linking.
Add patch to remove nonexistent /usr/include/External from 
INTERFACE_INCLUDE_DIRECTORIES to not break consumers during build.

Added:
  glslang/trunk/glslang-11.13.0-cmake_include_dirs.patch
Modified:
  glslang/trunk/PKGBUILD

------------------------------------------+
 PKGBUILD                                 |   13 +++++++++++--
 glslang-11.13.0-cmake_include_dirs.patch |   24 ++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-12-16 21:53:50 UTC (rev 464490)
+++ PKGBUILD    2022-12-16 23:15:54 UTC (rev 464491)
@@ -14,10 +14,13 @@
 # Get the commits from known_good.json for every release
 
source=(${pkgname}-${pkgver}.tar.gz::https://github.com/KhronosGroup/glslang/archive/${pkgver}.tar.gz
         
git+https://github.com/KhronosGroup/SPIRV-Tools.git#commit=40f5bf59c6acb4754a0bffd3c53a715732883a12
-        
git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=1d31a100405cf8783ca7a31e31cdd727c9fc54c3)
+        
git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=1d31a100405cf8783ca7a31e31cdd727c9fc54c3
+        $pkgname-11.13.0-cmake_include_dirs.patch
+)
 sha256sums=('592c98aeb03b3e81597ddaf83633c4e63068d14b18a766fd11033bad73127162'
             'SKIP'
-            'SKIP')
+            'SKIP'
+            '70f08416e447e7c68730186c9fcd629e96896aa9bf780cdceffc2cf9b8efca21')
 
 prepare() {
   # Sadly, glslang requires super specific versions of SPIRV headers and
@@ -26,10 +29,16 @@
   # libraries.
   cp -r SPIRV-Tools ${pkgname}-${pkgver}/External/spirv-tools
   cp -r SPIRV-Headers 
${pkgname}-${pkgver}/External/spirv-tools/external/spirv-headers
+  # do not include non-existent /usr/include/External paths in 
INTERFACE_INCLUDE_DIRECTORIES
+  # as that breaks consumers during build
+  patch -Np1 -d $pkgname-$pkgver -i 
../$pkgname-11.13.0-cmake_include_dirs.patch
 }
 
 build() {
   cd ${pkgname}-${pkgver}
+
+  # we need fat LTO objects to not break consumers during linking
+  CXXFLAGS+=" -ffat-lto-objects"
   cmake \
     -Bbuild-shared \
     -GNinja \

Added: glslang-11.13.0-cmake_include_dirs.patch
===================================================================
--- glslang-11.13.0-cmake_include_dirs.patch                            (rev 0)
+++ glslang-11.13.0-cmake_include_dirs.patch    2022-12-16 23:15:54 UTC (rev 
464491)
@@ -0,0 +1,24 @@
+diff -ruN a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
+--- a/SPIRV/CMakeLists.txt     2022-12-06 23:34:33.000000000 +0100
++++ b/SPIRV/CMakeLists.txt     2022-12-16 12:15:03.231070779 +0100
+@@ -100,7 +100,7 @@
+     target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt)
+     target_include_directories(SPIRV PUBLIC
+         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
+-        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
++    )
+ else()
+     target_link_libraries(SPIRV PRIVATE MachineIndependent)
+ endif()
+diff -ruN a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt
+--- a/StandAlone/CMakeLists.txt        2022-12-06 23:34:33.000000000 +0100
++++ b/StandAlone/CMakeLists.txt        2022-12-16 12:15:20.527812776 +0100
+@@ -83,7 +83,7 @@
+ target_link_libraries(glslangValidator ${LIBRARIES})
+ target_include_directories(glslangValidator PUBLIC
+     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
+-    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
++)
+ 
+ if(ENABLE_OPT)
+     target_include_directories(glslangValidator

Reply via email to