2011-04-08 9 views
5

Zmieniam się z zwykłego make na CMake jako system kompilacji dla projektu. Projekt ma działać na różnych wbudowanych systemach Linux, każdy z własnym zestawem narzędzi, a także ma kilka różnych opcji konfiguracyjnych na cel (np. Różne definicje preprocesorów i niektóre źródła włączone/wyłączone). Ma również działać na desktopowym systemie Linux, a niektóre moduły GUI muszą działać w systemie Windows.CMake wielu toolchains i docelowych platform

Teraz CMake ma opcję CMAKE_TOOLCHAIN_FILE, która może być użyta do zoptymalizowania specyfiki narzędzi i kompilatorów każdej wbudowanej platformy (desktop Linux i Windows nie powinny jej potrzebować).

Zgaduję, że umieszczanie rzeczy innych niż wymienione na CMake Wiki wewnątrz pliku toolchain nie jest dobrym pomysłem.

Zastanawiam się nad utworzeniem niektórych zmiennych CMake, które można edytować za pomocą narzędzia cmake gui, a następnie po prostu za pomocą if/elseif, aby określić właściwą konfigurację.

Czy ktoś ma lepszą lub bardziej elegancką sugestię?

Odpowiedz

5

Pomyślałem, zamiast używać długich if/elseif/else bloków może po prostu mieć

include(flags-${CONFIGURATION_NAME}.cmake) 

w moim CMakeLists.txt oraz szczególne flagi dla każdej konfiguracji będzie po prostu wymienić na odpowiedni plik flagi.

Powiązane problemy