Skip to content

Commit d8bb37f

Browse files
committed
Add LIBZE_SET_LOADER_FILENAME CMake variable
Allows users to set Level Zero loader filename
1 parent 4b89b07 commit d8bb37f

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

libsyclinterface/CMakeLists.txt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ option(DPCTL_ENABLE_GLOG
4444

4545
set(DPCTL_LEVEL_ZERO_INCLUDE_DIR "" CACHE STRING "Level zero header path")
4646

47+
set(LIBZE_SET_LOADER_FILENAME "" CACHE STRING "User-provided Level Zero Loader filename")
48+
4749
set(LIBZE_DEFAULT_LOADER_FILENAME "libze_loader.so.1" CACHE STRING "Default Level Zero Loader filename")
4850

4951
# Minimum version requirement only when oneAPI dpcpp is used.
@@ -62,23 +64,27 @@ if(DPCTL_ENABLE_L0_PROGRAM_CREATION)
6264
get_level_zero_headers()
6365
endif()
6466
if (UNIX)
65-
find_library(PI_LEVEL_ZERO_LIB
66-
NAMES pi_level_zero ur_adapter_level_zero
67-
HINTS ${IntelSyclCompiler_LIBRARY_DIR}
68-
)
69-
find_program(READELF_PROG readelf)
70-
find_program(GREP_PROG grep)
71-
execute_process(
72-
COMMAND ${READELF_PROG} -d ${PI_LEVEL_ZERO_LIB}
73-
COMMAND ${GREP_PROG} libze_loader
74-
COMMAND ${GREP_PROG} -Po "libze_loader[^\]]*"
75-
OUTPUT_VARIABLE LIBZE_LOADER_FILENAME
76-
OUTPUT_STRIP_TRAILING_WHITESPACE
77-
ERROR_STRIP_TRAILING_WHITESPACE
78-
)
79-
# if libze_loader is statically linked, LIBZE_LOADER_FILENAME will be an empty string
80-
if ("x${LIBZE_LOADER_FILENAME}" STREQUAL "x")
81-
set(LIBZE_LOADER_FILENAME ${LIBZE_DEFAULT_LOADER_FILENAME})
67+
if ("x${LIBZE_SET_LOADER_FILENAME}" STREQUAL "x")
68+
find_library(PI_LEVEL_ZERO_LIB
69+
NAMES pi_level_zero ur_adapter_level_zero
70+
HINTS ${IntelSyclCompiler_LIBRARY_DIR}
71+
)
72+
find_program(READELF_PROG readelf)
73+
find_program(GREP_PROG grep)
74+
execute_process(
75+
COMMAND ${READELF_PROG} -d ${PI_LEVEL_ZERO_LIB}
76+
COMMAND ${GREP_PROG} libze_loader
77+
COMMAND ${GREP_PROG} -Po "libze_loader[^\]]*"
78+
OUTPUT_VARIABLE LIBZE_LOADER_FILENAME
79+
OUTPUT_STRIP_TRAILING_WHITESPACE
80+
ERROR_STRIP_TRAILING_WHITESPACE
81+
)
82+
# if libze_loader is statically linked, LIBZE_LOADER_FILENAME will be an empty string
83+
if ("x${LIBZE_LOADER_FILENAME}" STREQUAL "x")
84+
set(LIBZE_LOADER_FILENAME ${LIBZE_DEFAULT_LOADER_FILENAME})
85+
endif()
86+
else ()
87+
set(LIBZE_LOADER_FILENAME ${LIBZE_SET_LOADER_FILENAME})
8288
endif()
8389
set(LIBZE_LOADER_FILENAME ${LIBZE_LOADER_FILENAME} PARENT_SCOPE)
8490
endif()

0 commit comments

Comments
 (0)