此更改通过将构建信息查询与相应common/build-info.cpp
.
Q
[ggerganov/llama.cpp]CMake:修复版本信息未纳入 LlamaConfig.cmake 的问题
3
A
回答
6
啊,这就是我们在配置时生成 build-info.cpp 的原因。我删除了它,因为我认为它是多余的,但我不知道 LlamaConfig.cmake。
5
没问题!测试应用程序 (examples/main-cmake-pkg) 不使用主 CMakeLists 进行构建,因为它应该模拟构建树之外的应用程序。我想(在某个时候)为此添加一个 CI 构建,以捕获将来的任何回归问题。
1
当未启用构建共享库时,build/LlamaConfig.cmake 中的 LLAMA_SHARED_LIB 为空。BUILD_SHARED_LIBS 不应该是option
默认为 OFF 的吗?
https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html
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)
否则,看起来还不错。