Как указать все параметры сборки CMake и их значения по умолчанию?

Как мне указать опцию сборки cmake по умолчанию в командной строке?
Мне нужно собрать библиотеки OpenCV из исходного кода, перед этим я хочу узнать, какие настройки сборки по умолчанию.

Ответ 1

cmake -LA

Чтобы перечислить все переменные option( и set( CACHE (cached)), выполните:

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

Образец stdout:

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 ..

показывает:

ohmjl.png

Протестировано в Ubuntu 16.10, cmake 3.5.2.

Ответ 2

Вы можете сделать cmake -LAH тоже. Флаг H предоставит вам помощь для каждого варианта.

Ответ 3

Я не знаю, как это сделать.

Для этого нужно отредактировать основной файл 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})