Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 1 | # |
| 2 | # Copyright (c) 2017, Alliance for Open Media. All rights reserved |
| 3 | # |
| 4 | # This source code is subject to the terms of the BSD 2 Clause License and the |
| 5 | # Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was |
| 6 | # not distributed with this source code in the LICENSE file, you can obtain it |
| 7 | # at www.aomedia.org/license/software. If the Alliance for Open Media Patent |
| 8 | # License 1.0 was not distributed with this source code in the PATENTS file, you |
| 9 | # can obtain it at www.aomedia.org/license/patent. |
| 10 | # |
| 11 | if(AOM_DOCS_CMAKE_) |
Johann | 29a5973 | 2018-04-27 10:51:00 -0700 | [diff] [blame] | 12 | return() |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 13 | endif() # AOM_DOCS_CMAKE_ |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 14 | set(AOM_DOCS_CMAKE_ 1) |
| 15 | |
| 16 | cmake_minimum_required(VERSION 3.5) |
| 17 | |
| 18 | set(AOM_DOXYFILE "${AOM_CONFIG_DIR}/doxyfile") |
| 19 | set(AOM_DOXYGEN_CONFIG_TEMPLATE "libs.doxy_template") |
| 20 | set(AOM_DOXYGEN_OUTPUT_DIR "${AOM_CONFIG_DIR}/dox") |
| 21 | set(AOM_DOXYGEN_SECTIONS "av1") |
| 22 | |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 23 | set(AOM_DOXYGEN_SOURCES "${AOM_ROOT}/aom/aom.h" "${AOM_ROOT}/aom/aom_codec.h" |
| 24 | "${AOM_ROOT}/aom/aom_decoder.h" |
| 25 | "${AOM_ROOT}/aom/aom_encoder.h" |
| 26 | "${AOM_ROOT}/aom/aom_frame_buffer.h" |
| 27 | "${AOM_ROOT}/aom/aom_image.h" |
| 28 | "${AOM_ROOT}/aom/aom_integer.h" |
| 29 | "${AOM_ROOT}/keywords.dox" "${AOM_ROOT}/mainpage.dox" |
| 30 | "${AOM_ROOT}/usage.dox") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 31 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 32 | if(CONFIG_AV1_DECODER) |
| 33 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 34 | "${AOM_ROOT}/apps/aomdec.c" |
| 35 | "${AOM_ROOT}/examples/decode_to_md5.c" |
| 36 | "${AOM_ROOT}/examples/decode_with_drops.c" |
| 37 | "${AOM_ROOT}/examples/simple_decoder.c") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 38 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 39 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 40 | "Full featured decoder." |
| 41 | "Frame by frame MD5 checksum." |
| 42 | "Drops frames while decoding." |
| 43 | "Simplified decoder loop.") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 44 | |
| 45 | set(AOM_DOXYGEN_SECTIONS ${AOM_DOXYGEN_SECTIONS} "av1_decoder decoder") |
| 46 | |
Johann | b72d2e1 | 2018-09-11 12:41:38 -0700 | [diff] [blame] | 47 | set(AOM_DOXYGEN_SOURCES ${AOM_DOXYGEN_SOURCES} "${AOM_ROOT}/aom/aomdx.h" |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 48 | "${AOM_ROOT}/usage_dx.dox") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 49 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 50 | if(CONFIG_ANALYZER) |
| 51 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 52 | "${AOM_ROOT}/examples/analyzer.cc") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 53 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 54 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 55 | "Bitstream analyzer.") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 56 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 57 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 58 | if(CONFIG_INSPECTION) |
| 59 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 60 | "${AOM_ROOT}/examples/inspect.c") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 61 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 62 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 63 | "Bitstream inspector.") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 64 | endif() |
| 65 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 66 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 67 | if(CONFIG_AV1_ENCODER) |
| 68 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 69 | "${AOM_ROOT}/apps/aomenc.c" |
| 70 | "${AOM_ROOT}/examples/lossless_encoder.c" |
| 71 | "${AOM_ROOT}/examples/set_maps.c" |
| 72 | "${AOM_ROOT}/examples/simple_encoder.c" |
| 73 | "${AOM_ROOT}/examples/twopass_encoder.c") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 74 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 75 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 76 | "Full featured encoder." |
| 77 | "Simplified lossless encoder." |
| 78 | "Set active and ROI maps." |
| 79 | "Simplified encoder loop." |
| 80 | "Two-pass encoder loop.") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 81 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 82 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 83 | "${AOM_ROOT}/examples/scalable_encoder.c") |
Soo-Chul Han | f858986 | 2018-01-24 03:13:14 +0000 | [diff] [blame] | 84 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 85 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 86 | "Scalable encoder loop.") |
Soo-Chul Han | f858986 | 2018-01-24 03:13:14 +0000 | [diff] [blame] | 87 | |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 88 | set(AOM_DOXYGEN_SECTIONS ${AOM_DOXYGEN_SECTIONS} "av1_encoder encoder") |
| 89 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 90 | set(AOM_DOXYGEN_SOURCES ${AOM_DOXYGEN_SOURCES} "${AOM_ROOT}/aom/aomcx.h" |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 91 | "${AOM_ROOT}/usage_cx.dox") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 92 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 93 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 94 | if(CONFIG_AV1_DECODER AND CONFIG_AV1_ENCODER) |
| 95 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 96 | "${AOM_ROOT}/examples/aom_cx_set_ref.c") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 97 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 98 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 99 | "Set encoder reference frame.") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 100 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 101 | |
Yunqing Wang | b97cfae | 2018-05-11 14:19:05 -0700 | [diff] [blame] | 102 | if(CONFIG_AV1_ENCODER) |
| 103 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 104 | "${AOM_ROOT}/examples/lightfield_encoder.c") |
Yunqing Wang | b97cfae | 2018-05-11 14:19:05 -0700 | [diff] [blame] | 105 | |
| 106 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 107 | "Lightfield encoder example.") |
Yunqing Wang | b97cfae | 2018-05-11 14:19:05 -0700 | [diff] [blame] | 108 | endif() |
| 109 | |
| 110 | if(CONFIG_AV1_DECODER) |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 111 | set(AOM_DOXYGEN_EXAMPLE_SOURCES |
| 112 | ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
Yunqing Wang | d417bb5 | 2018-06-03 14:13:38 -0700 | [diff] [blame] | 113 | "${AOM_ROOT}/examples/lightfield_tile_list_decoder.c") |
| 114 | |
| 115 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 116 | "Lightfield tile list decoder example.") |
Yunqing Wang | d417bb5 | 2018-06-03 14:13:38 -0700 | [diff] [blame] | 117 | endif() |
| 118 | |
| 119 | if(CONFIG_AV1_DECODER) |
| 120 | set(AOM_DOXYGEN_EXAMPLE_SOURCES ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 121 | "${AOM_ROOT}/examples/lightfield_decoder.c") |
Yunqing Wang | b97cfae | 2018-05-11 14:19:05 -0700 | [diff] [blame] | 122 | |
| 123 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 124 | "Lightfield decoder example.") |
Yunqing Wang | b97cfae | 2018-05-11 14:19:05 -0700 | [diff] [blame] | 125 | endif() |
| 126 | |
Yunqing Wang | 40bde4d | 2018-06-01 16:48:03 -0700 | [diff] [blame] | 127 | if(CONFIG_AV1_DECODER AND CONFIG_AV1_ENCODER) |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 128 | set(AOM_DOXYGEN_EXAMPLE_SOURCES |
| 129 | ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
Yunqing Wang | 40bde4d | 2018-06-01 16:48:03 -0700 | [diff] [blame] | 130 | "${AOM_ROOT}/examples/lightfield_bitstream_parsing.c") |
| 131 | |
| 132 | set(AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS} |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 133 | "Lightfield bitstream parsing example.") |
Yunqing Wang | 40bde4d | 2018-06-01 16:48:03 -0700 | [diff] [blame] | 134 | endif() |
| 135 | |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 136 | # Iterates over list named by $list_name and appends each item to $AOM_DOXYFILE |
| 137 | # as values assigned to $var_name with no line breaks between list items. |
| 138 | # Appends a new line after the entire config variable is expanded. |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 139 | function(write_cmake_list_to_doxygen_config_var var_name list_name) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 140 | unset(output_string) |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 141 | foreach(list_item ${${list_name}}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 142 | set(output_string "${output_string} ${list_item} ") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 143 | endforeach() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 144 | string(STRIP "${output_string}" output_string) |
| 145 | file(APPEND "${AOM_DOXYFILE}" "${var_name} += ${output_string}\n") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 146 | endfunction() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 147 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 148 | function(get_name file_path name_var) |
| 149 | get_filename_component(file_basename ${file_path} NAME) |
| 150 | get_filename_component(${name_var} ${file_basename} NAME_WE) |
| 151 | set(${name_var} ${${name_var}} PARENT_SCOPE) |
| 152 | endfunction() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 153 | |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 154 | function(setup_documentation_targets) |
| 155 | |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 156 | # Sanity check: the lengths of these lists must match. |
| 157 | list(LENGTH AOM_DOXYGEN_EXAMPLE_SOURCES num_sources) |
| 158 | list(LENGTH AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS num_descs) |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 159 | if(NOT ${num_sources} EQUAL ${num_descs}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 160 | message(FATAL_ERROR "Unqeual example and description totals.") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 161 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 162 | |
| 163 | # Take the list of examples and produce example_basename.dox for each file in |
| 164 | # the list. |
| 165 | file(MAKE_DIRECTORY "${AOM_DOXYGEN_OUTPUT_DIR}") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 166 | foreach(example_file ${AOM_DOXYGEN_EXAMPLE_SOURCES}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 167 | unset(example_basename) |
| 168 | get_name("${example_file}" "example_name") |
| 169 | set(example_dox "${AOM_DOXYGEN_OUTPUT_DIR}/${example_name}.dox") |
| 170 | set(dox_string "/*!\\page example_${example_name} ${example_name}\n") |
| 171 | set(dox_string "${dox_string} \\includelineno ${example_file}\n*/\n") |
| 172 | file(WRITE "${example_dox}" ${dox_string}) |
| 173 | set(AOM_DOXYGEN_SOURCES ${AOM_DOXYGEN_SOURCES} "${example_dox}") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 174 | endforeach() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 175 | |
| 176 | # Generate samples.dox, an index page that refers to the example_basename.dox |
| 177 | # files that were just created. |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 178 | set(samples_header " |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 179 | /*!\\page samples Sample Code |
| 180 | This SDK includes a number of sample applications. Each sample documents a |
| 181 | feature of the SDK in both prose and the associated C code. The following |
| 182 | samples are included: |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 183 | ") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 184 | |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 185 | set(utils_desc " |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 186 | In addition, the SDK contains a number of utilities. Since these utilities are |
| 187 | built upon the concepts described in the sample code listed above, they are not |
| 188 | documented in pieces like the samples are. Their source is included here for |
| 189 | reference. The following utilities are included: |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 190 | ") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 191 | |
| 192 | # Write the description for the samples section. |
| 193 | set(samples_dox "${AOM_CONFIG_DIR}/samples.dox") |
| 194 | file(WRITE "${samples_dox}" "${samples_header}\n") |
| 195 | |
| 196 | # Iterate over $AOM_DOXYGEN_EXAMPLE_SOURCES and |
| 197 | # $AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS and massage example names as required by |
| 198 | # AV1's doxygen setup. |
| 199 | math(EXPR max_example_index "${num_sources} - 1") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 200 | foreach(NUM RANGE ${max_example_index}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 201 | list(GET AOM_DOXYGEN_EXAMPLE_SOURCES ${NUM} ex_name) |
| 202 | get_name("${ex_name}" "ex_name") |
| 203 | |
| 204 | # AV1's doxygen lists aomdec and aomenc as utils apart from the examples. |
| 205 | # Save the indexes for another pass. |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 206 | if("${ex_name}" MATCHES "aomdec\|aomenc") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 207 | set(util_indexes "${util_indexes}" "${NUM}") |
| 208 | continue() |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 209 | endif() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 210 | list(GET AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${NUM} ex_desc) |
| 211 | file(APPEND "${samples_dox}" " - \\subpage example_${ex_name} ${ex_desc}\n") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 212 | endforeach() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 213 | |
| 214 | # Write the description and index for the utils. |
| 215 | file(APPEND "${samples_dox}" "${utils_desc}\n") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 216 | foreach(util_index ${util_indexes}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 217 | list(GET AOM_DOXYGEN_EXAMPLE_SOURCES ${util_index} ex_name) |
| 218 | get_name("${ex_name}" "ex_name") |
| 219 | list(GET AOM_DOXYGEN_EXAMPLE_DESCRIPTIONS ${util_index} ex_desc) |
| 220 | file(APPEND "${samples_dox}" " - \\subpage example_${ex_name} ${ex_desc}\n") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 221 | endforeach() |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 222 | file(APPEND "${samples_dox}" "*/") |
| 223 | |
| 224 | # Add $samples_dox to the doxygen inputs. |
| 225 | get_filename_component(samples_dox ${samples_dox} NAME) |
| 226 | set(AOM_DOXYGEN_SOURCES ${AOM_DOXYGEN_SOURCES} ${samples_dox}) |
| 227 | |
| 228 | # Generate libaom's doxyfile. |
Tom Finegan | 746a785 | 2017-06-02 11:29:48 -0700 | [diff] [blame] | 229 | file(WRITE "${AOM_DOXYFILE}" "##\n## GENERATED FILE. DO NOT EDIT\n##\n") |
| 230 | file(READ "${AOM_ROOT}/${AOM_DOXYGEN_CONFIG_TEMPLATE}" doxygen_template_data) |
| 231 | file(APPEND "${AOM_DOXYFILE}" ${doxygen_template_data}) |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 232 | file(APPEND "${AOM_DOXYFILE}" |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 233 | "EXAMPLE_PATH += ${AOM_ROOT} ${AOM_ROOT}/examples\n") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 234 | file(APPEND "${AOM_DOXYFILE}" |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 235 | "INCLUDE_PATH += ${AOM_CONFIG_DIR} ${AOM_ROOT}\n") |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 236 | file(APPEND "${AOM_DOXYFILE}" |
James Zern | 70f8538 | 2019-05-24 20:31:20 -0700 | [diff] [blame] | 237 | "STRIP_FROM_PATH += ${AOM_ROOT} ${AOM_CONFIG_DIR}\n") |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 238 | write_cmake_list_to_doxygen_config_var("INPUT" "AOM_DOXYGEN_SOURCES") |
| 239 | write_cmake_list_to_doxygen_config_var("ENABLED_SECTIONS" |
| 240 | "AOM_DOXYGEN_SECTIONS") |
| 241 | |
| 242 | # Add the doxygen generation rule. |
| 243 | add_custom_target(docs ALL |
| 244 | COMMAND "${DOXYGEN_EXECUTABLE}" "${AOM_DOXYFILE}" |
| 245 | DEPENDS "${AOM_DOXYFILE}" ${AOM_DOXYGEN_SOURCES} |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 246 | ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
| 247 | "${AOM_DOXYGEN_CONFIG_TEMPLATE}" |
Tom Finegan | 0d066ce | 2017-05-30 11:07:05 -0700 | [diff] [blame] | 248 | SOURCES "${AOM_DOXYFILE}" ${AOM_DOXYGEN_SOURCES} |
Johann | 589bae8 | 2018-04-27 10:57:44 -0700 | [diff] [blame] | 249 | ${AOM_DOXYGEN_EXAMPLE_SOURCES} |
| 250 | "${AOM_DOXYGEN_CONFIG_TEMPLATE}") |
| 251 | endfunction() |