--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,6 +117,9 @@ if(MSVC) endif() endif(MSVC) +if(NOT WIN32) + add_definitions("-fvisibility=hidden") +endif() # Configure subdirectories. # We depend on these for later projects, so they should come first. @@ -124,7 +127,6 @@ add_subdirectory(third_party) add_subdirectory(libshaderc_util) add_subdirectory(libshaderc) -add_subdirectory(glslc) if(${SHADERC_ENABLE_EXAMPLES}) add_subdirectory(examples) endif() @@ -158,5 +160,3 @@ function(define_pkg_config_file NAME LIBS) endfunction() define_pkg_config_file(shaderc -lshaderc_shared) -define_pkg_config_file(shaderc_static "-lshaderc ${EXTRA_STATIC_PKGCONFIG_LIBS} -lshaderc_util") -define_pkg_config_file(shaderc_combined -lshaderc_combined) --- a/libshaderc/CMakeLists.txt +++ b/libshaderc/CMakeLists.txt @@ -24,13 +24,6 @@ set(SHADERC_SOURCES src/shaderc_private.h ) -add_library(shaderc STATIC ${SHADERC_SOURCES}) -shaderc_default_compile_options(shaderc) -target_include_directories(shaderc - PUBLIC include - PRIVATE ${glslang_SOURCE_DIR} - ${SPIRV-Headers_SOURCE_DIR}/include) - add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc_shared) target_include_directories(shaderc_shared @@ -54,7 +47,7 @@ if(SHADERC_ENABLE_INSTALL) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) - install(TARGETS shaderc shaderc_shared + install(TARGETS shaderc_shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -69,20 +62,8 @@ set(SHADERC_LIBS SPIRV-Tools ) -target_link_libraries(shaderc PRIVATE ${SHADERC_LIBS}) target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS}) -shaderc_add_tests( - TEST_PREFIX shaderc - LINK_LIBS shaderc - INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR} - ${spirv-tools_SOURCE_DIR}/include - ${SPIRV-Headers_SOURCE_DIR}/include - TEST_NAMES - shaderc - shaderc_cpp - shaderc_private) - shaderc_add_tests( TEST_PREFIX shaderc_shared LINK_LIBS shaderc_shared SPIRV-Tools @@ -94,22 +75,6 @@ shaderc_add_tests( shaderc_cpp shaderc_private) -shaderc_combine_static_lib(shaderc_combined shaderc) - -if(SHADERC_ENABLE_INSTALL) - install(TARGETS shaderc_combined DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(SHADERC_ENABLE_INSTALL) - -shaderc_add_tests( - TEST_PREFIX shaderc_combined - LINK_LIBS shaderc_combined ${CMAKE_THREAD_LIBS_INIT} - INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR} - ${spirv-tools_SOURCE_DIR}/include - ${SPIRV-Headers_SOURCE_DIR}/include - TEST_NAMES - shaderc - shaderc_cpp) - if(${SHADERC_ENABLE_TESTS}) add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c) shaderc_default_c_compile_options(shaderc_c_smoke_test) diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc index e5f5d10..f4f0fef 100644 --- a/libshaderc_util/src/compiler.cc +++ b/libshaderc_util/src/compiler.cc @@ -341,6 +341,10 @@ std::tuple, size_t> Compiler::Compile( options.generateDebugInfo = generate_debug_info_; options.disableOptimizer = true; options.optimizeSize = false; + if (generate_debug_info_) { + options.emitNonSemanticShaderDebugInfo = true; + options.emitNonSemanticShaderDebugSource = true; + } // Note the call to GlslangToSpv also populates compilation_output_data. glslang::GlslangToSpv(*program.getIntermediate(used_shader_stage), spirv, &options); --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -20,9 +20,9 @@ set(SHADERC_TINT_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/tint" CACHE STRING set(SHADERC_ABSL_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/abseil_cpp" CACHE STRING "Location of re2 source") -set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} ) -set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} ) -set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} ) +set( SKIP_GLSLANG_INSTALL ON ) +set( SKIP_SPIRV_TOOLS_INSTALL ON ) +set( SKIP_GOOGLETEST_INSTALL ON ) # Configure third party projects. if(${SHADERC_ENABLE_TESTS}) @@ -64,7 +64,10 @@ if (NOT TARGET SPIRV-Tools) add_subdirectory(${SHADERC_RE2_DIR} re2) add_subdirectory(${SHADERC_EFFCEE_DIR} effcee) endif() - add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools) + set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "Skip building SPIRV-Tools executables") + set(SPIRV_TOOLS_BUILD_STATIC OFF CACHE BOOL "Skip building two SPIRV-Tools libs") + set(SPIRV_TOOLS_LIBRARY_TYPE STATIC CACHE STRING "Build static SPIRV-Tools libs") + add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools EXCLUDE_FROM_ALL) if (NOT "${SPIRV_SKIP_TESTS}") if (MSVC) if (${MSVC_VERSION} LESS 1920) @@ -83,7 +86,7 @@ endif() if (NOT TARGET glslang) if (IS_DIRECTORY ${SHADERC_GLSLANG_DIR}) - add_subdirectory(${SHADERC_GLSLANG_DIR} glslang) + add_subdirectory(${SHADERC_GLSLANG_DIR} glslang EXCLUDE_FROM_ALL) endif() if (NOT TARGET glslang) message(FATAL_ERROR "glslang was not found - required for compilation")