2011-04-08 11 views
5

私は、プロジェクトのビルドシステムとしてplain makeからCMakeに変更しています。このプロジェクトは、それぞれ独自のツールチェーンを持つさまざまな組み込みLinuxシステム上で動作するはずであり、ターゲットごとにかなり異なる設定オプションもあります(たとえば、プリプロセッサ定義が異なり、ソースがいくつか含まれているか除外されています)。デスクトップLinuxでも動作するはずで、一部のGUIモジュールはWindows上で動作する必要があります。CMake複数のツールチェーンとターゲットプラットフォーム

CMakeは、CMAKE_TOOLCHAIN_FILEオプションを持っています。これは、各組み込みプラットフォーム(デスクトップLinuxとWindowsでは必要ないはずです)のツールチェーンとコンパイラ固有のものを除外するために使用できます。

ツールチェインファイル内にCMake Wikiに記載されているもの以外のものを入れているのは良い考えではありません。

私はcmake guiツールで編集可能ないくつかのCMake変数を作成し、その後単にif/elseifを使って適切な設定を決定することを考えています。

誰かがより優秀な提案を持っていますか?私が代わりに私は単に私のCMakeLists.txtおよび各構成のための固有のフラグに

include(flags-${CONFIGURATION_NAME}.cmake) 

を持つことができ、長いif/elseif/elseブロックを使用するので考え出し

答えて

5

は、単に適切なフラグファイルに記載されていることになります。