mirror of https://github.com/stenzek/duckstation
				
				
				
			CI: Backport shaderc changes from PCSX2
							parent
							
								
									06a29f6d95
								
							
						
					
					
						commit
						59eeb89243
					
				@ -1,146 +0,0 @@
 | 
			
		||||
--- 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<bool, std::vector<uint32_t>, 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")
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue