Skip to content

Commit 6513abc

Browse files
authored
Merge pull request #1410 from kbenzie/benie/cmake-external-adapter-source-dirs
[CMake] Support external adapter source dirs
2 parents 09be088 + 6d58609 commit 6513abc

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ set(UR_SYCL_LIBRARY_DIR "" CACHE PATH
5252
set(UR_CONFORMANCE_TARGET_TRIPLES "" CACHE STRING
5353
"List of sycl targets to build CTS device binaries for")
5454
set(UR_CONFORMANCE_AMD_ARCH "" CACHE STRING "AMD device target ID to build CTS binaries for")
55+
set(UR_ADAPTER_LEVEL_ZERO_SOURCE_DIR "" CACHE PATH
56+
"Path to external 'level_zero' adapter source dir")
57+
set(UR_ADAPTER_OPENCL_SOURCE_DIR "" CACHE PATH
58+
"Path to external 'opencl' adapter source dir")
59+
set(UR_ADAPTER_CUDA_SOURCE_DIR "" CACHE PATH
60+
"Path to external 'cuda' adapter source dir")
61+
set(UR_ADAPTER_HIP_SOURCE_DIR "" CACHE PATH
62+
"Path to external 'hip' adapter source dir")
63+
set(UR_ADAPTER_NATIVE_CPU_SOURCE_DIR "" CACHE PATH
64+
"Path to external 'native_cpu' adapter source dir")
5565

5666
# There's little reason not to generate the compile_commands.json
5767
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

source/adapters/CMakeLists.txt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,37 @@ endfunction()
3030

3131
add_subdirectory(null)
3232

33+
function(add_ur_adapter_subdirectory name)
34+
string(TOUPPER ${name} NAME)
35+
if(UR_ADAPTER_${NAME}_SOURCE_DIR)
36+
if(NOT IS_DIRECTORY ${UR_ADAPTER_${NAME}_SOURCE_DIR})
37+
message(FATAL_ERROR
38+
"UR_ADAPTER_${NAME}_SOURCE_DIR is not a directory: "
39+
"${UR_ADAPTER_${NAME}_SOURCE_DIR}")
40+
endif()
41+
add_subdirectory(
42+
"${UR_ADAPTER_${NAME}_SOURCE_DIR}"
43+
"${CMAKE_CURRENT_BINARY_DIR}/${name}")
44+
else()
45+
add_subdirectory(${name})
46+
endif()
47+
endfunction()
48+
3349
if(UR_BUILD_ADAPTER_L0 OR UR_BUILD_ADAPTER_ALL)
34-
add_subdirectory(level_zero)
50+
add_ur_adapter_subdirectory(level_zero)
3551
endif()
3652

3753
if(UR_BUILD_ADAPTER_CUDA OR UR_BUILD_ADAPTER_ALL)
38-
add_subdirectory(cuda)
54+
add_ur_adapter_subdirectory(cuda)
3955
endif()
4056

4157
if(UR_BUILD_ADAPTER_HIP OR UR_BUILD_ADAPTER_ALL)
42-
add_subdirectory(hip)
58+
add_ur_adapter_subdirectory(hip)
4359
endif()
4460

4561
if(UR_BUILD_ADAPTER_OPENCL OR UR_BUILD_ADAPTER_ALL)
46-
add_subdirectory(opencl)
62+
add_ur_adapter_subdirectory(opencl)
4763
endif()
4864
if(UR_BUILD_ADAPTER_NATIVE_CPU OR UR_BUILD_ADAPTER_ALL)
49-
add_subdirectory(native_cpu)
65+
add_ur_adapter_subdirectory(native_cpu)
5066
endif()

0 commit comments

Comments
 (0)