diff --git a/cmake/ncnnConfig.cmake.in b/cmake/ncnnConfig.cmake.in index 4f51801277d..6bed3b8da49 100644 --- a/cmake/ncnnConfig.cmake.in +++ b/cmake/ncnnConfig.cmake.in @@ -24,7 +24,18 @@ if(NCNN_VULKAN) if(NCNN_SYSTEM_GLSLANG) find_package(SPIRV-Tools QUIET) find_package(SPIRV-Tools-opt QUIET) - find_package(glslang REQUIRED) + find_package(glslang QUIET) + if(NOT glslang_FOUND) + set(GLSLANG_TARGET_DIR "@GLSLANG_TARGET_DIR@") + include(${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake) + include(${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake) + if(EXISTS "${GLSLANG_TARGET_DIR}/HLSLTargets.cmake") + # hlsl support can be optional + include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake") + endif() + include(${GLSLANG_TARGET_DIR}/glslangTargets.cmake) + include(${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake) + endif() else() set(glslang_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../@CMAKE_INSTALL_LIBDIR@/cmake/glslang") find_package(glslang QUIET)