8
8
"${LLVM_LIBRARY_OUTPUT_INTDIR} /${CMAKE_SHARED_LIBRARY_PREFIX} ze_loader${CMAKE_SHARED_LIBRARY_SUFFIX} " )
9
9
endif ()
10
10
11
- if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR )
12
- message (STATUS "Download Level Zero loader and headers from github.com" )
13
- if (CMAKE_C_COMPILER )
14
- list (APPEND AUX_CMAKE_FLAGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} )
15
- endif ()
16
- if (CMAKE_CXX_COMPILER )
17
- list (APPEND AUX_CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} )
18
- endif ()
19
- file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /level_zero_loader_build )
20
- set (LEVEL_ZERO_LOADER_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR} /level_zero/level_zero_loader" )
21
- if (NOT DEFINED SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE )
22
- set (SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE ${SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE} )
23
- endif ()
24
- set (LEVEL_ZERO_LOADER_SOURCE_VERSION v1.8.8 )
25
-
26
- #TODO: Replace ExternalProject with FetchContent for better maintainance and
27
- # cmake files simplification
28
- include (ExternalProject )
29
- ExternalProject_Add (level-zero-loader
30
- GIT_REPOSITORY https://github.com/oneapi-src/level-zero.git
31
- GIT_TAG ${LEVEL_ZERO_LOADER_SOURCE_VERSION}
32
- UPDATE_DISCONNECTED ${SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE}
33
- SOURCE_DIR ${LEVEL_ZERO_LOADER_SOURCE_DIR}
34
- BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /level_zero_loader_build"
35
- INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR} /level_zero_loader_install"
36
- CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
37
- -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
38
- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
39
- -DCMAKE_INSTALL_LIBDIR:PATH=lib${LLVM_LIBDIR_SUFFIX}
40
- ${AUX_CMAKE_FLAGS}
41
- LOG_DOWNLOAD 1
42
- LOG_UPDATE 1
43
- LOG_CONFIGURE 1
44
- LOG_BUILD 1
45
- LOG_INSTALL 1
46
- STEP_TARGETS configure,build,install
47
- DEPENDS OpenCL-Headers
48
- BUILD_BYPRODUCTS ${LEVEL_ZERO_LOADER}
49
- )
50
- ExternalProject_Add_Step (level-zero-loader llvminstall
51
- COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/lib/ ${LLVM_BINARY_DIR} /lib
52
- COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/include/ ${LLVM_BINARY_DIR} /include/sycl
53
- COMMENT "Installing level-zero-loader into the LLVM binary directory"
54
- DEPENDEES install
55
- )
56
-
57
- install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /level_zero_loader_install/"
58
- DESTINATION "."
59
- COMPONENT level-zero-loader
60
- )
61
-
62
- set (LEVEL_ZERO_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} /level_zero_loader_install/include/
63
- CACHE INTERNAL "Path containing Level_Zero header files." )
11
+ set (LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git" )
12
+ if (WIN32 )
13
+ set (LEVEL_ZERO_LOADER_TAG v1.2.3 )
64
14
else ()
65
- file (GLOB LEVEL_ZERO_LIBRARY_SRC "${LEVEL_ZERO_LIBRARY} *" )
66
- get_filename_component (LEVEL_ZERO_LIB_NAME ${LEVEL_ZERO_LIBRARY} NAME )
67
- add_custom_target (level-zero-loader
68
- DEPENDS
69
- ${LLVM_LIBRARY_OUTPUT_INTDIR} /${LEVEL_ZERO_LIB_NAME}
70
- ${LLVM_BINARY_DIR} /include/sycl/level_zero
71
- )
72
- add_custom_command (
73
- OUTPUT
74
- ${LLVM_LIBRARY_OUTPUT_INTDIR} /${LEVEL_ZERO_LIB_NAME}
75
- ${LLVM_BINARY_DIR} /include/sycl/level_zero
76
- COMMENT
77
- "Copying Level Zero loader and headers"
78
- COMMAND
79
- ${CMAKE_COMMAND} -E copy ${LEVEL_ZERO_LIBRARY_SRC} ${LLVM_LIBRARY_OUTPUT_INTDIR}
80
- COMMAND
81
- ${CMAKE_COMMAND} -E copy_directory ${LEVEL_ZERO_INCLUDE_DIR} ${LLVM_BINARY_DIR} /include/sycl
82
- DEPENDS
83
- ${LEVEL_ZERO_LIBRARY}
84
- ${LEVEL_ZERO_INCLUDE_DIR}
85
- )
15
+ set (LEVEL_ZERO_LOADER_TAG v1.8.8 )
86
16
endif ()
87
17
18
+ message (STATUS "Will fetch Level Zero Loader from ${LEVEL_ZERO_LOADER_REPO} " )
19
+ include (FetchContent )
20
+ FetchContent_Declare (level-zero-loader
21
+ GIT_REPOSITORY ${LEVEL_ZERO_LOADER_REPO}
22
+ GIT_TAG ${LEVEL_ZERO_LOADER_TAG}
23
+ )
24
+
25
+ FetchContent_MakeAvailable (level-zero-loader )
26
+ FetchContent_GetProperties (level-zero-loader )
27
+
28
+ set (LEVEL_ZERO_INCLUDE_DIR
29
+ ${level-zero-loader_SOURCE_DIR}/include CACHE PATH "Path to Level Zero Headers" )
30
+ set (LEVEL_ZERO_LOADER_LIBRARY ${level-zero-loader_TARGET_LOADER_NAME} )
31
+
32
+ #ExternalProject_Add_Step(level-zero-loader llvminstall
33
+ #COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/lib/ ${LLVM_BINARY_DIR}/lib
34
+ #COMMAND ${CMAKE_COMMAND} -E copy_directory <INSTALL_DIR>/include/ ${LLVM_BINARY_DIR}/include/sycl
35
+ #COMMENT "Installing level-zero-loader into the LLVM binary directory"
36
+ #DEPENDEES install
37
+ #)
38
+
88
39
list (APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS level-zero-loader level-zero-headers )
89
40
90
41
include_directories ("${LEVEL_ZERO_INCLUDE_DIR} " )
91
42
43
+ add_library (LevelZeroLoader INTERFACE )
44
+ target_link_libraries (LevelZeroLoader
45
+ INTERFACE ${LEVEL_ZERO_LOADER_LIBRARY}
46
+ )
47
+
92
48
add_library (LevelZeroLoader-Headers INTERFACE )
93
49
add_library (LevelZeroLoader::Headers ALIAS LevelZeroLoader-Headers )
94
50
target_include_directories (LevelZeroLoader-Headers
@@ -111,17 +67,17 @@ add_sycl_plugin(level_zero
111
67
"${CMAKE_CURRENT_SOURCE_DIR} /tracing.cpp"
112
68
${XPTI_PROXY_SRC}
113
69
LIBRARIES
114
- " ${LEVEL_ZERO_LOADER} "
70
+ ${LEVEL_ZERO_LOADER_LIBRARY}
115
71
Threads::Threads
116
- unified_runtime
72
+ pi_unified_runtime
117
73
)
118
74
119
75
find_package (Python3 REQUIRED )
120
76
121
77
add_custom_target (ze-api
122
78
COMMAND ${Python3_EXECUTABLE}
123
79
${CMAKE_CURRENT_SOURCE_DIR} /ze_api_generator.py
124
- ${LEVEL_ZERO_INCLUDE_DIR} /level_zero/ ze_api.h
80
+ ${LEVEL_ZERO_INCLUDE_DIR} /ze_api.h
125
81
BYPRODUCTS
126
82
${CMAKE_CURRENT_BINARY_DIR} /ze_api.def
127
83
)
0 commit comments