diff -up glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/CMakeLists.txt.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/CMakeLists.txt --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/CMakeLists.txt.dma 2021-11-13 00:42:16.000000000 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/CMakeLists.txt 2021-11-23 17:40:46.511754273 +1000 @@ -121,6 +121,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() @@ -307,11 +314,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-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/External/CMakeLists.txt.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/External/CMakeLists.txt --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/External/CMakeLists.txt.dma 2021-11-13 00:42:16.000000000 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/External/CMakeLists.txt 2021-11-23 17:40:46.512754300 +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-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/CMakeLists.txt.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/CMakeLists.txt --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/CMakeLists.txt.dma 2021-11-13 00:42:16.000000000 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/CMakeLists.txt 2021-11-23 17:40:46.513754326 +1000 @@ -211,6 +211,8 @@ if(ENABLE_GLSLANG_INSTALL) EXPORT glslangTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) 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(EXPORT glslangTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) diff -up glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/glslang.pc.cmake.in.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/glslang.pc.cmake.in --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/glslang.pc.cmake.in.dma 2021-11-23 17:40:46.513754326 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/glslang/glslang.pc.cmake.in 2021-11-23 17:40:46.513754326 +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: @VERSION@ + Libs: -L${libdir} -lglslang -lOSDependent -lHLSL -lOGLCompiler -lSPVRemapper + Cflags: -I${includedir} \ No newline at end of file diff -up glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/CMakeLists.txt.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/CMakeLists.txt --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/CMakeLists.txt.dma 2021-11-13 00:42:16.000000000 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/CMakeLists.txt 2021-11-23 17:40:46.514754353 +1000 @@ -77,6 +77,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) @@ -90,15 +94,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() @@ -133,6 +143,9 @@ if(ENABLE_GLSLANG_INSTALL) endif() install(EXPORT SPIRVTargets 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-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/spirv.pc.cmake.in.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/spirv.pc.cmake.in --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/spirv.pc.cmake.in.dma 2021-11-23 17:40:46.514754353 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/spirv.pc.cmake.in 2021-11-23 17:40:46.514754353 +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-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/SpvTools.cpp.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/SpvTools.cpp --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/SpvTools.cpp.dma 2021-11-13 00:42:16.000000000 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/SPIRV/SpvTools.cpp 2021-11-23 17:40:46.515754380 +1000 @@ -43,7 +43,7 @@ #include #include "SpvTools.h" -#include "spirv-tools/optimizer.hpp" +#include namespace glslang { diff -up glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/StandAlone/CMakeLists.txt.dma glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/StandAlone/CMakeLists.txt --- glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/StandAlone/CMakeLists.txt.dma 2021-11-23 17:40:36.884497081 +1000 +++ glslang-c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5/StandAlone/CMakeLists.txt 2021-11-23 17:40:46.515754380 +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