|
1
|
+--- a/CMakeLists.txt
|
|
2
|
++++ b/CMakeLists.txt
|
|
3
|
+@@ -356,7 +356,10 @@ if (NOT "${SPIRV_SKIP_TESTS}")
|
|
4
|
+ endif()
|
|
5
|
+
|
|
6
|
+ set(SPIRV_LIBRARIES "-lSPIRV-Tools-opt -lSPIRV-Tools -lSPIRV-Tools-link")
|
|
7
|
+-set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
|
|
8
|
++
|
|
9
|
++if(BUILD_SHARED_LIBS)
|
|
10
|
++ set(SPIRV_SHARED_LIBRARIES "-lSPIRV-Tools-shared")
|
|
11
|
++endif()
|
|
12
|
+
|
|
13
|
+ # Build pkg-config file
|
|
14
|
+ # Use a first-class target so it's regenerated when relevant files are updated.
|
|
15
|
+@@ -371,6 +374,7 @@ add_custom_target(spirv-tools-pkg-config
|
|
16
|
+ -DSPIRV_LIBRARIES=${SPIRV_LIBRARIES}
|
|
17
|
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
|
|
18
|
+ DEPENDS "CHANGES" "cmake/SPIRV-Tools.pc.in" "cmake/write_pkg_config.cmake")
|
|
19
|
++if(BUILD_SHARED_LIBS)
|
|
20
|
+ add_custom_target(spirv-tools-shared-pkg-config ALL
|
|
21
|
+ COMMAND ${CMAKE_COMMAND}
|
|
22
|
+ -DCHANGES_FILE=${CMAKE_CURRENT_SOURCE_DIR}/CHANGES
|
|
23
|
+@@ -382,13 +386,20 @@ add_custom_target(spirv-tools-shared-pkg
|
|
24
|
+ -DSPIRV_SHARED_LIBRARIES=${SPIRV_SHARED_LIBRARIES}
|
|
25
|
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/write_pkg_config.cmake
|
|
26
|
+ DEPENDS "CHANGES" "cmake/SPIRV-Tools-shared.pc.in" "cmake/write_pkg_config.cmake")
|
|
27
|
++endif()
|
|
28
|
+
|
|
29
|
+ # Install pkg-config file
|
|
30
|
+ if (ENABLE_SPIRV_TOOLS_INSTALL)
|
|
31
|
+ install(
|
|
32
|
+ FILES
|
|
33
|
+ ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc
|
|
34
|
+- ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
|
|
35
|
+ DESTINATION
|
|
36
|
+ ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
37
|
++ if(BUILD_SHARED_LIBS)
|
|
38
|
++ install(
|
|
39
|
++ FILES
|
|
40
|
++ ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc
|
|
41
|
++ DESTINATION
|
|
42
|
++ ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
43
|
++ endif()
|
|
44
|
+ endif()
|
|
45
|
+--- a/source/CMakeLists.txt
|
|
46
|
++++ b/source/CMakeLists.txt
|
|
47
|
+@@ -371,13 +371,15 @@ endfunction()
|
|
48
|
+
|
|
49
|
+ # Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and
|
|
50
|
+ # unlike the other SPIRV_TOOLS target, defaults to hidden symbol visibility.
|
|
51
|
+-add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
|
52
|
+-spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
|
53
|
+-set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
|
54
|
+-target_compile_definitions(${SPIRV_TOOLS}-shared
|
|
55
|
+- PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
|
56
|
+- PUBLIC SPIRV_TOOLS_SHAREDLIB
|
|
57
|
+-)
|
|
58
|
++if(BUILD_SHARED_LIBS)
|
|
59
|
++ add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
|
|
60
|
++ spirv_tools_default_target_options(${SPIRV_TOOLS}-shared)
|
|
61
|
++ set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
|
62
|
++ target_compile_definitions(${SPIRV_TOOLS}-shared
|
|
63
|
++ PRIVATE SPIRV_TOOLS_IMPLEMENTATION
|
|
64
|
++ PUBLIC SPIRV_TOOLS_SHAREDLIB
|
|
65
|
++ )
|
|
66
|
++endif()
|
|
67
|
+
|
|
68
|
+ if(SPIRV_TOOLS_BUILD_STATIC)
|
|
69
|
+ add_library(${SPIRV_TOOLS}-static STATIC ${SPIRV_SOURCES})
|
|
70
|
+@@ -389,11 +391,11 @@ if(SPIRV_TOOLS_BUILD_STATIC)
|
|
71
|
+ # or "${SPIRV_TOOLS}-shared" depending on the value of BUILD_SHARED_LIBS.
|
|
72
|
+ if(BUILD_SHARED_LIBS)
|
|
73
|
+ add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-shared)
|
|
74
|
++ set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
|
|
75
|
+ else()
|
|
76
|
+ add_library(${SPIRV_TOOLS} ALIAS ${SPIRV_TOOLS}-static)
|
|
77
|
++ set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static)
|
|
78
|
+ endif()
|
|
79
|
+-
|
|
80
|
+- set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared)
|
|
81
|
+ else()
|
|
82
|
+ add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES})
|
|
83
|
+ spirv_tools_default_target_options(${SPIRV_TOOLS})
|