@@ -41,7 +41,6 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
41
41
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat-extra-semi" )
42
42
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option" )
43
43
endif ()
44
- set (BUILD_STATIC ON )
45
44
46
45
if (UR_LEVEL_ZERO_LOADER_REPO STREQUAL "" )
47
46
set (UR_LEVEL_ZERO_LOADER_REPO "https://github.com/oneapi-src/level-zero.git" )
@@ -67,8 +66,42 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR)
67
66
if (MSVC )
68
67
set (USE_Z7 ON )
69
68
endif ()
69
+ set (BUILD_STATIC ON )
70
70
FetchContent_MakeAvailable(level-zero-loader)
71
71
FetchContent_GetProperties(level-zero-loader)
72
+ set (BUILD_STATIC OFF )
73
+
74
+ # Create a second copy of the repository for the second configuration
75
+ set (level-zero-loader-dynamic_SOURCE_DIR "${CMAKE_BINARY_DIR} /level-zero-loader-dynamic-src" )
76
+
77
+ if (NOT EXISTS ${level-zero-loader-dynamic_SOURCE_DIR})
78
+ file (COPY ${level-zero-loader_SOURCE_DIR} DESTINATION ${level-zero-loader-dynamic_SOURCE_DIR})
79
+ endif ()
80
+
81
+ # Build dynamic configuration
82
+ set (BUILD_STATIC OFF )
83
+ # Manually configure the dynamic build to avoid redefining the ze_loader target
84
+ set (level-zero-loader-dynamic_BUILD_DIR ${CMAKE_BINARY_DIR} /level-zero-loader-dynamic-build )
85
+ file (MAKE_DIRECTORY ${level-zero-loader-dynamic_BUILD_DIR})
86
+ execute_process (COMMAND ${CMAKE_COMMAND} -DBUILD_STATIC=OFF -S ${level-zero-loader-dynamic_SOURCE_DIR}/level-zero-loader-src -B ${level-zero-loader-dynamic_BUILD_DIR})
87
+ # Store the dynamic build directory globally for use in the level_zero UR cmake
88
+ set (LEVEL_ZERO_LOADER_DYNAMIC_BUILD_DIR ${level-zero-loader-dynamic_BUILD_DIR} CACHE PATH "Path to the Level Zero dynamic loader build directory" )
89
+
90
+ message (${CMAKE_BINARY_DIR} )
91
+ if (WIN32 )
92
+ add_custom_target (
93
+ LEVEL_ZERO_DYNAMIC_LOADER_INSTALL
94
+ ALL
95
+ COMMAND ${CMAKE_COMMAND} --build ${LEVEL_ZERO_LOADER_DYNAMIC_BUILD_DIR}
96
+ COMMAND ${CMAKE_COMMAND} -E copy ${LEVEL_ZERO_LOADER_DYNAMIC_BUILD_DIR} /bin/*.dll ${CMAKE_BINARY_DIR} /bin/
97
+ )
98
+ else ()
99
+ add_custom_target (
100
+ LEVEL_ZERO_DYNAMIC_LOADER_INSTALL
101
+ ALL
102
+ COMMAND ${CMAKE_COMMAND} -E copy ${LEVEL_ZERO_LOADER_DYNAMIC_BUILD_DIR} /lib/*.so* ${CMAKE_BINARY_DIR} /lib/
103
+ )
104
+ endif ()
72
105
73
106
# Restore original flags
74
107
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BAK} " )
0 commit comments