CMakeは、インストールターゲットにdepedencyを追加します

私はcmakeを使って次の問題を抱えています。私は生成するために http://tobias.rautenkranz.ch/cmake/doxygen/ のUseDoxygenを使用します私の図書館の資料。これは正常に動作しますが、次のことを実現したいと思っています。  私が "make install"と呼ぶとき、私はDocumentationにビルドしてインストールしたいと思う。したがって、私は

install(DIRECTORY ${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR} DESTINATION share/doc/mylib/)
add_dependencies(install doc) 

私のCMakeLists.txtに。 これによりエラーが発生します。

  CMake Error at CMakeModules/UseDoxygen.cmake:145 (add_dependencies):
  add_dependencies Adding dependency to non-existent target: install
Call Stack (most recent call first):
  CMakeLists.txt:141 (include)

これを簡単に回避する方法はありますか?ターゲットが接続されていない場合、 "make install"を呼び出すために "make doc"が手動で実行されない限り、インストール手順は何もインストールしません。

敬具 グリス

12
この質問の回答をご覧ください。
追加された 著者 sakra,

3 答え

all ターゲットでビルドされるように、 add オプションを指定して add_custom_target を追加してドキュメントを構築します。

インストールするには、 install コマンドだけです。 install ターゲットに何かを追加する必要はありません。

ドキュメントを all ターゲットに追加する場合は、 make install を実行してもドキュメントが作成されます。

6
追加された
これは package install などの他の組み込みターゲットでも機能します。
追加された 著者 Lars Bilke,
これは正常に動作します。追加のadd_dependenciesを使用して正しい順序(ビルド後のドキュメント)を達成しました。
追加された 著者 M.K. aka Grisu,

コードのドキュメントを生成する場合は、ビルドコマンドの後にそのコマンドを実行する方が良いでしょうか?このようにして、インストール時に利用できるようになります。

You can add a custom command at POST_BUILD and execute the doxygen commands there. See more at http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_custom_command

2
追加された

すべての設定(Debug、Release、RelWithDebInfo、MinSizeRel)でドキュメントが重複して構築されるため、add_custom_target(ALL ...)によるドキュメントの構築は理想的なソリューションではありません。

ビルド設定にかかわらず一度ドキュメントを作成したいのですが、install()コマンドのCONFIGURATIONSオプションを使用してリリースとRelWithDebInfoのコンフィグだけにインストールしてください。 install()はドキュメンテーションのターゲットに依存するはずですが、私が言ったように、1つの設定に対してのみビルドします。これらの要件を満たすドキュメントにinstall()からの依存関係を追加する方法はありません。

1
追加された