|
1 | 1 | # Lowering of SYCL ESIMD kernels depends on vc-intrinsics
|
2 | 2 | # NOTE: could have been added earlier from llvm/projects
|
3 | 3 | if (NOT TARGET LLVMGenXIntrinsics)
|
4 |
| - if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
5 |
| - set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git) |
| 4 | + if(NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR) |
| 5 | + find_package(LLVMGenXIntrinsics QUIET) |
| 6 | + endif() |
6 | 7 |
|
7 |
| - # Date: Mar 7, 2025 |
8 |
| - # Update Triple usage after 979c275097 |
9 |
| - set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52) |
| 8 | + if (NOT LLVMGenXIntrinsics_FOUND) |
| 9 | + if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 10 | + find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH}) |
10 | 11 |
|
11 |
| - message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}") |
12 |
| - include(FetchContent) |
13 |
| - FetchContent_Declare(vc-intrinsics |
14 |
| - GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO} |
15 |
| - GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG} |
16 |
| - ) |
17 |
| - FetchContent_MakeAvailable(vc-intrinsics) |
18 |
| - FetchContent_GetProperties(vc-intrinsics) |
| 12 | + if (NOT LLVMGenXIntrinsics_INCLUDE_DIR) |
| 13 | + set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git) |
19 | 14 |
|
20 |
| - set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR}) |
21 |
| - set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR}) |
22 |
| - else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
23 |
| - # -DLLVMGenXIntrinsics_SOURCE_DIR is provided |
24 |
| - message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}") |
| 15 | + # Date: Mar 7, 2025 |
| 16 | + # Update Triple usage after 979c275097 |
| 17 | + set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52) |
25 | 18 |
|
26 |
| - set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
27 |
| - add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
28 |
| - endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 19 | + message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}") |
| 20 | + include(FetchContent) |
| 21 | + FetchContent_Declare(vc-intrinsics |
| 22 | + GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO} |
| 23 | + GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG} |
| 24 | + ) |
| 25 | + FetchContent_MakeAvailable(vc-intrinsics) |
| 26 | + FetchContent_GetProperties(vc-intrinsics) |
29 | 27 |
|
30 |
| - target_include_directories(LLVMGenXIntrinsics |
31 |
| - PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include> |
32 |
| - PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include> |
33 |
| - ) |
| 28 | + set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR}) |
| 29 | + set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR}) |
| 30 | + else() |
| 31 | + message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}") |
| 32 | + set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..) |
| 33 | + set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
| 34 | + add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
| 35 | + endif() |
| 36 | + else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 37 | + # -DLLVMGenXIntrinsics_SOURCE_DIR is provided |
| 38 | + message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}") |
| 39 | + |
| 40 | + set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build) |
| 41 | + add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR}) |
| 42 | + endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR) |
| 43 | + target_include_directories(LLVMGenXIntrinsics |
| 44 | + PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include> |
| 45 | + PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include> |
| 46 | + ) |
| 47 | + endif() |
34 | 48 | endif (NOT TARGET LLVMGenXIntrinsics)
|
35 | 49 |
|
36 | 50 | set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
|
|
0 commit comments