MyTetra Share
Делитесь знаниями!
Как прописывать опции компиляции gcc/g++ в СMake
08.12.2017
15:47
Текстовые метки: cmake, опции компиляции, флаг, gcc, g++, CXX, make
Раздел: Компьютер - Программирование - Системы сборки - CMake

Для того, чтобы передать опцию компиляции компилятору, в CMake можно прописывать переменную CMAKE_CXX_FLAGS:


set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow")


Однако очень важно, в каком месте декларативного файла CMakeLists.txt эта переменная прописана. Если она прописана ДО опции project(), то установки из этой переменной будут молча игнорироваться.


В CMake нужно устанавливать такие переменные после опции project().


* * *


Кстати, даже если правильно прописать переменную MAKE_CXX_FLAGS, то в результирующем файле Makefile этих опций не будет. А будут они находиться в файле:


CMakeFiles/sample.dir/flags.make


Как же они будут использоваться при обработке Makefile командой make? Дело в том, что в Makefile прописаны команды, которые в момент запуска команды make вызвают программу cmake и которая в свою очередь будет парсить CMakeLists.txt!


То есть, файл Makefile, сгенерированный CMake - он, по сути, неполноценный. И без файла CMakeLists.txt, и без установленной в системе cmake, программу из такого Makefile невозможно будет собрать.


 
MyTetra Share v.0.52
Яндекс индекс цитирования