diff --git a/0001-pkg-config-compatibility.patch b/0001-pkg-config-compatibility.patch new file mode 100644 index 0000000000000000000000000000000000000000..1eb1f073a7f75be6174414a0d802d4e3740df717 --- /dev/null +++ b/0001-pkg-config-compatibility.patch @@ -0,0 +1,179 @@ +diff -up glslang-sdk-1.3.231.1/CMakeLists.txt.dma glslang-sdk-1.3.231.1/CMakeLists.txt +--- glslang-sdk-1.3.231.1/CMakeLists.txt.dma 2022-10-14 03:29:59.000000000 +1000 ++++ glslang-sdk-1.3.231.1/CMakeLists.txt 2022-11-09 14:47:04.538772188 +1000 +@@ -129,6 +129,13 @@ if(USE_CCACHE) + endif() + endif() + ++# using pkg-config to configure include paths and link libraries ++include(FindPkgConfig) ++pkg_check_modules(SPIRV_TOOLS REQUIRED SPIRV-Tools>=2019.2.1) ++if(BUILD_SHARED_LIBS) ++ pkg_check_modules(SPIRV_TOOLS_SHARED REQUIRED SPIRV-Tools-shared>=2019.2.1) ++endif(BUILD_SHARED_LIBS) ++ + if(ENABLE_CTEST) + include(CTest) + endif() +@@ -319,11 +326,7 @@ if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMA + add_subdirectory(External) + endif() + +-if(NOT TARGET SPIRV-Tools-opt) +- set(ENABLE_OPT OFF) +-endif() +- +-if(ENABLE_OPT) ++if(${SPIRV_TOOLS_FOUND} EQUAL 1) + message(STATUS "optimizer enabled") + add_definitions(-DENABLE_OPT=1) + else() +diff -up glslang-sdk-1.3.231.1/External/CMakeLists.txt.dma glslang-sdk-1.3.231.1/External/CMakeLists.txt +--- glslang-sdk-1.3.231.1/External/CMakeLists.txt.dma 2022-10-14 03:29:59.000000000 +1000 ++++ glslang-sdk-1.3.231.1/External/CMakeLists.txt 2022-11-09 14:47:04.539772205 +1000 +@@ -68,10 +68,3 @@ if(BUILD_TESTING) + endif() + 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) +- endif() +-endif() +- +diff -up glslang-sdk-1.3.231.1/glslang/CMakeLists.txt.dma glslang-sdk-1.3.231.1/glslang/CMakeLists.txt +--- glslang-sdk-1.3.231.1/glslang/CMakeLists.txt.dma 2022-11-09 14:47:04.540772224 +1000 ++++ glslang-sdk-1.3.231.1/glslang/CMakeLists.txt 2022-11-09 14:48:06.844895906 +1000 +@@ -221,6 +221,8 @@ if(ENABLE_GLSLANG_INSTALL) + add_library(GenericCodeGen ALIAS glslang::GenericCodeGen) + endif() + ") ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/glslang.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) + endif() + +diff -up glslang-sdk-1.3.231.1/glslang/glslang.pc.cmake.in.dma glslang-sdk-1.3.231.1/glslang/glslang.pc.cmake.in +--- glslang-sdk-1.3.231.1/glslang/glslang.pc.cmake.in.dma 2022-11-09 14:47:04.541772242 +1000 ++++ glslang-sdk-1.3.231.1/glslang/glslang.pc.cmake.in 2022-11-09 14:47:04.541772242 +1000 +@@ -0,0 +1,11 @@ ++ prefix=@CMAKE_INSTALL_PREFIX@ ++ exec_prefix=@CMAKE_INSTALL_PREFIX@ ++ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ ++ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++ ++ Name: @PROJECT_NAME@ ++ Description: OpenGL and OpenGL ES shader front end and validator ++ Requires: ++ Version: @GLSLANG_VERSION@ ++ Libs: -L${libdir} -lglslang -lOSDependent -lHLSL -lOGLCompiler -lSPVRemapper ++ Cflags: -I${includedir} +\ No newline at end of file +diff -up glslang-sdk-1.3.231.1/SPIRV/CMakeLists.txt.dma glslang-sdk-1.3.231.1/SPIRV/CMakeLists.txt +--- glslang-sdk-1.3.231.1/SPIRV/CMakeLists.txt.dma 2022-10-14 03:29:59.000000000 +1000 ++++ glslang-sdk-1.3.231.1/SPIRV/CMakeLists.txt 2022-11-09 14:47:04.542772260 +1000 +@@ -78,6 +78,10 @@ target_include_directories(SPIRV PUBLIC + + glslang_add_build_info_dependency(SPIRV) + ++ ++set(SPIRV_NAME spirv) ++set(SPIRV_VERSION 1.3) ++ + if (ENABLE_SPVREMAPPER) + add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) + set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) +@@ -91,15 +95,21 @@ if(WIN32 AND BUILD_SHARED_LIBS) + endif() + endif() + ++target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS}) ++target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_CFLAGS_OTHER}) ++target_link_libraries(SPIRV ${SPIRV_TOOLS_LIBRARIES}) ++if(BUILD_SHARED_LIBS) ++ target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS}) ++ target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_CFLAGS_OTHER}) ++ target_link_libraries(SPIRV ${SPIRV_TOOLS_SHARED_LIBRARIES}) ++endif(BUILD_SHARED_LIBS) ++ + if(ENABLE_OPT) + target_include_directories(SPIRV + PRIVATE ${spirv-tools_SOURCE_DIR}/include + PRIVATE ${spirv-tools_SOURCE_DIR}/source + ) +- target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt) +- target_include_directories(SPIRV PUBLIC +- $ +- $) ++ target_link_libraries(SPIRV glslang) + else() + target_link_libraries(SPIRV PRIVATE MachineIndependent) + endif() +@@ -140,6 +150,9 @@ if(ENABLE_GLSLANG_INSTALL) + add_library(SPIRV ALIAS glslang::SPIRV) + ") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRVTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) +- ++ # spirv.pc Configuration ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/spirv.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/spirv.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/spirv.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ++ + install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/) + endif() +diff -up glslang-sdk-1.3.231.1/SPIRV/spirv.pc.cmake.in.dma glslang-sdk-1.3.231.1/SPIRV/spirv.pc.cmake.in +--- glslang-sdk-1.3.231.1/SPIRV/spirv.pc.cmake.in.dma 2022-11-09 14:47:04.543772278 +1000 ++++ glslang-sdk-1.3.231.1/SPIRV/spirv.pc.cmake.in 2022-11-09 14:47:04.543772278 +1000 +@@ -0,0 +1,11 @@ ++ prefix=@CMAKE_INSTALL_PREFIX@ ++ exec_prefix=@CMAKE_INSTALL_PREFIX@ ++ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ ++ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++ ++ Name: @SPIRV_NAME@ ++ Description: SPIR-V is a binary intermediate language for representing graphical-shader stages and compute kernels for multiple Khronos APIs, including OpenCL, OpenGL, and Vulkan ++ Requires: ++ Version: @SPIRV_VERSION@ ++ Libs: -L${libdir} -lSPIRV ++ Cflags: -I${includedir} +\ No newline at end of file +diff -up glslang-sdk-1.3.231.1/SPIRV/SpvTools.cpp.dma glslang-sdk-1.3.231.1/SPIRV/SpvTools.cpp +--- glslang-sdk-1.3.231.1/SPIRV/SpvTools.cpp.dma 2022-10-14 03:29:59.000000000 +1000 ++++ glslang-sdk-1.3.231.1/SPIRV/SpvTools.cpp 2022-11-09 14:47:04.544772296 +1000 +@@ -43,7 +43,7 @@ + #include + + #include "SpvTools.h" +-#include "spirv-tools/optimizer.hpp" ++#include + + namespace glslang { + +diff -up glslang-sdk-1.3.231.1/StandAlone/CMakeLists.txt.dma glslang-sdk-1.3.231.1/StandAlone/CMakeLists.txt +--- glslang-sdk-1.3.231.1/StandAlone/CMakeLists.txt.dma 2022-11-09 14:46:48.996491875 +1000 ++++ glslang-sdk-1.3.231.1/StandAlone/CMakeLists.txt 2022-11-09 14:47:04.545772314 +1000 +@@ -72,6 +72,14 @@ if(ENABLE_SPVREMAPPER) + set(LIBRARIES ${LIBRARIES} SPVRemapper) + endif() + ++if(BUILD_SHARED_LIBS) ++ set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_SHARED_LIBRARIES}) ++ target_include_directories(glslangValidator PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS}) ++else() ++ set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_LIBRARIES}) ++ target_include_directories(glslangValidator PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS}) ++endif(BUILD_SHARED_LIBS) ++ + if(WIN32) + set(LIBRARIES ${LIBRARIES} psapi) + elseif(UNIX) +@@ -81,9 +89,6 @@ elseif(UNIX) + endif() + + target_link_libraries(glslangValidator ${LIBRARIES}) +-target_include_directories(glslangValidator PUBLIC +- $ +- $) + + if(ENABLE_OPT) + target_include_directories(glslangValidator diff --git a/glslang.spec b/glslang.spec new file mode 100644 index 0000000000000000000000000000000000000000..964514203b2a434f5c4148b658d54847bbebcc95 --- /dev/null +++ b/glslang.spec @@ -0,0 +1,85 @@ +%define anolis_release 1 +%global sdkver 1.3.239.0 + +Name: glslang +Version: 12.0.0 +Release: %{anolis_release}%{?dist} +Summary: OpenGL and OpenGL ES shader front end and validator + +License: BSD and GPLv3+ and ASL 2.0 +URL: https://github.com/KhronosGroup/%{name} +Source0: https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-%{sdkver}.tar.gz +Patch1: 0001-pkg-config-compatibility.patch + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(SPIRV-Tools) >= 2019.2.1 +Requires: spirv-tools-sdk-libs >= %{sdkver} + +%description +%{name} is the official reference compiler front end for the OpenGL +ES and OpenGL shading languages. It implements a strict +interpretation of the specifications for these languages. + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} +Provides: %{name}-sdk = %{sdkver} + +%description devel +%{name} is the official reference compiler front end for the OpenGL +ES and OpenGL shading languages. It implements a strict +interpretation of the specifications for these languages. + +%package doc +Summary: Documentation files for %{name} +Requires: %{name} = %{EVR} +Buildarch: noarch + +%description doc +The %{name}-doc package contains documentation files for %{name}. + +%prep +%autosetup -p1 -n %{name}-sdk-%{sdkver} +head -n7 CHANGES.md | grep "%{version}" + +%build +%cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF +%cmake_build + +%install +%{cmake_install} + +%check +%ctest + +%files +%doc README.md README-spirv-remap.txt +%{_bindir}/glslangValidator +%{_bindir}/spirv-remap + +%files doc +%doc README.md README-spirv-remap.txt + +%files devel +%{_includedir}/glslang/ +%{_libdir}/libHLSL.a +%{_libdir}/libOGLCompiler.a +%{_libdir}/libOSDependent.a +%{_libdir}/libSPIRV.a +%{_libdir}/libSPVRemapper.a +%{_libdir}/libglslang.a +%{_libdir}/libGenericCodeGen.a +%{_libdir}/libMachineIndependent.a +%{_libdir}/libglslang-default-resource-limits.a +%{_libdir}/pkgconfig/glslang.pc +%{_libdir}/pkgconfig/spirv.pc +%{_libdir}/cmake/* + +%changelog +* Fri Feb 10 2023 Funda Wang - 12.0.0-1 +- Import package for anolis 23 +- Build static libs per default by upstream +- Add patch linking against spirv-tools from fedora diff --git a/sdk-1.3.239.0.tar.gz b/sdk-1.3.239.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..74778b8c3727756ca2334689ddc91b0f2767a41e Binary files /dev/null and b/sdk-1.3.239.0.tar.gz differ