set(KLEIDIAI_DOWNLOAD_URL "https://github.com/ARM-software/kleidiai/archive/refs/tags/${KLEIDIAI_COMMIT_TAG}.tar.gz")
set(KLEIDIAI_ARCHIVE_MD5 "54049037570ab0ee0a0d126b2ba5ece1")
- if (POLICY CMP0135)
- cmake_policy(SET CMP0135 NEW)
- endif()
-
- # TODO: Use FetchContent_MakeAvailable with EXCLUDE_FROM_ALL after bumping minimum CMake version to 3.28+
- # Using FetchContent_Populate instead to avoid EXCLUDE_FROM_ALL which requires CMake 3.28
- FetchContent_Declare(KleidiAI_Download
+ set(KLEIDIAI_FETCH_ARGS
URL ${KLEIDIAI_DOWNLOAD_URL}
DOWNLOAD_EXTRACT_TIMESTAMP NEW
- URL_HASH MD5=${KLEIDIAI_ARCHIVE_MD5})
+ URL_HASH MD5=${KLEIDIAI_ARCHIVE_MD5}
+ )
- FetchContent_GetProperties(KleidiAI_Download
- SOURCE_DIR KLEIDIAI_SRC
- POPULATED KLEIDIAI_POPULATED)
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.28")
+ FetchContent_Declare(KleidiAI_Download
+ ${KLEIDIAI_FETCH_ARGS}
+ EXCLUDE_FROM_ALL
+ )
- if (NOT KLEIDIAI_POPULATED)
- FetchContent_Populate(KleidiAI_Download)
+ FetchContent_MakeAvailable(KleidiAI_Download)
FetchContent_GetProperties(KleidiAI_Download SOURCE_DIR KLEIDIAI_SRC)
+ else()
+ FetchContent_Declare(KleidiAI_Download
+ ${KLEIDIAI_FETCH_ARGS}
+ )
+
+ FetchContent_GetProperties(KleidiAI_Download
+ SOURCE_DIR KLEIDIAI_SRC
+ POPULATED KLEIDIAI_POPULATED
+ )
+
+ if (NOT KLEIDIAI_POPULATED)
+ FetchContent_Populate(KleidiAI_Download)
+ FetchContent_GetProperties(KleidiAI_Download SOURCE_DIR KLEIDIAI_SRC)
+ endif()
endif()
add_compile_definitions(GGML_USE_CPU_KLEIDIAI)