@@ -44,6 +44,10 @@ 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+
49+ set (LIBZE_DEFAULT_LOADER_FILENAME "libze_loader.so.1" CACHE STRING "Default Level Zero Loader filename" )
50+
4751# Minimum version requirement only when oneAPI dpcpp is used.
4852if (DPCTL_DPCPP_FROM_ONEAPI)
4953 find_package (IntelSyclCompiler 2021.3.0 REQUIRED)
@@ -60,21 +64,28 @@ if(DPCTL_ENABLE_L0_PROGRAM_CREATION)
6064 get_level_zero_headers()
6165 endif ()
6266 if (UNIX )
63- find_library (PI_LEVEL_ZERO_LIB
64- NAMES pi_level_zero ur_adapter_level_zero
65- HINTS ${IntelSyclCompiler_LIBRARY_DIR}
66- )
67- find_program (READELF_PROG readelf)
68- find_program (GREP_PROG grep)
69- execute_process (
70- COMMAND ${READELF_PROG} -d ${PI_LEVEL_ZERO_LIB}
71- COMMAND ${GREP_PROG} libze_loader
72- COMMAND ${GREP_PROG} -Po "libze_loader[^\] ]*"
73- OUTPUT_VARIABLE LIBZE_LOADER_FILENAME
74- OUTPUT_STRIP_TRAILING_WHITESPACE
75- ERROR_STRIP_TRAILING_WHITESPACE
76- )
77- set (LIBZE_LOADER_FILENAME ${LIBZE_LOADER_FILENAME} PARENT_SCOPE)
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} )
88+ endif ()
7889 endif ()
7990 set (LIBZE_LOADER_FILENAME ${LIBZE_LOADER_FILENAME} PARENT_SCOPE)
8091endif ()
0 commit comments