This is done in three steps:
- first a "custom install target" is created for each custom target
which builds documentation;
- then dependencies between those custom install targets and the
correspondent "build" targets are added;
- finally some code is added to ensure those "custom install targets"
are called when the builtin install target is executed.
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
- install(DIRECTORY ${DOC_OUTPUT_PATH}/html
- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/${CMAKE_PROJECT_NAME}")
+ add_custom_target(install-doc
+ ${CMAKE_COMMAND} -E copy_directory
+ ${DOC_OUTPUT_PATH}/html
+ "${CMAKE_INSTALL_PREFIX}/share/doc/${CMAKE_PROJECT_NAME}/html"
+ )
+ add_dependencies(install-doc doc)
+
+ install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} install-doc)")
COMMENT "Generating man pages with Asciidoc" VERBATIM
)
COMMENT "Generating man pages with Asciidoc" VERBATIM
)
-install(FILES
- ${DOC_OUTPUT_PATH}/man/am7xxx-play.1
- ${DOC_OUTPUT_PATH}/man/picoproj.1
- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1/")
+ add_custom_target(install-manpages
+ ${CMAKE_COMMAND} -E make_directory
+ "${CMAKE_INSTALL_PREFIX}/share/man/man1/"
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${DOC_OUTPUT_PATH}/man/am7xxx-play.1
+ "${CMAKE_INSTALL_PREFIX}/share/man/man1/"
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${DOC_OUTPUT_PATH}/man/picoproj.1
+ "${CMAKE_INSTALL_PREFIX}/share/man/man1/"
+ )
+ add_dependencies(install-manpages manpages)
+
+ install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} install-manpages)")