15
15
# Optionally, llvm-spirv tool will be checked and LLVMSPIRVTranslator_Tool_FOUND
16
16
# will be set to true and llvm-spirv executable target will be defined.
17
17
18
- find_library (SPIRVLLVMTranslator_Library LLVMSPIRVLib PATHS ${LLVM_LIB_DIR} )
18
+ find_library (SPIRVLLVMTranslator_Library_Release LLVMSPIRVLib PATHS "${LLVM_DIR} /Release/lib" )
19
+ find_library (SPIRVLLVMTranslator_Library_Debug LLVMSPIRVLib PATHS "${LLVM_DIR} /Debug/lib" )
20
+
19
21
find_path (SPIRVLLVMTranslator_INCLUDE_DIR "LLVMSPIRVLib.h"
20
22
PATH_SUFFIXES LLVMSPIRVLib
21
23
PATHS "${IGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR} /include"
22
24
)
23
25
24
26
# Try to find version and llvm-spirv.
25
- if (SPIRVLLVMTranslator_Library )
27
+ if (SPIRVLLVMTranslator_Library_Release AND SPIRVLLVMTranslator_Library_Debug )
26
28
set (SPIRVLLVMTranslator_Library_FOUND YES )
27
29
28
- get_filename_component (_libdir ${SPIRVLLVMTranslator_Library} DIRECTORY )
30
+ get_filename_component (_libdir_Release ${SPIRVLLVMTranslator_Library_Release} DIRECTORY )
31
+ get_filename_component (_libdir_Debug ${SPIRVLLVMTranslator_Library_Debug} DIRECTORY )
29
32
30
33
# Get library version. Manual parsing is used because it is quite easy and
31
34
# will work for both linux and windows (which is lacking pkg-config).
32
- file (STRINGS "${_libdir} /pkgconfig/LLVMSPIRVLib.pc" _version_file
35
+ file (STRINGS "${_libdir_Release} /pkgconfig/LLVMSPIRVLib.pc" _version_file_release
36
+ REGEX "Version: .*" )
37
+ file (STRINGS "${_libdir_Debug} /pkgconfig/LLVMSPIRVLib.pc" _version_file_debug
33
38
REGEX "Version: .*" )
34
- if (NOT _version_file)
39
+
40
+ if (NOT _version_file_release OR NOT _version_file_debug)
35
41
message (AUTHOR_WARNING "LLVMSPIRVLib is found, but LLVMSPIRVLib.pc is missing!" )
36
42
endif ()
37
- string (REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION "${_version_file} " )
38
- set (SPIRVLLVMTranslator_VERSION ${SPIRVLLVMTranslator_VERSION} CACHE STRING "SPIRVLLVMTranslator version" )
43
+ string (REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Release "${_version_file_release} " )
44
+ string (REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Debug "${_version_file_debug} " )
45
+ set (SPIRVLLVMTranslator_VERSION_Release ${SPIRVLLVMTranslator_VERSION_Release} CACHE STRING "SPIRVLLVMTranslator release version" )
46
+ set (SPIRVLLVMTranslator_VERSION_Debug ${SPIRVLLVMTranslator_VERSION_Debug} CACHE STRING "SPIRVLLVMTranslator debug version" )
39
47
40
48
# Try to find llvm-spirv.
41
- find_program (SPIRVLLVMTranslator_Tool llvm-spirv
42
- PATHS ${_libdir } /../bin
49
+ find_program (SPIRVLLVMTranslator_Tool_Release llvm-spirv
50
+ PATHS ${_libdir_Release } /../bin
43
51
NO_DEFAULT_PATH
44
52
)
45
- if (SPIRVLLVMTranslator_Tool)
53
+ find_program (SPIRVLLVMTranslator_Tool_Debug llvm-spirv
54
+ PATHS ${_libdir_Debug} /../bin
55
+ NO_DEFAULT_PATH
56
+ )
57
+
58
+ if (SPIRVLLVMTranslator_Tool_Release AND SPIRVLLVMTranslator_Tool_Debug)
46
59
set (SPIRVLLVMTranslator_Tool_FOUND YES )
47
60
endif ()
48
61
49
62
unset (_libdir)
50
63
endif ()
51
64
52
65
include (FindPackageHandleStandardArgs)
53
- find_package_handle_standard_args(SPIRVLLVMTranslator
54
- REQUIRED_VARS SPIRVLLVMTranslator_Library SPIRVLLVMTranslator_INCLUDE_DIR
55
- VERSION_VAR SPIRVLLVMTranslator_VERSION
66
+ find_package_handle_standard_args(SPIRVLLVMTranslator_Release
67
+ REQUIRED_VARS SPIRVLLVMTranslator_Library_Release SPIRVLLVMTranslator_INCLUDE_DIR
68
+ VERSION_VAR SPIRVLLVMTranslator_VERSION_Release
69
+ HANDLE_COMPONENTS
70
+ )
71
+ find_package_handle_standard_args(SPIRVLLVMTranslator_Debug
72
+ REQUIRED_VARS SPIRVLLVMTranslator_Library_Debug SPIRVLLVMTranslator_INCLUDE_DIR
73
+ VERSION_VAR SPIRVLLVMTranslator_VERSION_Debug
56
74
HANDLE_COMPONENTS
57
75
)
58
76
59
77
# Mark all cached variables as advanced.
60
- if (SPIRVLLVMTranslator_FOUND)
61
- mark_as_advanced (SPIRVLLVMTranslator_Library)
78
+ if (SPIRVLLVMTranslator_Release_FOUND)
79
+ mark_as_advanced (SPIRVLLVMTranslator_Library_Release)
80
+ mark_as_advanced (SPIRVLLVMTranslator_INCLUDE_DIR)
81
+ mark_as_advanced (SPIRVLLVMTranslator_VERSION_Release)
82
+ endif ()
83
+
84
+ if (SPIRVLLVMTranslator_Debug_FOUND)
85
+ mark_as_advanced (SPIRVLLVMTranslator_Library_Debug)
62
86
mark_as_advanced (SPIRVLLVMTranslator_INCLUDE_DIR)
63
- mark_as_advanced (SPIRVLLVMTranslator_VERSION)
87
+ mark_as_advanced (SPIRVLLVMTranslator_VERSION_Debug)
88
+ endif ()
89
+
90
+ if (SPIRVLLVMTranslator_Tool_Release_FOUND)
91
+ mark_as_advanced (SPIRVLLVMTranslator_Tool_Release)
64
92
endif ()
65
93
66
- if (SPIRVLLVMTranslator_Tool_FOUND )
67
- mark_as_advanced (SPIRVLLVMTranslator_Tool )
94
+ if (SPIRVLLVMTranslator_Tool_Debug_FOUND )
95
+ mark_as_advanced (SPIRVLLVMTranslator_Tool_Debug )
68
96
endif ()
69
97
70
98
# Add interface target for library.
71
99
if (SPIRVLLVMTranslator_FOUND AND NOT TARGET LLVMSPIRVLib)
72
100
add_library (LLVMSPIRVLib IMPORTED UNKNOWN)
73
101
set_target_properties (LLVMSPIRVLib PROPERTIES
74
- IMPORTED_LOCATION ${SPIRVLLVMTranslator_Library}
102
+ IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Library_Release} "
103
+ IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Library_Release} "
104
+ IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Library_Debug} "
75
105
INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR}
76
106
)
77
107
endif ()
@@ -86,6 +116,8 @@ endif()
86
116
if (SPIRVLLVMTranslator_Tool_FOUND AND NOT TARGET llvm-spirv)
87
117
add_executable (llvm-spirv IMPORTED )
88
118
set_target_properties (llvm-spirv PROPERTIES
89
- IMPORTED_LOCATION ${SPIRVLLVMTranslator_Tool}
119
+ IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Tool_Release} "
120
+ IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Tool_Release} "
121
+ IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Tool_Debug} "
90
122
)
91
123
endif ()
0 commit comments