Как мне указать опцию сборки cmake по умолчанию в командной строке?
Мне нужно собрать библиотеки OpenCV из исходного кода, перед этим я хочу узнать, какие настройки сборки по умолчанию.
Как указать все параметры сборки CMake и их значения по умолчанию?
Ответ 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 ..
показывает:
Протестировано в 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})