Skip to content

Commit a11f927

Browse files
committed
Fix fetching L0 and CUDA headers and add UMF_CUDA_INCLUDE_DIR
Fetch L0 loader only if needed i.e.: if building L0 provider is ON and L0 headers are not provided by the user (via setting UMF_LEVEL_ZERO_INCLUDE_DIR). Fetch CUDA only if needed i.e.: if building CUDA provider is ON and CUDA headers are not provided by the user (via setting UMF_CUDA_INCLUDE_DIR). Ref: #825 Fixes: #827 Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 9e70ea0 commit a11f927

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/CMakeLists.txt

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ include(${UMF_CMAKE_SOURCE_DIR}/cmake/helpers.cmake)
66

77
set(UMF_LEVEL_ZERO_INCLUDE_DIR
88
""
9-
CACHE PATH "Directory containing the Level Zero Headers")
9+
CACHE PATH "Directory containing the Level Zero headers")
10+
set(UMF_CUDA_INCLUDE_DIR
11+
""
12+
CACHE PATH "Directory containing the CUDA headers")
1013

1114
# Compile definitions for UMF library.
1215
#
1316
# TODO: Cleanup the compile definitions across all the CMake files
1417
set(UMF_COMMON_COMPILE_DEFINITIONS UMF_VERSION=${UMF_VERSION})
1518

16-
# Only fetch L0 loader if needed (L0 provider and GPU tests are ON), and not
17-
# already provided by the user (via setting UMF_LEVEL_ZERO_INCLUDE_DIR).
18-
if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (UMF_BUILD_GPU_TESTS
19-
OR (NOT UMF_LEVEL_ZERO_INCLUDE_DIR)))
19+
# Fetch L0 loader only if needed i.e.: if building L0 provider is ON and L0
20+
# headers are not provided by the user (via setting UMF_LEVEL_ZERO_INCLUDE_DIR).
21+
if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (NOT UMF_LEVEL_ZERO_INCLUDE_DIR))
2022
include(FetchContent)
2123

2224
set(LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git")
@@ -34,17 +36,17 @@ if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (UMF_BUILD_GPU_TESTS
3436
EXCLUDE_FROM_ALL)
3537
FetchContent_MakeAvailable(level-zero-loader)
3638

37-
set(LEVEL_ZERO_INCLUDE_DIRS
38-
${level-zero-loader_SOURCE_DIR}/include
39-
CACHE PATH "Path to Level Zero Headers")
39+
set(LEVEL_ZERO_INCLUDE_DIRS ${level-zero-loader_SOURCE_DIR}/include)
4040
message(STATUS "Level Zero include directory: ${LEVEL_ZERO_INCLUDE_DIRS}")
4141
elseif(UMF_BUILD_LEVEL_ZERO_PROVIDER)
4242
# Only header is needed to build UMF
4343
set(LEVEL_ZERO_INCLUDE_DIRS ${UMF_LEVEL_ZERO_INCLUDE_DIR})
4444
message(STATUS "Level Zero include directory: ${LEVEL_ZERO_INCLUDE_DIRS}")
4545
endif()
4646

47-
if(UMF_BUILD_CUDA_PROVIDER)
47+
# Fetch CUDA only if needed i.e.: if building CUDA provider is ON and CUDA
48+
# headers are not provided by the user (via setting UMF_CUDA_INCLUDE_DIR).
49+
if(UMF_BUILD_CUDA_PROVIDER AND (NOT UMF_CUDA_INCLUDE_DIR))
4850
include(FetchContent)
4951

5052
set(CUDA_REPO
@@ -60,9 +62,11 @@ if(UMF_BUILD_CUDA_PROVIDER)
6062
EXCLUDE_FROM_ALL)
6163
FetchContent_MakeAvailable(cuda-headers)
6264

63-
set(CUDA_INCLUDE_DIRS
64-
${cuda-headers_SOURCE_DIR}
65-
CACHE PATH "Path to CUDA headers")
65+
set(CUDA_INCLUDE_DIRS ${cuda-headers_SOURCE_DIR})
66+
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
67+
elseif(UMF_BUILD_CUDA_PROVIDER)
68+
# Only header is needed to build UMF
69+
set(CUDA_INCLUDE_DIRS ${UMF_CUDA_INCLUDE_DIR})
6670
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
6771
endif()
6872

0 commit comments

Comments
 (0)