如何列出所有CMake生成选项及其默认值?

如何列出所有CMake生成选项及其默认值?,cmake,Cmake,如何在命令行中列出cmake default build选项? 我需要从源代码构建OpenCV库。在此之前,我想知道默认的构建设置是什么。我不知道直接的方法 MESSAGE(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) MESSAGE(STATUS "Library Type: " ${LIB_TYPE}) MESSAGE(STATUS "Compiler flags:" ${CMAKE_CXX_COMPILE_FLAGS}) MESSAGE(STATUS

如何在命令行中列出cmake default build选项?

我需要从源代码构建OpenCV库。在此之前,我想知道默认的构建设置是什么。

我不知道直接的方法

MESSAGE(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
MESSAGE(STATUS "Library Type: " ${LIB_TYPE})
MESSAGE(STATUS "Compiler flags:" ${CMAKE_CXX_COMPILE_FLAGS})
MESSAGE(STATUS "Compiler cxx debug flags:" ${CMAKE_CXX_FLAGS_DEBUG})
MESSAGE(STATUS "Compiler cxx release flags:" ${CMAKE_CXX_FLAGS_RELEASE})
MESSAGE(STATUS "Compiler cxx min size flags:" ${CMAKE_CXX_FLAGS_MINSIZEREL})
MESSAGE(STATUS "Compiler cxx flags:" ${CMAKE_CXX_FLAGS})
解决此问题的一种方法是编辑主CMakeLists.txt,并在文件末尾打印您感兴趣的设置。存储最重要的cmake设置的变量如下所示:

我总是在CMakeLists.txt的末尾打印这些变量以查看设置

MESSAGE(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
MESSAGE(STATUS "Library Type: " ${LIB_TYPE})
MESSAGE(STATUS "Compiler flags:" ${CMAKE_CXX_COMPILE_FLAGS})
MESSAGE(STATUS "Compiler cxx debug flags:" ${CMAKE_CXX_FLAGS_DEBUG})
MESSAGE(STATUS "Compiler cxx release flags:" ${CMAKE_CXX_FLAGS_RELEASE})
MESSAGE(STATUS "Compiler cxx min size flags:" ${CMAKE_CXX_FLAGS_MINSIZEREL})
MESSAGE(STATUS "Compiler cxx flags:" ${CMAKE_CXX_FLAGS})

cmake-LA

要列出所有
选项(
设置(缓存)
(缓存)变量,请执行以下操作:

mkdir build
cd build
cmake ..
cmake -LA | awk '{if(f)print} /-- Cache values/{f=1}'
样本标准:

AUTOGEMM_ARCHITECTURE:STRING=Hawaii
BLAS_DEBUG_TOOLS:BOOL=OFF
BLAS_DUMP_CLBLAS_KERNELS:BOOL=OFF
BLAS_KEEP_KERNEL_SOURCES:BOOL=ON
BLAS_PRINT_BUILD_ERRORS:BOOL=O
-A
开关也会显示选项,因此您可能希望在随意浏览最有用的选项时忽略它

ccmake
ncurses

sudo apt-get install cmake-curses-gui
ccmake ..
显示:


在Ubuntu 16.10、cmake 3.5.2中测试。

你也可以做
cmake-LAH
H
标志将为你提供每个选项的帮助。

OP询问了所有选项-需要
cmake-LA
@PrzemekD谢谢,在回答中提到了它。客户并不总是知道什么最适合他们:-)嗯……这些是与项目相关的选项。你如何列出所有可能的选项?@banderlog013可能是因为这是一个通用的CMake选项,而不是OpenBLAS专门添加的:@CiroSantilli新疆改造中心法轮功六四事件 这是有道理的,但是我怎样才能得到标准选项的值呢?另外,如果我在子目录(~nested cmake)中有cmake文件,它会起作用吗?试试GUI(
cmake GUI
)?这只列出了作为执行许多其他操作的副产品的选项,例如,如果这样调用,则会使根文件夹中的额外文件变得杂乱无章。最好在表单
cd build&&cmake-LAH..
中使用。可以在此处找到更详细的答案: