@@ -755,35 +755,15 @@ endif()
755755if (NCNN_VULKAN)
756756 if (NCNN_SYSTEM_GLSLANG)
757757 find_package (Threads )
758- find_package (glslang QUIET )
759- if (glslang_FOUND)
760- add_library (glslang ALIAS glslang::glslang )
761- add_library (SPIRV ALIAS glslang::SPIRV )
762- else ()
763- set (GLSLANG_TARGET_DIR "GLSLANG-NOTFOUND" CACHE PATH "Absolute path to glslangTargets.cmake directory" )
764- if (NOT GLSLANG_TARGET_DIR AND NOT DEFINED ENV{GLSLANG_TARGET_DIR})
765- message (WARNING "set glslang_DIR to glslang-config.cmake directory for using system glslang." )
766- message (WARNING "GLSLANG_TARGET_DIR must be defined! NCNN_SYSTEM_GLSLANG will be turned off." )
767- set (NCNN_SYSTEM_GLSLANG OFF )
768- else ()
769- include ("${GLSLANG_TARGET_DIR} /OSDependentTargets.cmake" )
770- include ("${GLSLANG_TARGET_DIR} /OGLCompilerTargets.cmake" )
771- if (EXISTS "${GLSLANG_TARGET_DIR} /HLSLTargets.cmake" )
772- # hlsl support can be optional
773- include ("${GLSLANG_TARGET_DIR} /HLSLTargets.cmake" )
774- endif ()
775- include ("${GLSLANG_TARGET_DIR} /glslangTargets.cmake" )
776- include ("${GLSLANG_TARGET_DIR} /SPIRVTargets.cmake" )
777- endif ()
778- endif ()
758+ find_package (SPIRV-Tools QUIET )
759+ find_package (SPIRV-Tools-opt QUIET )
760+ find_package (glslang )
779761
780- if (TARGET glslang AND TARGET SPIRV)
781- get_property (glslang_location TARGET glslang PROPERTY LOCATION )
782- get_property (SPIRV_location TARGET SPIRV PROPERTY LOCATION )
762+ if (TARGET glslang::glslang)
763+ get_property (glslang_location TARGET glslang::glslang PROPERTY LOCATION )
783764 message (STATUS "Found glslang: ${glslang_location} (found version \" ${glslang_VERSION} \" )" )
784- message (STATUS "Found SPIRV: ${SPIRV_location} (found version \" ${glslang_VERSION} \" )" )
785765 else ()
786- message (WARNING "glslang or SPIRV target not found! NCNN_SYSTEM_GLSLANG will be turned off." )
766+ message (WARNING "glslang target not found! NCNN_SYSTEM_GLSLANG will be turned off." )
787767 set (NCNN_SYSTEM_GLSLANG OFF )
788768 endif ()
789769 endif ()
@@ -803,23 +783,17 @@ if(NCNN_VULKAN)
803783 option (ENABLE_EXCEPTIONS "" OFF )
804784 option (ENABLE_OPT "" OFF )
805785 option (ENABLE_PCH "" OFF )
806- option (ENABLE_CTEST "" OFF )
807- if (NCNN_SHARED_LIB)
808- option (SKIP_GLSLANG_INSTALL "" ON )
809- endif ()
786+ option (GLSLANG_TESTS "" OFF )
787+ option (GLSLANG_ENABLE_INSTALL "" ON )
810788 add_subdirectory (glslang )
811789 if (NCNN_SHARED_LIB)
812790 if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC" ))
813- target_compile_options (glslang PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
814- target_compile_options (OGLCompiler PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
815- target_compile_options (OSDependent PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
816- target_compile_options (SPIRV PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
791+ target_compile_options (glslang::glslang PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
792+ target_compile_options (glslang::glslang-default-resource-limits PRIVATE -fvisibility=hidden -fvisibility-inlines-hidden )
817793 endif ()
818794 if (NCNN_ENABLE_LTO)
819- set_target_properties (glslang PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
820- set_target_properties (OGLCompiler PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
821- set_target_properties (OSDependent PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
822- set_target_properties (SPIRV PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
795+ set_target_properties (glslang::glslang PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
796+ set_target_properties (glslang::glslang-default-resource-limits PROPERTIES INTERPROCEDURAL_OPTIMIZATION ON )
823797 endif ()
824798 endif ()
825799 endif ()
0 commit comments