Skip to content

Commit 58e5db5

Browse files
committed
update modern glslang
1 parent 9afeb17 commit 58e5db5

File tree

4 files changed

+17
-52
lines changed

4 files changed

+17
-52
lines changed

CMakeLists.txt

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -755,35 +755,15 @@ endif()
755755
if(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()

cmake/ncnnConfig.cmake.in

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,9 @@ if(NCNN_VULKAN)
2222

2323
if(NOT NCNN_SHARED_LIB)
2424
if(NCNN_SYSTEM_GLSLANG)
25-
find_package(glslang QUIET)
26-
if(NOT glslang_FOUND)
27-
set(GLSLANG_TARGET_DIR "@GLSLANG_TARGET_DIR@")
28-
include(${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake)
29-
include(${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake)
30-
if(EXISTS "${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
31-
# hlsl support can be optional
32-
include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
33-
endif()
34-
include(${GLSLANG_TARGET_DIR}/glslangTargets.cmake)
35-
include(${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake)
36-
endif()
25+
find_package(SPIRV-Tools QUIET)
26+
find_package(SPIRV-Tools-opt QUIET)
27+
find_package(glslang REQUIRED)
3728
else()
3829
set(glslang_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../@CMAKE_INSTALL_LIBDIR@/cmake/glslang")
3930
find_package(glslang QUIET)

glslang

Submodule glslang updated 958 files

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ if(NCNN_VULKAN)
330330

331331
# link in-house glslang
332332
target_include_directories(ncnn PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../>)
333-
target_link_libraries(ncnn PRIVATE glslang SPIRV)
333+
target_link_libraries(ncnn PRIVATE glslang::glslang)
334334
endif()
335335

336336
if(NCNN_PLATFORM_API AND ANDROID)

0 commit comments

Comments
 (0)