Кросс-компиляция 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")

Ответы на вопрос(2)

Ваш ответ на вопрос