File: disable-shared-harder.diff

package info (click to toggle)
spirv-tools 2025.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 28,244 kB
  • sloc: cpp: 462,457; javascript: 5,893; python: 3,326; ansic: 487; sh: 450; ruby: 88; makefile: 18; lisp: 9
file content (97 lines) | stat: -rw-r--r-- 3,902 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -372,7 +372,10 @@ if (NOT "${SPIRV_SKIP_TESTS}")
 endif()
 
 set(SPIRV_LIBRARIES "-lSPIRV-Tools-opt -lSPIRV-Tools -lSPIRV-Tools-link")
-set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
+
+if(BUILD_SHARED_LIBS)
+  set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
+endif()
 
 # Build pkg-config file
 # Use a first-class target so it's regenerated when relevant files are updated.
@@ -388,6 +391,7 @@ add_custom_command(
                       -DSPIRV_LIBRARIES=${SPIRV_LIBRARIES}
                       -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
         DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake")
+if(BUILD_SHARED_LIBS)
 add_custom_command(
         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
         COMMAND ${CMAKE_COMMAND}
@@ -400,16 +404,29 @@ add_custom_command(
                       -DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES}
                       -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
         DEPENDS "CHANGES" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Tools-shared.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake")
+endif()
+if(BUILD_SHARED_LIBS)
 add_custom_target(spirv-tools-pkg-config 
         ALL 
         DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
+else()
+add_custom_target(spirv-tools-pkg-config 
+        ALL 
+        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc)
+endif()
 
 # Install pkg-config file
 if (ENABLE_SPIRV_TOOLS_INSTALL)
   install(
     FILES
       ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc
-      ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
     DESTINATION
       ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+  if(BUILD_SHARED_LIBS)
+    install(
+      FILES
+        ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
+      DESTINATION
+        ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+  endif()
 endif()
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -338,16 +338,18 @@ endfunction()
 
 # Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and
 # unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility.
-add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
-if (SPIRV_TOOLS_USE_MIMALLOC)
-  target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
+if(BUILD_SHARED_LIBS)
+  add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
+  if (SPIRV_TOOLS_USE_MIMALLOC)
+    target_link_libraries(${SPIRV_TOOLS}-shared PRIVATE mimalloc-static)
+  endif()
+  spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
+  set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
+  target_compile_definitions(${SPIRV_TOOLS}-shared
+    PRIVATE SPIRV_TOOLS_IMPLEMENTATION
+    PUBLIC SPIRV_TOOLS_SHAREDLIB
+  )
 endif()
-spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
-set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
-target_compile_definitions(${SPIRV_TOOLS}-shared
-  PRIVATE SPIRV_TOOLS_IMPLEMENTATION
-  PUBLIC SPIRV_TOOLS_SHAREDLIB
-)
 
 if(SPIRV_TOOLS_BUILD_STATIC)
   add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES})
@@ -359,11 +361,11 @@ if(SPIRV_TOOLS_BUILD_STATIC)
   # or "${SPIRV_TOOLS}-shared" depending on the value of BUILD_SHARED_LIBS.
   if(BUILD_SHARED_LIBS)
     add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-shared)
+    set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
   else()
     add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static)
+    set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static)
   endif()
-
-  set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
 else()
   add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES})
   if (SPIRV_TOOLS_USE_MIMALLOC)