mirror of
git://git.yoctoproject.org/meta-intel.git
synced 2025-07-19 12:59:03 +02:00

* Remove upstreamed patches and refresh others.
* Include the LICENSE.md file and remove the cpp file which just points to
MIT license.
* Update the license to MIT and Apache-2.0
* Install vcb tool from -native recipe.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
(cherry picked from commit 7cd06a4a71
)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
448 lines
18 KiB
Diff
448 lines
18 KiB
Diff
From 991fd3d661efcb4fb6df63b76310d6e634b05c39 Mon Sep 17 00:00:00 2001
|
|
From: "Grzywacz, Maciej" <maciej.grzywacz@intel.com>
|
|
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 <anuj.mittal@intel.com>
|
|
---
|
|
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
|