Generate refernceinfo.xml
[openobex:mainline.git] / doc / CMakeLists.txt
1 \r
2 add_custom_target ( doc )\r
3 \r
4 set ( SOURCES\r
5   "${CMAKE_SOURCE_DIR}/lib/api.c"\r
6   "${CMAKE_SOURCE_DIR}/include/openobex/obex.h"\r
7   "${CMAKE_SOURCE_DIR}/include/openobex/obex_const.h"\r
8   "${CMAKE_SOURCE_DIR}/doc/openobex.coverpage"\r
9 )\r
10 \r
11 find_package( Doxygen )\r
12 if ( DOXYGEN_FOUND )\r
13   set ( DOC_OUTPUT_TYPES\r
14     HTML\r
15     LATEX\r
16   )\r
17   set ( DOC_HTML_OUTPUT_FILE "index.html" )\r
18   set ( DOC_LATEX_OUTPUT_FILE "refman.tex" )\r
19 \r
20   foreach ( type ${DOC_OUTPUT_TYPES} )\r
21     foreach ( i ${DOC_OUTPUT_TYPES} )\r
22       set ( DOC_${i}_OUTPUT "NO" )\r
23     endforeach ( i )\r
24     set ( DOC_${type}_OUTPUT "YES" )\r
25     foreach ( src ${SOURCES} )\r
26       set ( DOC_SOURCE_FILES "${DOC_SOURCE_FILES} ${src}" )\r
27     endforeach ( src )\r
28     configure_file (\r
29       ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in\r
30       ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_${type}\r
31       @ONLY\r
32     )\r
33     if ( DOC_${type}_OUTPUT_FILE )\r
34       string ( TOLOWER "${type}" type_low )\r
35       set ( DOC_${type}_OUTPUT_FILE_ABS "${CMAKE_CURRENT_BINARY_DIR}/${type_low}/${DOC_${type}_OUTPUT_FILE}" )\r
36 \r
37       add_custom_command ( OUTPUT "${DOC_${type}_OUTPUT_FILE_ABS}"\r
38           COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_${type}"\r
39           DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_${type}" ${SOURCES}\r
40           VERBATIM\r
41       )\r
42 \r
43       add_custom_target ( apidoc_${type_low} DEPENDS ${DOC_${type}_OUTPUT_FILE_ABS} )\r
44     endif ( DOC_${type}_OUTPUT_FILE )\r
45   endforeach ( type )\r
46 \r
47   set_directory_properties ( PROPERTIES\r
48     ADDITIONAL_MAKE_CLEAN_FILES "html;latex"\r
49   )\r
50   add_dependencies ( openobex apidoc_html )\r
51   add_dependencies ( doc apidoc_html )\r
52 \r
53   install ( DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html"\r
54     DESTINATION ${CMAKE_INSTALL_DOCDIR}\r
55     COMPONENT documentation\r
56   )\r
57 endif ( DOXYGEN_FOUND )\r
58 \r
59 find_package ( Docbook )\r
60 if ( Docbook_FOUND )\r
61   include ( ${Docbook_USE_FILE} )\r
62   if ( UNIX )\r
63     option (BUILD_APPS_HELP_MAN "Build manpage application help files" ON)\r
64     option (BUILD_APPS_HELP_HTML "Build HTML application help files" OFF)\r
65   else ( UNIX )\r
66     option (BUILD_APPS_HELP_HTML "Build HTML application help files" ON)\r
67   endif ( UNIX )\r
68 \r
69   configure_file ( referenceinfo.xml.in referenceinfo.xml @ONLY )\r
70   set ( OPENOBEX_APP_XML_FILE "${CMAKE_CURRENT_SOURCE_DIR}/openobex-apps.xml" )\r
71   list ( APPEND XMLLINT_OPTIONS\r
72     --path "${CMAKE_CURRENT_BINARY_DIR}"\r
73   )\r
74   list ( APPEND XSLT_XSLTPROC_OPTIONS\r
75     --path "${CMAKE_CURRENT_BINARY_DIR}"\r
76   )\r
77   if ( BUILD_APPS_HELP_MAN )\r
78     docbook_generate ( manpage "${OPENOBEX_APP_XML_FILE}" XSLT_FILES_MAN )\r
79     foreach ( file ${XSLT_FILES_MAN} )\r
80       list ( APPEND OPENOBEX_HELP_FILES ${file} )\r
81       get_filename_component ( fileExt ${file} EXT )\r
82       string ( REGEX REPLACE "^[.]" "" fileExt ${fileExt} )\r
83       install (\r
84         FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}\r
85         DESTINATION ${CMAKE_INSTALL_MANDIR}/man${fileExt}\r
86         PERMISSIONS OWNER_READ OWNER_WRITE\r
87                     GROUP_READ\r
88                     WORLD_READ\r
89         COMPONENT documentation\r
90         OPTIONAL\r
91       )\r
92     endforeach ( file )\r
93   endif ( BUILD_APPS_HELP_MAN )\r
94 \r
95   if ( BUILD_APPS_HELP_HTML )\r
96     docbook_generate ( html "${OPENOBEX_APP_XML_FILE}" XSLT_FILES_HTML )\r
97     foreach ( file ${XSLT_FILES_HTML} )\r
98       list ( APPEND OPENOBEX_HELP_FILES ${file} )\r
99       install (\r
100         FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}\r
101         DESTINATION ${CMAKE_INSTALL_DOCDIR}\r
102         PERMISSIONS OWNER_READ OWNER_WRITE\r
103                     GROUP_READ\r
104                     WORLD_READ\r
105         COMPONENT documentation\r
106         OPTIONAL\r
107       )\r
108     endforeach ( file )\r
109   endif ( BUILD_APPS_HELP_HTML )\r
110 \r
111   if ( OPENOBEX_HELP_FILES )\r
112     add_custom_target ( openobex-apps-doc DEPENDS ${OPENOBEX_HELP_FILES} )\r
113     add_dependencies ( openobex-apps openobex-apps-doc )\r
114     add_dependencies ( doc openobex-apps-doc )\r
115   endif ( OPENOBEX_HELP_FILES )\r
116 endif ( Docbook_FOUND )\r