1if (DEFINED ZDNN_ROOT)
 2    message(STATUS "zdnn: using ZDNN_ROOT override: ${ZDNN_ROOT}")
 3    set(ZDNN_HINT "${ZDNN_ROOT}")
 4else()
 5    set(ZDNN_HINT "")
 6endif()
 7
 8find_path(ZDNN_INCLUDE
 9            NAMES zdnn.h
10            HINTS ${ZDNN_HINT} /usr /usr/local
11            PATH_SUFFIXES include)
12if (ZDNN_INCLUDE)
13    message(STATUS "zdnn: found include: ${ZDNN_INCLUDE}")
14else()
15    message(FATAL_ERROR "zdnn: include directory not found, please set ZDNN_ROOT to the proper path if necessary")
16endif()
17
18find_library(ZDNN_LIB
19                NAMES zdnn
20                HINTS ${ZDNN_HINT} /usr /usr/local
21                PATH_SUFFIXES lib lib64)
22if (ZDNN_LIB)
23    message(STATUS "zdnn: found library: ${ZDNN_LIB}")
24else()
25    message(FATAL_ERROR "zdnn: library not found, please set ZDNN_ROOT to the proper path if necessary")
26endif()
27
28file(GLOB GGML_SOURCES_ZDNN "*.c" "*.cpp")
29file(GLOB GGML_HEADERS_ZDNN "*.h" "*.hpp")
30
31ggml_add_backend_library(ggml-zdnn ${GGML_HEADERS_ZDNN} ${GGML_SOURCES_ZDNN})
32target_link_libraries(ggml-zdnn PRIVATE ${ZDNN_LIB})
33target_include_directories(ggml-zdnn PRIVATE ${ZDNN_INCLUDE})
34target_link_directories(ggml-zdnn PRIVATE ${ZDNN_LIB})
35
36target_compile_definitions(ggml-zdnn PRIVATE GGML_USE_ZDNN)