From 991fd3d661efcb4fb6df63b76310d6e634b05c39 Mon Sep 17 00:00:00 2001 From: "Grzywacz, Maciej" Date: Tue, 10 May 2022 09:44:09 +0000 Subject: [PATCH] Fix IGC OS linux buildbreak Fix finding lldelf and SpirvLLVMTranslator Upstream-Status: Backport Signed-off-by: Anuj Mittal --- IGC/cmake/igc_find_liblldELF.cmake | 128 +++++---- .../modules/FindSPIRVLLVMTranslator.cmake | 271 +++++++++++------- 2 files changed, 252 insertions(+), 147 deletions(-) diff --git a/IGC/cmake/igc_find_liblldELF.cmake b/IGC/cmake/igc_find_liblldELF.cmake index b014910d2e9..c6d5765d5df 100644 --- a/IGC/cmake/igc_find_liblldELF.cmake +++ b/IGC/cmake/igc_find_liblldELF.cmake @@ -10,61 +10,89 @@ # IGC_OPTION__LLDELF_H_DIR - Specify additional directories for searching lldELF headers function(add_lld_library LIB_NAME) - find_library(${LIB_NAME}_PATH_RELEASE - ${LIB_NAME} - PATHS "${IGC_OPTION__LLD_DIR}/Release/lib" - PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/lib") - - if("${${LIB_NAME}_PATH_RELEASE}" STREQUAL "${LIB_NAME}_PATH_RELEASE-NOTFOUND") - message(FATAL_ERROR - "Cannot find ${LIB_NAME} library in Release version in ${IGC_OPTION__LLD_DIR}") - endif() - - find_library(${LIB_NAME}_PATH_DEBUG - ${LIB_NAME} - PATHS "${IGC_OPTION__LLD_DIR}/Debug/lib" - PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/lib") - - if("${${LIB_NAME}_PATH_DEBUG}" STREQUAL "${LIB_NAME}_PATH_DEBUG-NOTFOUND") - message(FATAL_ERROR - "Cannot find ${LIB_NAME} library in Debug version in ${IGC_OPTION__LLD_DIR}") + if(WIN32) + find_library(${LIB_NAME}_PATH_RELEASE + ${LIB_NAME} + PATHS "${IGC_OPTION__LLD_DIR}/Release/lib" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/lib") + + if("${${LIB_NAME}_PATH_RELEASE}" STREQUAL "${LIB_NAME}_PATH_RELEASE-NOTFOUND") + message(FATAL_ERROR + "Cannot find ${LIB_NAME} library in Release version in ${IGC_OPTION__LLD_DIR}") + endif() + + find_library(${LIB_NAME}_PATH_DEBUG + ${LIB_NAME} + PATHS "${IGC_OPTION__LLD_DIR}/Debug/lib" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/lib") + + if("${${LIB_NAME}_PATH_DEBUG}" STREQUAL "${LIB_NAME}_PATH_DEBUG-NOTFOUND") + message(FATAL_ERROR + "Cannot find ${LIB_NAME} library in Debug version in ${IGC_OPTION__LLD_DIR}") + endif() + + add_library(${LIB_NAME} UNKNOWN IMPORTED GLOBAL) + set_target_properties(${LIB_NAME} PROPERTIES + IMPORTED_LOCATION_RELEASE "${${LIB_NAME}_PATH_RELEASE}" + IMPORTED_LOCATION_RELEASEINTERNAL "${${LIB_NAME}_PATH_RELEASE}" + IMPORTED_LOCATION_DEBUG "${${LIB_NAME}_PATH_DEBUG}" + ) + else() + find_library(${LIB_NAME}_PATH + ${LIB_NAME} + PATHS "${IGC_OPTION__LLDELF_LIB_DIR}" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/lib") + + if(${LIB_NAME}_PATH-NOTFOUND) + message(FATAL_ERROR + "Cannot find ${LIB_NAME} library, please install missing library or provide the path by IGC_OPTION__LLDELF_LIB_DIR") + endif() + add_library(${LIB_NAME} UNKNOWN IMPORTED GLOBAL) + set_target_properties(${LIB_NAME} PROPERTIES IMPORTED_LOCATION ${${LIB_NAME}_PATH}) endif() - - add_library(${LIB_NAME} UNKNOWN IMPORTED GLOBAL) - set_target_properties(${LIB_NAME} PROPERTIES - IMPORTED_LOCATION_RELEASE "${${LIB_NAME}_PATH_RELEASE}" - IMPORTED_LOCATION_RELEASEINTERNAL "${${LIB_NAME}_PATH_RELEASE}" - IMPORTED_LOCATION_DEBUG "${${LIB_NAME}_PATH_DEBUG}" - ) endfunction() function(add_lld_executable EXE_NAME) - find_program(${EXE_NAME}_PATH_RELEASE - ${EXE_NAME} - PATHS "${IGC_OPTION__LLD_DIR}/Release/bin" - PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/bin") - - if("${${EXE_NAME}_PATH_RELEASE}" STREQUAL "${EXE_NAME}_PATH_RELEASE-NOTFOUND") - message(FATAL_ERROR - "Cannot find ${EXE_NAME} executable in Release version in ${IGC_OPTION__LLD_DIR}") + if(WIN32) + find_program(${EXE_NAME}_PATH_RELEASE + ${EXE_NAME} + PATHS "${IGC_OPTION__LLD_DIR}/Release/bin" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/bin") + + if("${${EXE_NAME}_PATH_RELEASE}" STREQUAL "${EXE_NAME}_PATH_RELEASE-NOTFOUND") + message(FATAL_ERROR + "Cannot find ${EXE_NAME} executable in Release version in ${IGC_OPTION__LLD_DIR}") + endif() + + find_program(${EXE_NAME}_PATH_DEBUG + ${EXE_NAME} + PATHS "${IGC_OPTION__LLD_DIR}/Debug/bin" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/bin") + + if("${${EXE_NAME}_PATH_DEBUG}" STREQUAL "${EXE_NAME}_PATH_DEBUG-NOTFOUND") + message(FATAL_ERROR + "Cannot find ${EXE_NAME} executable in Debug version in ${IGC_OPTION__LLD_DIR}") + endif() + + add_executable(${EXE_NAME} IMPORTED GLOBAL) + set_target_properties(${EXE_NAME} PROPERTIES + IMPORTED_LOCATION_RELEASE "${${EXE_NAME}_PATH_RELEASE}" + IMPORTED_LOCATION_RELEASEINTERNAL "${${EXE_NAME}_PATH_RELEASE}" + IMPORTED_LOCATION_DEBUG "${${EXE_NAME}_PATH_DEBUG}" + ) + else() + find_program(${EXE_NAME}_PATH + ${EXE_NAME} + PATHS "${IGC_OPTION__LLD_BIN_DIR}" + PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/bin") + + if(${EXE_NAME}_PATH-NOTFOUND) + message(FATAL_ERROR "Cannot find ${EXE_NAME} executable, please install missing executable or provide the path by IGC_OPTION__LLD_BIN_DIR") + endif() + + add_executable(${EXE_NAME} IMPORTED GLOBAL) + set_target_properties(${EXE_NAME} PROPERTIES IMPORTED_LOCATION ${${EXE_NAME}_PATH}) endif() - - find_program(${EXE_NAME}_PATH_DEBUG - ${EXE_NAME} - PATHS "${IGC_OPTION__LLD_DIR}/Debug/bin" - PATH_SUFFIXES "llvm-${LLVM_VERSION_MAJOR}/bin") - - if("${${EXE_NAME}_PATH_DEBUG}" STREQUAL "${EXE_NAME}_PATH_DEBUG-NOTFOUND") - message(FATAL_ERROR - "Cannot find ${EXE_NAME} executable in Debug version in ${IGC_OPTION__LLD_DIR}") - endif() - - add_executable(${EXE_NAME} IMPORTED GLOBAL) - set_target_properties(${EXE_NAME} PROPERTIES - IMPORTED_LOCATION_RELEASE "${${EXE_NAME}_PATH_RELEASE}" - IMPORTED_LOCATION_RELEASEINTERNAL "${${EXE_NAME}_PATH_RELEASE}" - IMPORTED_LOCATION_DEBUG "${${EXE_NAME}_PATH_DEBUG}" - ) endfunction() if(IGC_BUILD__LLVM_SOURCES) diff --git a/IGC/cmake/modules/FindSPIRVLLVMTranslator.cmake b/IGC/cmake/modules/FindSPIRVLLVMTranslator.cmake index de2ff5baad1..0d8d00b4a5d 100644 --- a/IGC/cmake/modules/FindSPIRVLLVMTranslator.cmake +++ b/IGC/cmake/modules/FindSPIRVLLVMTranslator.cmake @@ -15,109 +15,186 @@ # Optionally, llvm-spirv tool will be checked and LLVMSPIRVTranslator_Tool_FOUND # will be set to true and llvm-spirv executable target will be defined. -find_library(SPIRVLLVMTranslator_Library_Release LLVMSPIRVLib PATHS "${LLVM_DIR}/Release/lib") -find_library(SPIRVLLVMTranslator_Library_Debug LLVMSPIRVLib PATHS "${LLVM_DIR}/Debug/lib") - -find_path(SPIRVLLVMTranslator_INCLUDE_DIR "LLVMSPIRVLib.h" - PATH_SUFFIXES LLVMSPIRVLib - PATHS "${IGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR}/include" - ) - -# Try to find version and llvm-spirv. -if(SPIRVLLVMTranslator_Library_Release AND SPIRVLLVMTranslator_Library_Debug) - set(SPIRVLLVMTranslator_Library_FOUND YES) - - get_filename_component(_libdir_Release ${SPIRVLLVMTranslator_Library_Release} DIRECTORY) - get_filename_component(_libdir_Debug ${SPIRVLLVMTranslator_Library_Debug} DIRECTORY) - - # Get library version. Manual parsing is used because it is quite easy and - # will work for both linux and windows (which is lacking pkg-config). - file(STRINGS "${_libdir_Release}/pkgconfig/LLVMSPIRVLib.pc" _version_file_release - REGEX "Version: .*") - file(STRINGS "${_libdir_Debug}/pkgconfig/LLVMSPIRVLib.pc" _version_file_debug - REGEX "Version: .*") - - if(NOT _version_file_release OR NOT _version_file_debug) - message(AUTHOR_WARNING "LLVMSPIRVLib is found, but LLVMSPIRVLib.pc is missing!") +if(WIN32) + find_library(SPIRVLLVMTranslator_Library_Release LLVMSPIRVLib PATHS "${LLVM_DIR}/Release/lib") + find_library(SPIRVLLVMTranslator_Library_Debug LLVMSPIRVLib PATHS "${LLVM_DIR}/Debug/lib") + + find_path(SPIRVLLVMTranslator_INCLUDE_DIR "LLVMSPIRVLib.h" + PATH_SUFFIXES LLVMSPIRVLib + PATHS "${IGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR}/include" + ) + + # Try to find version and llvm-spirv. + if(SPIRVLLVMTranslator_Library_Release AND SPIRVLLVMTranslator_Library_Debug) + set(SPIRVLLVMTranslator_Library_FOUND YES) + + get_filename_component(_libdir_Release ${SPIRVLLVMTranslator_Library_Release} DIRECTORY) + get_filename_component(_libdir_Debug ${SPIRVLLVMTranslator_Library_Debug} DIRECTORY) + + # Get library version. Manual parsing is used because it is quite easy and + # will work for both linux and windows (which is lacking pkg-config). + file(STRINGS "${_libdir_Release}/pkgconfig/LLVMSPIRVLib.pc" _version_file_release + REGEX "Version: .*") + file(STRINGS "${_libdir_Debug}/pkgconfig/LLVMSPIRVLib.pc" _version_file_debug + REGEX "Version: .*") + + if(NOT _version_file_release OR NOT _version_file_debug) + message(AUTHOR_WARNING "LLVMSPIRVLib is found, but LLVMSPIRVLib.pc is missing!") + endif() + string(REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Release "${_version_file_release}") + string(REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Debug "${_version_file_debug}") + set(SPIRVLLVMTranslator_VERSION_Release ${SPIRVLLVMTranslator_VERSION_Release} CACHE STRING "SPIRVLLVMTranslator release version") + set(SPIRVLLVMTranslator_VERSION_Debug ${SPIRVLLVMTranslator_VERSION_Debug} CACHE STRING "SPIRVLLVMTranslator debug version") + + # Try to find llvm-spirv. + find_program(SPIRVLLVMTranslator_Tool_Release llvm-spirv + PATHS ${_libdir_Release}/../bin + NO_DEFAULT_PATH + ) + find_program(SPIRVLLVMTranslator_Tool_Debug llvm-spirv + PATHS ${_libdir_Debug}/../bin + NO_DEFAULT_PATH + ) + + if(SPIRVLLVMTranslator_Tool_Release AND SPIRVLLVMTranslator_Tool_Debug) + set(SPIRVLLVMTranslator_Tool_FOUND YES) + endif() + + unset(_libdir) endif() - string(REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Release "${_version_file_release}") - string(REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION_Debug "${_version_file_debug}") - set(SPIRVLLVMTranslator_VERSION_Release ${SPIRVLLVMTranslator_VERSION_Release} CACHE STRING "SPIRVLLVMTranslator release version") - set(SPIRVLLVMTranslator_VERSION_Debug ${SPIRVLLVMTranslator_VERSION_Debug} CACHE STRING "SPIRVLLVMTranslator debug version") - - # Try to find llvm-spirv. - find_program(SPIRVLLVMTranslator_Tool_Release llvm-spirv - PATHS ${_libdir_Release}/../bin - NO_DEFAULT_PATH + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SPIRVLLVMTranslator_Release + REQUIRED_VARS SPIRVLLVMTranslator_Library_Release SPIRVLLVMTranslator_INCLUDE_DIR + VERSION_VAR SPIRVLLVMTranslator_VERSION_Release + HANDLE_COMPONENTS ) - find_program(SPIRVLLVMTranslator_Tool_Debug llvm-spirv - PATHS ${_libdir_Debug}/../bin - NO_DEFAULT_PATH + find_package_handle_standard_args(SPIRVLLVMTranslator_Debug + REQUIRED_VARS SPIRVLLVMTranslator_Library_Debug SPIRVLLVMTranslator_INCLUDE_DIR + VERSION_VAR SPIRVLLVMTranslator_VERSION_Debug + HANDLE_COMPONENTS ) - if(SPIRVLLVMTranslator_Tool_Release AND SPIRVLLVMTranslator_Tool_Debug) - set(SPIRVLLVMTranslator_Tool_FOUND YES) + # Mark all cached variables as advanced. + if(SPIRVLLVMTranslator_Release_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Library_Release) + mark_as_advanced(SPIRVLLVMTranslator_INCLUDE_DIR) + mark_as_advanced(SPIRVLLVMTranslator_VERSION_Release) endif() - unset(_libdir) -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SPIRVLLVMTranslator_Release - REQUIRED_VARS SPIRVLLVMTranslator_Library_Release SPIRVLLVMTranslator_INCLUDE_DIR - VERSION_VAR SPIRVLLVMTranslator_VERSION_Release - HANDLE_COMPONENTS - ) -find_package_handle_standard_args(SPIRVLLVMTranslator_Debug - REQUIRED_VARS SPIRVLLVMTranslator_Library_Debug SPIRVLLVMTranslator_INCLUDE_DIR - VERSION_VAR SPIRVLLVMTranslator_VERSION_Debug - HANDLE_COMPONENTS - ) - -# Mark all cached variables as advanced. -if(SPIRVLLVMTranslator_Release_FOUND) - mark_as_advanced(SPIRVLLVMTranslator_Library_Release) - mark_as_advanced(SPIRVLLVMTranslator_INCLUDE_DIR) - mark_as_advanced(SPIRVLLVMTranslator_VERSION_Release) -endif() - -if(SPIRVLLVMTranslator_Debug_FOUND) - mark_as_advanced(SPIRVLLVMTranslator_Library_Debug) - mark_as_advanced(SPIRVLLVMTranslator_INCLUDE_DIR) - mark_as_advanced(SPIRVLLVMTranslator_VERSION_Debug) -endif() - -if(SPIRVLLVMTranslator_Tool_Release_FOUND) - mark_as_advanced(SPIRVLLVMTranslator_Tool_Release) -endif() - -if(SPIRVLLVMTranslator_Tool_Debug_FOUND) -mark_as_advanced(SPIRVLLVMTranslator_Tool_Debug) -endif() - -# Add interface target for library. -if(SPIRVLLVMTranslator_FOUND AND NOT TARGET LLVMSPIRVLib) - add_library(LLVMSPIRVLib IMPORTED UNKNOWN) - set_target_properties(LLVMSPIRVLib PROPERTIES - IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Library_Release}" - IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Library_Release}" - IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Library_Debug}" - INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} - ) -endif() + if(SPIRVLLVMTranslator_Debug_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Library_Debug) + mark_as_advanced(SPIRVLLVMTranslator_INCLUDE_DIR) + mark_as_advanced(SPIRVLLVMTranslator_VERSION_Debug) + endif() + + if(SPIRVLLVMTranslator_Tool_Release_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Tool_Release) + endif() + + if(SPIRVLLVMTranslator_Tool_Debug_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Tool_Debug) + endif() + + # Add interface target for library. + if(SPIRVLLVMTranslator_FOUND AND NOT TARGET LLVMSPIRVLib) + add_library(LLVMSPIRVLib IMPORTED UNKNOWN) + set_target_properties(LLVMSPIRVLib PROPERTIES + IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Library_Release}" + IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Library_Release}" + IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Library_Debug}" + INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} + ) + endif() + + if (NOT IGC_BUILD__SPIRV_TRANSLATOR_SOURCES) + set_target_properties(LLVMSPIRVLib PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} + ) + endif() -if (NOT IGC_BUILD__SPIRV_TRANSLATOR_SOURCES) - set_target_properties(LLVMSPIRVLib PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} + # Add interface target for llvm-spirv. + if(SPIRVLLVMTranslator_Tool_FOUND AND NOT TARGET llvm-spirv) + add_executable(llvm-spirv IMPORTED) + set_target_properties(llvm-spirv PROPERTIES + IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Tool_Release}" + IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Tool_Release}" + IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Tool_Debug}" + ) + endif() +else() + find_library(SPIRVLLVMTranslator_Library LLVMSPIRVLib PATHS ${LLVM_LIB_DIR}) + find_path(SPIRVLLVMTranslator_INCLUDE_DIR "LLVMSPIRVLib.h" + PATH_SUFFIXES LLVMSPIRVLib + PATHS "${IGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR}/include" ) -endif() - -# Add interface target for llvm-spirv. -if(SPIRVLLVMTranslator_Tool_FOUND AND NOT TARGET llvm-spirv) - add_executable(llvm-spirv IMPORTED) - set_target_properties(llvm-spirv PROPERTIES - IMPORTED_LOCATION_RELEASE "${SPIRVLLVMTranslator_Tool_Release}" - IMPORTED_LOCATION_RELEASEINTERNAL "${SPIRVLLVMTranslator_Tool_Release}" - IMPORTED_LOCATION_DEBUG "${SPIRVLLVMTranslator_Tool_Debug}" + + # Try to find version and llvm-spirv. + if(SPIRVLLVMTranslator_Library) + set(SPIRVLLVMTranslator_Library_FOUND YES) + + get_filename_component(_libdir ${SPIRVLLVMTranslator_Library} DIRECTORY) + + # Get library version. Manual parsing is used because it is quite easy and + # will work for both linux and windows (which is lacking pkg-config). + file(STRINGS "${_libdir}/pkgconfig/LLVMSPIRVLib.pc" _version_file + REGEX "Version: .*") + if(NOT _version_file) + message(AUTHOR_WARNING "LLVMSPIRVLib is found, but LLVMSPIRVLib.pc is missing!") + endif() + string(REPLACE "Version: " "" SPIRVLLVMTranslator_VERSION "${_version_file}") + set(SPIRVLLVMTranslator_VERSION ${SPIRVLLVMTranslator_VERSION} CACHE STRING "SPIRVLLVMTranslator version") + + # Try to find llvm-spirv. + find_program(SPIRVLLVMTranslator_Tool llvm-spirv + PATHS ${_libdir}/../bin + NO_DEFAULT_PATH + ) + if(SPIRVLLVMTranslator_Tool) + set(SPIRVLLVMTranslator_Tool_FOUND YES) + endif() + + unset(_libdir) + endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SPIRVLLVMTranslator + REQUIRED_VARS SPIRVLLVMTranslator_Library SPIRVLLVMTranslator_INCLUDE_DIR + VERSION_VAR SPIRVLLVMTranslator_VERSION + HANDLE_COMPONENTS ) -endif() + + # Mark all cached variables as advanced. + if(SPIRVLLVMTranslator_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Library) + mark_as_advanced(SPIRVLLVMTranslator_INCLUDE_DIR) + mark_as_advanced(SPIRVLLVMTranslator_VERSION) + endif() + + if(SPIRVLLVMTranslator_Tool_FOUND) + mark_as_advanced(SPIRVLLVMTranslator_Tool) + endif() + + # Add interface target for library. + if(SPIRVLLVMTranslator_FOUND AND NOT TARGET LLVMSPIRVLib) + add_library(LLVMSPIRVLib IMPORTED UNKNOWN) + set_target_properties(LLVMSPIRVLib PROPERTIES + IMPORTED_LOCATION ${SPIRVLLVMTranslator_Library} + INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} + ) + endif() + + if (NOT IGC_BUILD__SPIRV_TRANSLATOR_SOURCES) + set_target_properties(LLVMSPIRVLib PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${SPIRVLLVMTranslator_INCLUDE_DIR} + ) + endif() + + # Add interface target for llvm-spirv. + if(SPIRVLLVMTranslator_Tool_FOUND AND NOT TARGET llvm-spirv) + add_executable(llvm-spirv IMPORTED) + set_target_properties(llvm-spirv PROPERTIES + IMPORTED_LOCATION ${SPIRVLLVMTranslator_Tool} + ) + endif() +endif() \ No newline at end of file