Skip to content

Commit bb1e928

Browse files
committed
SWPROT-8953: Generate doc with doxygen, dot and plantuml
It would be much simpler if we aligned to system packages. Origin: SiliconLabsSoftware#30 Signed-off-by: Philippe Coval <philippe.coval@silabs.com>
1 parent b0bbefa commit bb1e928

File tree

3 files changed

+31
-92
lines changed

3 files changed

+31
-92
lines changed

CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ if(BUILD_TESTING)
2323
include(cmake/include/unittest.cmake)
2424
endif()
2525

26+
include(cmake/include/doxygen.cmake)
27+
2628
# ##############################################################################
2729
# Global includes
2830
# ##############################################################################

cmake/include/doxygen.cmake

+12-77
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
if(NOT DOXYGEN_INCLUDED)
2-
set(DOXYGEN_INCLUDED True)
1+
if(NOT ZPC_DOXYGEN_INCLUDED)
2+
set(ZPC_DOXYGEN_INCLUDED True)
33
else()
44
return()
55
endif()
66
find_package(Doxygen)
77

88
if(DOXYGEN_FOUND)
9+
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
910
find_package(PlantUML)
1011
# ############################################################################
1112
# Shared doxygen options
@@ -82,6 +83,7 @@ if(DOXYGEN_FOUND)
8283
set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES)
8384
set(DOXYGEN_LATEX)
8485
if(PlantUML_FOUND)
86+
message(STATUS "doxygen: will use ${PlantUML_JARFILE}")
8587
set(DOXYGEN_PLANTUML_JAR_PATH ${PlantUML_JARFILE})
8688
else()
8789
message(
@@ -96,9 +98,9 @@ if(DOXYGEN_FOUND)
9698
# ############################################################################
9799
# Create doxygen build target, that includes all other doxygen targets
98100
# ############################################################################
99-
add_custom_target(doxygen)
100-
add_custom_target(doxygen_zip)
101-
add_custom_target(doxygen_pdf)
101+
add_custom_target(zpc_doxygen)
102+
add_custom_target(zpc_doxygen_zip)
103+
add_custom_target(zpc_doxygen_pdf)
102104

103105
function(add_doxygen_target)
104106
# DOX_TARGET DOX_PROJECT_NAME DOX_IMAGE_PATH DOX_SOURCES
@@ -128,7 +130,7 @@ if(DOXYGEN_FOUND)
128130
# Print doxygen warnings after doxygen is built
129131
add_custom_command(TARGET ${ADD_DOX_TARGET} COMMAND cat
130132
${DOXYGEN_WARN_LOGFILE})
131-
add_dependencies(doxygen ${ADD_DOX_TARGET})
133+
add_dependencies(zpc_doxygen ${ADD_DOX_TARGET})
132134
add_custom_target(
133135
${ADD_DOX_TARGET}_zip
134136
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${ADD_DOX_TARGET}
@@ -144,48 +146,12 @@ if(DOXYGEN_FOUND)
144146
${CMAKE_CURRENT_SOURCE_DIR}/scripts/build/pdf_latex/compile_latex.sh
145147
${ADD_DOX_TARGET}_${FILE_NAME_VERSIONING})
146148

147-
add_dependencies(doxygen_pdf ${ADD_DOX_TARGET}_pdf)
149+
add_dependencies(zpc_doxygen_pdf ${ADD_DOX_TARGET}_pdf)
148150
endif()
149151

150-
add_dependencies(doxygen_zip ${ADD_DOX_TARGET}_zip)
152+
add_dependencies(zpc_doxygen_zip ${ADD_DOX_TARGET}_zip)
151153
endfunction()
152154

153-
# ############################################################################
154-
# Configure Doxygen for UCL MQTT Reference Guide
155-
# ############################################################################
156-
set(REFERENCE_UCL_MQTT_FILE
157-
${CMAKE_SOURCE_DIR}/components/uic_dotdot/zap-generated/readme_ucl_mqtt_reference.md
158-
)
159-
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${REFERENCE_UCL_MQTT_FILE})
160-
set_source_files_properties(${REFERENCE_UCL_MQTT_FILE} PROPERTIES GENERATED
161-
TRUE)
162-
add_doxygen_target(
163-
TARGET
164-
reference_ucl_mqtt
165-
PROJECT_NAME
166-
"Unify Framework UCL MQTT Reference"
167-
TARGET_DEPENDS
168-
${REFERENCE_UCL_MQTT_FILE}
169-
SRC_PATHS
170-
${REFERENCE_UCL_MQTT_FILE}
171-
PDF
172-
true)
173-
unset(DOXYGEN_USE_MDFILE_AS_MAINPAGE)
174-
unset(REFERENCE_UCL_MQTT_FILE)
175-
176-
# ############################################################################
177-
# Configure Doxygen for libuic
178-
# ############################################################################
179-
add_doxygen_target(
180-
TARGET
181-
doxygen_uic
182-
PROJECT_NAME
183-
"Unify Framework Lib"
184-
IMAGE_PATHS
185-
doc/assets/img/
186-
SRC_PATHS
187-
${CMAKE_SOURCE_DIR}/doc/doxygen
188-
${LIBUIC_DOXYGEN_SRC})
189155
# ############################################################################
190156
# Configure Doxygen for ZPC
191157
# ############################################################################
@@ -196,9 +162,9 @@ if(DOXYGEN_FOUND)
196162
# "zgw_name=\"@xrefitem zgw_namemap \\\"\\\" \\\"\\\"\"")
197163
add_doxygen_target(
198164
TARGET
199-
doxygen_zpc
165+
zpc_doxygen_zpc
200166
PROJECT_NAME
201-
"Z-Wave Protocol Controller Refrence"
167+
"Z-Wave Protocol Controller Reference"
202168
IMAGE_PATHS
203169
doc/assets/img/
204170
applications/zpc/doc/assets/img/
@@ -211,37 +177,6 @@ if(DOXYGEN_FOUND)
211177

212178
unset(DOXYGEN_ALIASES)
213179

214-
# ############################################################################
215-
# Configure Doxygen for zigpc
216-
# ############################################################################
217-
add_doxygen_target(
218-
TARGET
219-
doxygen_zigpc
220-
PROJECT_NAME
221-
"Zigbee Protocol Controller"
222-
IMAGE_PATHS
223-
doc/assets/img/
224-
SRC_PATHS
225-
${CMAKE_SOURCE_DIR}/applications/zigpc
226-
${CMAKE_CURRENT_BINARY_DIR}/applications/zigpc/components/zcl_command_parser/include
227-
${CMAKE_CURRENT_BINARY_DIR}/applications/zigpc/components/zcl_util/include
228-
${LIBUIC_DOXYGEN_SRC})
229-
230-
# ############################################################################
231-
# Configure Doxygen for AoX (AoXPC and Positioning application)
232-
# ############################################################################
233-
add_doxygen_target(
234-
TARGET
235-
doxygen_aox
236-
PROJECT_NAME
237-
"AoX Applications"
238-
IMAGE_PATHS
239-
doc/assets/img/
240-
SRC_PATHS
241-
${CMAKE_SOURCE_DIR}/applications/aox/applications/aoxpc/components
242-
${CMAKE_SOURCE_DIR}/applications/aox/applications/positioning/components
243-
${LIBUIC_DOXYGEN_SRC})
244-
245180
else()
246181
message(
247182
STATUS "Doxygen need to be installed to generate the doxygen documentation")

cmake/modules/FindPlantUML.cmake

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
# * Find PlantUML jar file
2-
#
3-
# PlantUML_JARFILE - Path to PlantUML JAR file
4-
# PlantUML_FOUND - True if PlantUML found.
5-
1+
#message("zpc: plantuml: Prefer local/env one over system or detected one (${PlantUML_JARFILE})")
62
if(NOT DEFINED PlantUML_FOUND)
7-
if ("$ENV{PLANTUML_JAR_PATH}")
8-
# Find folder of the the TEMPLATE_JSON file
9-
get_filename_component(PLANTUML_DIR
10-
${PLANTUML_JAR_PATH} DIRECTORY)
11-
elseif (EXISTS /usr/share/plantuml/)
12-
set(PLANTUML_DIR /usr/share/plantuml/)
3+
unset(PlantUML_JARFILE CACHE)
4+
if(EXISTS "$ENV{PLANTUML_JAR_PATH}")
5+
set(PlantUML_JARFILE "$ENV{PLANTUML_JAR_PATH}")
6+
endif()
7+
if(NOT EXISTS ${PlantUML_JARFILE})
8+
find_file(PlantUML_JARFILE
9+
plantuml.jar
10+
PATHS
11+
"/usr/local/share/plantuml/"
12+
"/usr/local/opt/plantuml/"
13+
"/opt/plantuml/"
14+
"/opt/"
15+
"/usr/share/plantuml/"
16+
)
1317
endif()
14-
find_file(PlantUML_JARFILE
15-
NAMES plantuml.jar
16-
HINTS "" ${PLANTUML_DIR}
17-
)
1818
include(FindPackageHandleStandardArgs)
1919
find_package_handle_standard_args(PlantUML DEFAULT_MSG PlantUML_JARFILE)
2020
endif()
2121

22+
# message("zpc: plantuml: PlantUML_JARFILE - Path to PlantUML JAR file : ${PlantUML_JARFILE}")
23+
# message("zpc: plantuml: PlantUML_FOUND - True if PlantUML found: : ${PlantUML_FOUND}")

0 commit comments

Comments
 (0)