~ubuntu-branches/ubuntu/oneiric/dbus/oneiric-security

« back to all changes in this revision

Viewing changes to cmake/doc/CMakeLists.txt

  • Committer: Bazaar Package Importer
  • Author(s): Scott James Remnant
  • Date: 2010-12-21 13:43:26 UTC
  • mfrom: (1.1.24 upstream)
  • Revision ID: james.westby@ubuntu.com-20101221134326-tphabew59n072ej1
Tags: 1.4.1-0ubuntu1
* New upstream release:
  - Fix for CVE-2010-4352: sending messages with excessively-nested
    variants can crash the bus. The existing restriction to 64-levels
    of nesting previously only applied to the static type signature;
    now it also applies to dynamic nesting using variants.
  - Various bug fixes.

* Dropped patch from 1.4.0-0ubuntu2 since it's now included upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
find_package(Doxygen)
 
2
 
 
3
if(DOXYGEN_EXECUTABLE)
 
4
  OPTION(DBUS_ENABLE_DOXYGEN_DOCS "build DOXYGEN documentation (requires Doxygen)" ON)
 
5
endif(DOXYGEN_EXECUTABLE)
 
6
 
 
7
if (DBUS_ENABLE_DOXYGEN_DOCS)
 
8
    set (top_srcdir ${CMAKE_SOURCE_DIR}/..)
 
9
    configure_file(${CMAKE_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_BINARY_DIR}/Doxyfile )
 
10
    add_custom_target(doc 
 
11
        COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
 
12
    )
 
13
endif (DBUS_ENABLE_DOXYGEN_DOCS)
 
14
 
 
15
#
 
16
# find docbook generator
 
17
 
18
find_program(MEINPROC4_EXECUTABLE meinproc4)
 
19
 
 
20
find_program(XMLTO_EXECUTABLE xmlto)
 
21
 
 
22
if (MEINPROC4_EXECUTABLE OR XMLTO_EXECUTABLE)
 
23
  OPTION(DBUS_ENABLE_XML_DOCS "build XML  documentation (requires xmlto or meinproc4)" ON)
 
24
endif (MEINPROC4_EXECUTABLE OR XMLTO_EXECUTABLE)
 
25
 
 
26
if (MEINPROC4_EXECUTABLE)
 
27
        set(DOCBOOK_GENERATOR_NAME "meinproc4" PARENT_SCOPE)
 
28
        set(DBUS_XML_DOCS_ENABLED 1)
 
29
        if(WIN32)
 
30
                get_filename_component(_a ${MEINPROC4_EXECUTABLE} PATH)
 
31
                get_filename_component(_meinproc_install_path ${_a} PATH)
 
32
        else(WIN32)
 
33
                set(_meinproc_install_path ${CMAKE_INSTALL_PREFIX})
 
34
        endif(WIN32)
 
35
        set(STYLESHEET "${_meinproc_install_path}/share/apps/ksgmltools2/docbook/xsl/html/docbook.xsl")
 
36
endif (MEINPROC4_EXECUTABLE)
 
37
  
 
38
 
 
39
if (XMLTO_EXECUTABLE)
 
40
        set (DOCBOOK_GENERATOR_NAME "xmlto" PARENT_SCOPE)
 
41
        set(DBUS_XML_DOCS_ENABLED 1)
 
42
        MESSAGE(STATUS "xmlto docbook generator found")
 
43
endif (XMLTO_EXECUTABLE)
 
44
 
 
45
if (DBUS_ENABLE_XML_DOCS)
 
46
 
 
47
macro (DOCBOOK _sources _options)
 
48
  get_filename_component(_infile ${_sources} ABSOLUTE)
 
49
  get_filename_component(_basename ${_infile} NAME_WE)
 
50
  set(_outfile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.html)
 
51
 
 
52
  if (EXISTS ${_sources})
 
53
          if (MEINPROC4_EXECUTABLE)
 
54
                  ADD_CUSTOM_TARGET(${_basename}.html ALL
 
55
                        ${MEINPROC4_EXECUTABLE} --stylesheet ${STYLESHEET} -o ${_outfile} ${_infile} 
 
56
                        DEPENDS ${_infile} 
 
57
                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 
58
                )
 
59
          endif ()
 
60
          if (XMLTO_EXECUTABLE)
 
61
                  ADD_CUSTOM_TARGET(${_basename}.html ALL
 
62
                        ${XMLTO_EXECUTABLE} -vv ${_options} ${_infile} 
 
63
                        DEPENDS ${_infile} 
 
64
                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 
65
                )
 
66
          endif ()
 
67
          install(FILES ${_outfile} DESTINATION share/doc/dbus)
 
68
  else ()
 
69
          MESSAGE(STATUS "skipping xml doc generating for ${_infile}, file not found")
 
70
  endif ()
 
71
          
 
72
endmacro (DOCBOOK)
 
73
 
 
74
### copy tests to builddir so that generated tests and static tests 
 
75
### are all in one place.
 
76
### todo how to add more filetypes 
 
77
MACRO (COPYDIR _src _type)
 
78
    FOREACH(FILE_TYPE ${_type})
 
79
        FOREACH(DIR ${_src})
 
80
                FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${DIR}/${FILE_TYPE}" )
 
81
                FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DIR})
 
82
                FOREACH(FILE ${FILES})
 
83
                        GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME)
 
84
                        SET (TARGET ${CMAKE_BINARY_DIR}/${DIR}/${FILENAME})
 
85
                        configure_file(${FILE} ${TARGET} COPYONLY)
 
86
                        IF (CONFIG_VERBOSE)
 
87
                                MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n")
 
88
                        ENDIF (CONFIG_VERBOSE)
 
89
                ENDFOREACH(FILE)
 
90
        ENDFOREACH(DIR)
 
91
    ENDFOREACH(FILE_TYPE)
 
92
ENDMACRO (COPYDIR)
 
93
 
 
94
COPYDIR(doc *.png)
 
95
COPYDIR(doc *.svg)
 
96
 
 
97
DOCBOOK(${CMAKE_SOURCE_DIR}/../doc/dbus-test-plan.xml html-nochunks)
 
98
DOCBOOK(${CMAKE_SOURCE_DIR}/../doc/dbus-tutorial.xml html-nochunks)
 
99
DOCBOOK(${CMAKE_SOURCE_DIR}/../doc/dbus-specification.xml html-nochunks)
 
100
DOCBOOK(${CMAKE_SOURCE_DIR}/../doc/dbus-faq.xml html-nochunks)
 
101
DOCBOOK(${CMAKE_SOURCE_DIR}/bus/dbus-daemon.xml html-nochunks)
 
102
DOCBOOK(${CMAKE_SOURCE_DIR}/tools/dbus-monitor.xml html-nochunks)
 
103
DOCBOOK(${CMAKE_SOURCE_DIR}/tools/dbus-send.xml html-nochunks)
 
104
DOCBOOK(${CMAKE_SOURCE_DIR}/tools/dbus-launch.xml html-nochunks)
 
105
 
 
106
#
 
107
# handle html index file
 
108
#
 
109
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/index.html.cmake ${CMAKE_CURRENT_BINARY_DIR}/index.html )
 
110
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/index.html DESTINATION share/doc/dbus)
 
111
 
 
112
set (EXTRA_DIST         
 
113
        ${CMAKE_SOURCE_DIR}/../doc/busconfig.dtd                        
 
114
        ${CMAKE_SOURCE_DIR}/../doc/introspect.dtd                       
 
115
        ${CMAKE_SOURCE_DIR}/../doc/introspect.xsl
 
116
)
 
117
 
 
118
install(FILES ${EXTRA_DIST} DESTINATION share/doc/dbus)
 
119
 
 
120
endif(DBUS_ENABLE_XML_DOCS)