Skip to content

Commit 23f85ce

Browse files
committed
r
1 parent 4b1ef85 commit 23f85ce

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

CMakeLists.txt

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -757,13 +757,36 @@ if(NCNN_VULKAN)
757757
find_package(Threads)
758758
find_package(SPIRV-Tools QUIET)
759759
find_package(SPIRV-Tools-opt QUIET)
760-
find_package(glslang)
760+
find_package(glslang QUIET)
761761

762-
if(TARGET glslang::glslang)
763-
get_property(glslang_location TARGET glslang::glslang PROPERTY LOCATION)
762+
if(glslang_FOUND)
763+
add_library(glslang ALIAS glslang::glslang)
764+
add_library(SPIRV ALIAS glslang::SPIRV)
765+
else()
766+
set(GLSLANG_TARGET_DIR "GLSLANG-NOTFOUND" CACHE PATH "Absolute path to glslangTargets.cmake directory")
767+
if(NOT GLSLANG_TARGET_DIR AND NOT DEFINED ENV{GLSLANG_TARGET_DIR})
768+
message(WARNING "set glslang_DIR to glslang-config.cmake directory for using system glslang.")
769+
message(WARNING "GLSLANG_TARGET_DIR must be defined! NCNN_SYSTEM_GLSLANG will be turned off.")
770+
set(NCNN_SYSTEM_GLSLANG OFF)
771+
else()
772+
include("${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake")
773+
include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
774+
if(EXISTS "${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
775+
# hlsl support can be optional
776+
include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
777+
endif()
778+
include("${GLSLANG_TARGET_DIR}/glslangTargets.cmake")
779+
include("${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake")
780+
endif()
781+
endif()
782+
783+
if(TARGET glslang AND TARGET SPIRV)
784+
get_property(glslang_location TARGET glslang PROPERTY LOCATION)
785+
get_property(SPIRV_location TARGET SPIRV PROPERTY LOCATION)
764786
message(STATUS "Found glslang: ${glslang_location} (found version \"${glslang_VERSION}\")")
787+
message(STATUS "Found SPIRV: ${SPIRV_location} (found version \"${glslang_VERSION}\")")
765788
else()
766-
message(WARNING "glslang target not found! NCNN_SYSTEM_GLSLANG will be turned off.")
789+
message(WARNING "glslang or SPIRV target not found! NCNN_SYSTEM_GLSLANG will be turned off.")
767790
set(NCNN_SYSTEM_GLSLANG OFF)
768791
endif()
769792
endif()

0 commit comments

Comments
 (0)