Skip to content

Commit 3f26ed0

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 11e94da commit 3f26ed0

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/CMakeLists.txt

Lines changed: 21 additions & 9 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")
@@ -36,15 +38,19 @@ if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (UMF_BUILD_GPU_TESTS
3638

3739
set(LEVEL_ZERO_INCLUDE_DIRS
3840
${level-zero-loader_SOURCE_DIR}/include
39-
CACHE PATH "Path to Level Zero Headers")
41+
PARENT_SCOPE)
4042
message(STATUS "Level Zero include directory: ${LEVEL_ZERO_INCLUDE_DIRS}")
4143
elseif(UMF_BUILD_LEVEL_ZERO_PROVIDER)
4244
# Only header is needed to build UMF
43-
set(LEVEL_ZERO_INCLUDE_DIRS ${UMF_LEVEL_ZERO_INCLUDE_DIR})
45+
set(LEVEL_ZERO_INCLUDE_DIRS
46+
${UMF_LEVEL_ZERO_INCLUDE_DIR}
47+
PARENT_SCOPE)
4448
message(STATUS "Level Zero include directory: ${LEVEL_ZERO_INCLUDE_DIRS}")
4549
endif()
4650

47-
if(UMF_BUILD_CUDA_PROVIDER)
51+
# Fetch CUDA only if needed i.e.: if building CUDA provider is ON and CUDA
52+
# headers are not provided by the user (via setting UMF_CUDA_INCLUDE_DIR).
53+
if(UMF_BUILD_CUDA_PROVIDER AND (NOT UMF_CUDA_INCLUDE_DIR))
4854
include(FetchContent)
4955

5056
set(CUDA_REPO
@@ -62,7 +68,13 @@ if(UMF_BUILD_CUDA_PROVIDER)
6268

6369
set(CUDA_INCLUDE_DIRS
6470
${cuda-headers_SOURCE_DIR}
65-
CACHE PATH "Path to CUDA headers")
71+
PARENT_SCOPE)
72+
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
73+
elseif(UMF_BUILD_CUDA_PROVIDER)
74+
# Only header is needed to build UMF
75+
set(CUDA_INCLUDE_DIRS
76+
${UMF_CUDA_INCLUDE_DIR}
77+
PARENT_SCOPE)
6678
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
6779
endif()
6880

0 commit comments

Comments
 (0)