Кросс-компиляция CMake: флаги C из файла набора инструментов игнорируются
Я использую cmake для кросс-компиляции. В моем файле toolchain есть строка
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")