Я использую cmake для кросс-компиляции. В моем файле набора инструментов есть строка
SET(CMAKE_C_FLAGS "-std=gnu99")
Эта переменная больше не устанавливается в CMakeLists.txt.
Когда я запускаю cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake..
, этот флаг игнорируется.
Чтобы быть более подробным :Строка flags.cmake
показывает пустую строку C_FLAGS =
. Но в CMakeOutput.log
я могу найти строку Build flags: -std=gnu99
.
Я узнал, что второй запускcmake..
(то же самое с указанным файлом цепочки инструментов или без него )устраняет эту проблему.
Но почему он не установлен при первом запуске cmake ??
РЕДАКТИРОВАТЬ :Добавлено MNWE
CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(myproject)
SET(files src/main.c)
add_executable(myexec ${files})
avr.cmake:
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_C_COMPILER avr-gcc)
SET(CMAKE_C_FLAGS "-std=gnu99")