2017-02-08 8 views
2

CMakeで私はadd_subdirectory(gtest)を使ってプロジェクトをテストするためにgtestをビルドします。私はCPackを使ってインストーラを作っています。何もインストールせずにadd_subdirectory()

いくつかのファイルでgtest repo(これはgitサブモジュールです)がinstall()で実行されるため、インストーラで終了します。明らかに私はそれを望んでいない。特定のサブディレクトリに対してinstall()コマンドをCMakeListsから削除するだけで無効にする方法はありますか?

+0

なぜあなたは直接あなたに関連していないツールを構築しているGTESTを使用していないたので、これは愚かな質問かもしれませんが、...決してあなたのプロジェクトの*プロジェクト*ですか?なぜあなたはGTestを別にビルド/インストールしないのですか? (私は自分のプロジェクトの中にBoost.Testを構築しません) – DevSolar

+0

これは、プロジェクトの構築とcmakeとのリンクを簡単にします。 'add_directory'を使ってツリーに構築した場合、それを見つけ出すことなく' target_link_libraries(mytest gtest) 'を実行することができます。エレガントではありませんが、この問題とは別に、本当にうまく機能します。 – Timmmm

+1

しかし、 'find_package()'が何かのために 'add_subdirectory()'を使用していて、問題を発見したところで、 'add_subdirectory()'が*意図した* .. find_package()(それほど難しいことではない)と 'add_subdirectory()' *を削除すると、あなたの問題は解決されるはずです。 ;-) – DevSolar

答えて

4

がインストールされているから、Googleのテストを防ぐために、これを使用することができます:

add_directory(gtest EXCLUDE_FROM_ALL) 
+0

正しい。私は[すでにこれを発見しました](https://stackoverflow.com/a/43043052/265521)何らかの理由で私自身の質問に答えることはできませんでした。:-S – Timmmm

関連する問題