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")