1set(TARGET llama-eval-callback)
 2add_executable(${TARGET} eval-callback.cpp)
 3install(TARGETS ${TARGET} RUNTIME)
 4target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
 5target_compile_features(${TARGET} PRIVATE cxx_std_17)
 6
 7if(LLAMA_BUILD_TESTS)
 8    if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390x")
 9        set(MODEL_NAME "tinyllamas/stories15M-q4_0.gguf")
10        set(MODEL_HASH "SHA256=66967fbece6dbe97886593fdbb73589584927e29119ec31f08090732d1861739")
11    else()
12        set(MODEL_NAME "tinyllamas/stories15M-be.Q4_0.gguf")
13        set(MODEL_HASH "SHA256=9aec857937849d976f30397e97eb1cabb53eb9dcb1ce4611ba8247fb5f44c65d")
14    endif()
15    set(MODEL_DEST "${CMAKE_BINARY_DIR}/${MODEL_NAME}")
16    set(TEST_TARGET test-eval-callback)
17    add_test(NAME ${TEST_TARGET}-download-model COMMAND ${CMAKE_COMMAND}
18        -DDEST=${MODEL_DEST}
19        -DNAME=${MODEL_NAME}
20        -DHASH=${MODEL_HASH}
21        -P ${CMAKE_SOURCE_DIR}/cmake/download-models.cmake
22    )
23    set_tests_properties(${TEST_TARGET}-download-model PROPERTIES FIXTURES_SETUP ${TEST_TARGET}-download-model)
24    add_test(NAME ${TEST_TARGET} COMMAND llama-eval-callback -m "${MODEL_DEST}" --prompt hello --seed 42 -ngl 0)
25    set_tests_properties(${TEST_TARGET} PROPERTIES FIXTURES_REQUIRED ${TEST_TARGET}-download-model)
26endif()