2012-03-19 24 views
7

私は現在、CMakeの上にある複数のサブプロジェクトを持つVisual C++プロジェクトへの移行作業を進めています。CMakeで複数のプロジェクトを扱う

トップレベルのCMakeLists.txtファイルのサブプロジェクトを含めるには、基本的にadd_subdirectoryコマンドを使用し、これらのさまざまなサブプロジェクトが格納されているディレクトリを参照するだけです。

しかし、同じディレクトリにあるプロジェクトがトップレベルのCMakeLists.txtファイルとなっていますので、このファイルを何らかの形で含めることがまだ可能かどうか疑問に思っていますか? cmakeのは、私は(下記参照)、既存のPROJECT_BINARY_DIRにadd_subdirectory呼び出すことはできません:

add_subdirectory(${PROJECT_BINARY_DIR}) #not allowed in CMake 

私のcmakeのビルドにこのサブプロジェクトを含めるようにするために、私は別の方法を考えることはできません。何か案は?

答えて

12

すべてのadd_subdirectoryは、CMakeLists.txtファイルを含むサブディレクトリを追加するため、現在のディレクトリを追加することはできません。単にCMakeロジックを追加して、プロジェクトのその部分をCMakeLists.txtファイルに組み込むことができます。あなたがロジックを分離したい場合は、build_project.cmakeにそれを置くことができ、その後、含ま使い、好きなように

include(build_project.cmake) 

あなたは、他の多くのcmakeのファイルを含めることができ、およびCMakeのコードが評価されることあたかもインラインでペーストされたかのように。したがって、通常のadd_executableコマンドやそれに類するコマンドはすべて動作します。

関連する問題