CMake cross -компиляция :Игнорируются флаги C из файла цепочки инструментов

Я использую 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")
17
задан ejoerns 18 July 2012 в 07:47
поделиться