Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
4dcdc4211e1c47322888020ed76ac238395225c5
[simgrid.git] / tools / cmake / Documentation.cmake
1 ###
2 ### Generate all parts of the documentation
3 ###
4 ###   - Javadoc (reference)
5 ###   - manpages (reference of tools)
6
7 #### Generate the html documentation
8 find_path(FIG2DEV_PATH  NAMES fig2dev  PATHS NO_DEFAULT_PATHS)
9
10 if(enable_documentation)
11   if (Java_FOUND)
12     find_path(JAVADOC_PATH  NAMES javadoc   PATHS NO_DEFAULT_PATHS)
13     mark_as_advanced(JAVADOC_PATH)
14
15    ADD_CUSTOM_TARGET(documentation
16       COMMENT "Generating the SimGrid documentation..."
17       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/doc/html
18     )
19    ADD_CUSTOM_COMMAND(TARGET documentation
20       COMMAND ${CMAKE_COMMAND} -E echo "XX Javadoc pass"
21       COMMAND ${JAVADOC_PATH}/javadoc -quiet -d ${CMAKE_BINARY_DIR}/doc/html/javadoc/ ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*.java ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*/*.java
22       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc
23     )
24   endif()
25
26   #### Generate the manpages
27   if( NOT MANPAGE_DIR)
28     set( MANPAGE_DIR ${CMAKE_BINARY_DIR}/manpages )
29   endif()
30
31   add_custom_target(manpages ALL
32     COMMAND ${CMAKE_COMMAND} -E make_directory ${MANPAGE_DIR}
33     COMMAND pod2man ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl > ${MANPAGE_DIR}/simgrid_update_xml.1
34     COMMAND pod2man ${CMAKE_HOME_DIRECTORY}/docs/manpages/tesh.pod > ${MANPAGE_DIR}/tesh.1
35     COMMENT "Generating manpages"
36   )
37   install(FILES
38     ${MANPAGE_DIR}/simgrid_update_xml.1
39     ${MANPAGE_DIR}/tesh.1
40     ${CMAKE_HOME_DIRECTORY}/docs/manpages/smpicc.1
41     ${CMAKE_HOME_DIRECTORY}/docs/manpages/smpicxx.1
42     ${CMAKE_HOME_DIRECTORY}/docs/manpages/smpif90.1
43     ${CMAKE_HOME_DIRECTORY}/docs/manpages/smpiff.1
44     ${CMAKE_HOME_DIRECTORY}/docs/manpages/smpirun.1
45     DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
46   )
47
48 else(enable_documentation)
49   ADD_CUSTOM_TARGET(documentation
50     COMMENT "The generation of the SimGrid documentation was disabled in cmake"
51   )
52 endif(enable_documentation)