Logo AND Algorithmique Numérique Distribuée

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