Я использую 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?
EDIT: добавлено 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")