次のディレクトリ構造があるとしましょう。
root
|
+--projects
| |
| +-test
| |
| +-CMakeFiles.txt
|
+--libs
|
+-testlib
|
+-CMakeFiles.txt
test
を含みCMakeFiles.txt
、testlib
またを含みますCMakeFiles.txt
。「test」は実行可能ファイルを生成し、「testlib」は静的ライブラリを生成します。
シンボリックリンクを使用せず、「testlib」ライブラリを「test」内のサブディレクトリに移動せずに、「test」を「testlib」にリンクさせたい。
「testlib」は「test」のサブディレクトリではないので、できません
add_subdirectory("../../libs/testlib")
テストCMakeFiles.txt
では-CMakeは「testlib」が「test」サブディレクトリにないことについて文句を言います。
また、システムにはいくつかの異なるコンパイラがあるため、「testlib」ライブラリをある種の中央ディレクトリに単純にインストールすることはできません。そのためtest
、ローカルコピーをコンパイルしてtestlib
リンクします(つまりtestlib
、サブディレクトリのように)。また、「test」プロジェクトが変更された場合は、「testlib」を自動的に再構築する必要があります。
それで、どうすればそれに対処できますか?WindowsXPSP3でCMake2.8.4を使用しています。