1515# Optionally, llvm-spirv tool will be checked and LLVMSPIRVTranslator_Tool_FOUND
1616# will be set to true and llvm-spirv executable target will be defined.
1717
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+
1921find_path (SPIRVLLVMTranslator_INCLUDE_DIR "LLVMSPIRVLib.h"
2022 PATH_SUFFIXES LLVMSPIRVLib
2123 PATHS "${IGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR} /include"
2224 )
2325
2426# Try to find version and llvm-spirv.
25- if (SPIRVLLVMTranslator_Library )
27+ if (SPIRVLLVMTranslator_Library_Release AND SPIRVLLVMTranslator_Library_Debug )
2628 set (SPIRVLLVMTranslator_Library_FOUND YES )
2729
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 )
2932
3033 # Get library version. Manual parsing is used because it is quite easy and
3134 # 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
3338 REGEX "Version: .*" )
34- if (NOT _version_file)
39+
40+ if (NOT _version_file_release OR NOT _version_file_debug)
3541 message (AUTHOR_WARNING "LLVMSPIRVLib is found, but LLVMSPIRVLib.pc is missing!" )
3642 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" )
3947
4048 # 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
4351 NO_DEFAULT_PATH
4452 )
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)
4659 set (SPIRVLLVMTranslator_Tool_FOUND YES )
4760 endif ()
4861
4962 unset (_libdir)
5063endif ()
5164
5265include (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
5674 HANDLE_COMPONENTS
5775 )
5876
5977# 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)
6286 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)
6492endif ()
6593
66- if (SPIRVLLVMTranslator_Tool_FOUND )
67- mark_as_advanced (SPIRVLLVMTranslator_Tool )
94+ if (SPIRVLLVMTranslator_Tool_Debug_FOUND )
95+ mark_as_advanced (SPIRVLLVMTranslator_Tool_Debug )
6896endif ()
6997
7098# Add interface target for library.
7199if (SPIRVLLVMTranslator_FOUND AND NOT TARGET LLVMSPIRVLib)
72100 add_library (LLVMSPIRVLib IMPORTED UNKNOWN)
73101 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} "
75105 INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR}
76106 )
77107endif ()
@@ -86,6 +116,8 @@ endif()
86116if (SPIRVLLVMTranslator_Tool_FOUND AND NOT TARGET llvm-spirv)
87117 add_executable (llvm-spirv IMPORTED )
88118 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} "
90122 )
91123endif ()
0 commit comments