[ggerganov/llama.cpp]CMake:修复版本信息未纳入 LlamaConfig.cmake 的问题

2024-03-22 491 views
3

此更改通过将构建信息查询与相应common/build-info.cpp.

回答

6

啊,这就是我们在配置时生成 build-info.cpp 的原因。我删除了它,因为我认为它是多余的,但我不知道 LlamaConfig.cmake。

5

没问题!测试应用程序 (examples/main-cmake-pkg) 不使用主 CMakeLists 进行构建,因为它应该模拟构建树之外的应用程序。我想(在某个时候)为此添加一个 CI 构建,以捕获将来的任何回归问题。

7

这不是我所看到的,它被明确设置为OFF(使用此提交中的更改)。它们应该是选项,因为LlamaConfig.cmake仅仅反映了用户如何构建 llama.cpp。它由顶层CMakeLists.txt文件中设置的选项决定。

set(LLAMA_VERSION 0.0.1493)
set(LLAMA_BUILD_COMMIT 03223d6)
set(LLAMA_BUILD_NUMBER 1493)
set(LLAMA_SHARED_LIB OFF)
set(LLAMA_BLAS OFF)
set(LLAMA_CUBLAS OFF)
set(LLAMA_METAL OFF)
set(LLAMA_MPI OFF)
set(LLAMA_CLBLAST ON)
set(LLAMA_HIPBLAS OFF)
set(LLAMA_ACCELERATE ON)

有关确定这些变量的更多详细信息,请查看scripts/LlamaConfig.cmake.in

7

我的意思是它应该是顶级 CMakeLists.txt 中的一个选项。我看不到 BUILD_SHARED_LIBS 在哪里设置为 OFF,除非通过命令行显式完成(从那时起,它将被缓存,直到您 rm -rf 构建目录)。

7

啊——明白了。是的,我在命令行中传递它:-DBUILD_SHARED_LIBS=OFF。我认为这是一个普遍支持的选项,所以没有考虑这一点。

3

我没有推送访问权限,但我建议应用此补丁:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31908fe5..3e000941 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,6 +43,7 @@ else()
 endif()

 # general
+option(BUILD_SHARED_LIBS                "build shared libraries"                                OFF)
 option(LLAMA_STATIC                     "llama: static link libraries"                          OFF)
 option(LLAMA_NATIVE                     "llama: enable -march=native flag"                      ON)
 option(LLAMA_LTO                        "llama: enable link time optimization"                  OFF)

否则,看起来还不错。