File: CMakeLists.txt

package info (click to toggle)
doxygen 1.15.0%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 25,384 kB
  • sloc: cpp: 223,248; lex: 45,536; python: 32,394; ansic: 26,761; xml: 16,962; javascript: 8,627; yacc: 582; f90: 455; php: 427; perl: 384; makefile: 201; sh: 24; objc: 14; cs: 5; java: 1
file content (140 lines) | stat: -rw-r--r-- 7,160 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/examples
                    ${PROJECT_BINARY_DIR}/html/examples
                    ${PROJECT_BINARY_DIR}/latex/examples)
file(GLOB EXAMPLE_FILES RELATIVE ${PROJECT_SOURCE_DIR}/examples "*")

if (build_doc_chm)
  file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/chm/html/examples)
endif()

if (DOT)
  set(DIAGRAM_EXAMPLE ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html)
  if (build_doc_chm)
    set(DIAGRAM_CHM_EXAMPLE ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams/html/index.html)
  endif()
endif()

foreach (f  ${EXAMPLE_FILES})
  configure_file(${PROJECT_SOURCE_DIR}/examples/${f} ${PROJECT_BINARY_DIR}/examples/${f} COPYONLY)
  set_source_files_properties("${PROJECT_BINARY_DIR}/examples/${f}" PROPERTIES GENERATED 1)
endforeach()

foreach (f  ${EXAMPLE_FILES})
  list(APPEND OUT_EXAMPLE_FILES "${PROJECT_BINARY_DIR}/examples/${f}")
endforeach()

# name                 file           extension   dependency (optional)
set(EXAMPLE_class      class          h)
set(EXAMPLE_define     define         h)
set(EXAMPLE_enum       enum           h)
set(EXAMPLE_file       file           h)
set(EXAMPLE_func       func           h)
set(EXAMPLE_javadoc    javadoc-banner h)
set(EXAMPLE_structcmd  structcmd      h)
set(EXAMPLE_afterdoc   afterdoc       h)
set(EXAMPLE_relates    relates        cpp)
set(EXAMPLE_author     author         cpp)
set(EXAMPLE_par        par            cpp)
set(EXAMPLE_overload   overload       cpp)
set(EXAMPLE_example    example        cpp)
set(EXAMPLE_include    include        cpp)
set(EXAMPLE_qtstyle    qtstyle        cpp)
set(EXAMPLE_jdstyle    jdstyle        cpp)
set(EXAMPLE_autolink   autolink       cpp)
set(EXAMPLE_restypedef restypedef     cpp)
set(EXAMPLE_tag        tag            cpp        example)
set(EXAMPLE_group      group          cpp)
set(EXAMPLE_memgrp     memgrp         cpp)
set(EXAMPLE_templ      templ          cpp)
set(EXAMPLE_page       page           doc)
set(EXAMPLE_docstring  docstring      py)
set(EXAMPLE_pyexample  pyexample      py)
set(EXAMPLE_manual     manual         c)
set(EXAMPLE_mux        mux            vhdl)

set(BASIC_EXAMPLES
  EXAMPLE_class   EXAMPLE_define    EXAMPLE_enum       EXAMPLE_file      EXAMPLE_func
  EXAMPLE_javadoc EXAMPLE_structcmd EXAMPLE_afterdoc   EXAMPLE_relates   EXAMPLE_author
  EXAMPLE_par     EXAMPLE_overload  EXAMPLE_example    EXAMPLE_include   EXAMPLE_qtstyle
  EXAMPLE_jdstyle EXAMPLE_autolink  EXAMPLE_restypedef EXAMPLE_tag       EXAMPLE_group
  EXAMPLE_memgrp  EXAMPLE_templ     EXAMPLE_page       EXAMPLE_docstring EXAMPLE_pyexample
  EXAMPLE_manual  EXAMPLE_mux
)

configure_file(${PROJECT_SOURCE_DIR}/templates/icon/doxygen.ico ${PROJECT_BINARY_DIR}/examples/doxygen.ico COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen_manual.css ${PROJECT_BINARY_DIR}/examples/doxygen_manual.css COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen_manual_chm.css ${PROJECT_BINARY_DIR}/examples/doxygen_manual_chm.css COPYONLY)

foreach (f_inp  ${BASIC_EXAMPLES})
        list(LENGTH ${f_inp} f_len)
        list(GET    ${f_inp} 0 f)
        list(GET    ${f_inp} 1 f_ext)
        set(f_dep "")
        set(f_dep_chm "")
        if (${f_len} GREATER 2)
          list(GET  ${f_inp} 2 f_dep)
          list(GET  ${f_inp} 2 f_dep_chm)
          set(f_dep "${PROJECT_BINARY_DIR}/html/examples/${f_dep}/html/index.html")
          if (build_doc_chm)
            set(f_dep_chm "${PROJECT_BINARY_DIR}/chm/html/examples/${f_dep_chm}/html/index.html")
          endif()
        endif()
    add_custom_command(
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f}
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f}
        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=docuexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
        COMMAND ${Python_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
        DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py ${f_dep} baseexample.cfg docuexample.cfg
        OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
    )
    set(EXAMPLES_RES ${EXAMPLES_RES} "" ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html)

    if (build_doc_chm)
      add_custom_command(
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/chm/html/examples/${f}
        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=chmexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
        DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${f_dep_chm} baseexample.cfg chmexample.cfg
        OUTPUT ${PROJECT_BINARY_DIR}/chm/html/examples/${f}/html/index.html
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
      )
      set(EXAMPLES_CHM_RES ${EXAMPLES_CHM_RES} "" ${PROJECT_BINARY_DIR}/chm/html/examples/${f}/html/index.html)
    endif()
endforeach()

add_custom_target(examples
  DEPENDS ${OUT_EXAMPLE_FILES}
                ${EXAMPLES_RES}
                ${DIAGRAM_EXAMPLE}
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
)

if (build_doc_chm)
  add_custom_target(examples_chm
    DEPENDS ${OUT_EXAMPLE_FILES}
                ${EXAMPLES_CHM_RES}
                ${DIAGRAM_CHM_EXAMPLE}
    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
  )
endif()

if (DOT)
  add_custom_command(
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams
        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=docuexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
        COMMAND ${Python_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
        DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py baseexample.cfg docuexample.cfg
        OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
  )
  if (build_doc_chm)
    add_custom_command(
        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams
        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=chmexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
        DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg baseexample.cfg chmexample.cfg
        OUTPUT ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams/html/index.html
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
    )
  endif()
endif(DOT)