Kompilacja krzyżowa CMake: ignorowane są flagi C z pliku toolchain

Używam cmake do kompilacji krzyżowej. W moim pliku toolchain znajduje się linia

SET(CMAKE_C_FLAGS "-std=gnu99")

Ta zmienna nie jest ponownie ustawiana w CMakeLists.txt.

Kiedy uciekamcmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake .. ta flaga jest ignorowana.

Aby być bardziej szczegółowym: Liniaflags.cmake pokazuje pustyC_FLAGS = linia. Ale wCMakeOutput.log Mogę znaleźć linięBuild flags: -std=gnu99.

Dowiedziałem się, że drugi biegcmake .. (to samo co określony plik toolchain lub bez niego) rozwiązuje ten problem.

Ale dlaczego nie jest ustawiony za pierwszym razem, gdy uruchamiam cmake?

EDYCJA: Dodano 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")

questionAnswers(2)

yourAnswerToTheQuestion