Skip to content

Fix fetching L0 and CUDA headers and add UMF_CUDA_INCLUDE_DIR #832

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,19 @@ include(${UMF_CMAKE_SOURCE_DIR}/cmake/helpers.cmake)

set(UMF_LEVEL_ZERO_INCLUDE_DIR
""
CACHE PATH "Directory containing the Level Zero Headers")
CACHE PATH "Directory containing the Level Zero headers")
set(UMF_CUDA_INCLUDE_DIR
""
CACHE PATH "Directory containing the CUDA headers")

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

# Only fetch L0 loader if needed (L0 provider and GPU tests are ON), and not
# already provided by the user (via setting UMF_LEVEL_ZERO_INCLUDE_DIR).
if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (UMF_BUILD_GPU_TESTS
OR (NOT UMF_LEVEL_ZERO_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).
if(UMF_BUILD_LEVEL_ZERO_PROVIDER AND (NOT UMF_LEVEL_ZERO_INCLUDE_DIR))
include(FetchContent)

set(LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git")
Expand Down Expand Up @@ -44,7 +46,9 @@ elseif(UMF_BUILD_LEVEL_ZERO_PROVIDER)
message(STATUS "Level Zero include directory: ${LEVEL_ZERO_INCLUDE_DIRS}")
endif()

if(UMF_BUILD_CUDA_PROVIDER)
# 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).
if(UMF_BUILD_CUDA_PROVIDER AND (NOT UMF_CUDA_INCLUDE_DIR))
include(FetchContent)

set(CUDA_REPO
Expand All @@ -64,6 +68,10 @@ if(UMF_BUILD_CUDA_PROVIDER)
${cuda-headers_SOURCE_DIR}
CACHE PATH "Path to CUDA headers")
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
elseif(UMF_BUILD_CUDA_PROVIDER)
# Only header is needed to build UMF
set(CUDA_INCLUDE_DIRS ${UMF_CUDA_INCLUDE_DIR})
message(STATUS "CUDA include directory: ${CUDA_INCLUDE_DIRS}")
endif()

add_subdirectory(utils)
Expand Down
Loading