2011-02-01 69 views
4

より大きなプロジェクトの一部としてコンパイルされる内部サブディレクトリでCMAKE_C_COMPILERとCMAKE_CXX_COMPILERを変更したいと思います。CMAKEサブディレクトリ内のコンパイラを変更するCMakeLists.txtファイル

GNUからIntelコンパイラに変更しました。しかし、このディレクトリの外では、何も変更する必要はありません。

は可能ですか?

ありがとうございました

答えて

1

どのようにあなたのプロジェクトを整理するかによって異なります。 プロジェクト全体のCMakeLists.txtは1つではなく、各サブフォルダごとに1つです。project()定義よりも前にCMAKE_C_COMPILERを変更しようとしてください。 このプロジェクト定義にのみ影響します。

+1

これは機能しません。 CMakeは、サブプロジェクトの1つでCMAKE_C_FLAGSとCMAKE_CXX_FLAGXを簡単に変更することはできません。 – sramij

+2

あなたのように見えます。私は最新の2.8.xでそれを試してみましたが、それ以上はできません - 私は設定で無限ループを持っています(2.6.xより前に動作していました)。ここでは、同じ問題がhttp://www.itk.org/Bug/bug_view_page.php?bug_id=8193&history=1 –

+0

を記述しました。私はこれを正確に行い、CMake 3.6.2は無限ループに入りました。 – Jeff

4

add_subdirectoryを使用する代わりに、サブプロジェクトを独自のCMakeプロジェクトにすることを検討してください。これは、大きなプロジェクトとは独立してビルドすることができます。 ExternalProject_Addコマンドを使用して、外部プロジェクトとして大きなプロジェクトにサブディレクトリを追加することができます。

+0

これはおそらく最善の策だと思います – zbeekman

関連する問題