@@ -44,6 +44,8 @@ option(DPCTL_ENABLE_GLOG
4444
4545set (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+
4749set (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