doc: make sure docs have been generated when installing
authorAntonio Ospite <ospite@studenti.unina.it>
Wed, 28 Mar 2012 07:11:51 +0000 (09:11 +0200)
committerAntonio Ospite <ospite@studenti.unina.it>
Wed, 28 Mar 2012 08:52:20 +0000 (10:52 +0200)
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.

doc/CMakeLists.txt
doc/man/CMakeLists.txt

index 0569f9d..c1995f7 100644 (file)
@@ -9,8 +9,14 @@ if(DOXYGEN_FOUND)
     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)")
 
 endif(DOXYGEN_FOUND)
 
 
 endif(DOXYGEN_FOUND)
 
index 8029513..0083f4a 100644 (file)
@@ -8,9 +8,18 @@ if(ASCIIDOC_FOUND)
     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)")
 
 endif(ASCIIDOC_FOUND)
 
 endif(ASCIIDOC_FOUND)