7

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

現在、CMakeには、CMAKE_TOOLCHAIN_FILE各組み込みプラットフォームのツールチェーンとコンパイラ固有のものを除外するために使用できるオプションがあります(デスクトップLinuxおよびWindowsでは必要ありません)。

CMakeWikiにリストされているもの以外のものをツールチェーンファイル内に置くのは良い考えではないと思います。

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

誰かがより良いまたはよりエレガントな提案を持っていますか?

4

1 に答える 1

9

長いif/elseif/elseブロックを使用する代わりに、単純に持つことができると考えました

include(flags-${CONFIGURATION_NAME}.cmake)

私のCMakeLists.txtには、各構成の特定のフラグが適切なフラグファイルにリストされているだけです。

于 2011-04-08T09:03:29.267 に答える