Skip to content

Commit 7ddc0b1

Browse files
committed
Wrap doc generation in add_custom_command/add_custom_target pairs
Signed-off-by: Alexander Scheel <[email protected]>
1 parent a3cd120 commit 7ddc0b1

File tree

1 file changed

+32
-5
lines changed

1 file changed

+32
-5
lines changed

docs/CMakeLists.txt

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,40 +12,67 @@ if(ENABLE_DOCS)
1212
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
1313

1414
# note the option ALL which allows to build the docs together with the application
15-
add_custom_target(doxygen_docs
15+
add_custom_command(
16+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/html"
17+
DEPENDS ${DOXYGEN_OUT}
1618
COMMAND "${DOXYGEN_EXECUTABLE}" "${DOXYGEN_OUT}"
1719
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
18-
COMMENT "Generating API documentation with Doxygen")
20+
COMMENT "Generating API documentation with Doxygen"
21+
)
22+
add_custom_target(
23+
doxygen_docs
24+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/html"
25+
)
1926
add_dependencies(docs doxygen_docs)
2027
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html"
2128
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
2229
)
2330
endif()
2431

2532
if(ASCIIDOC_EXECUTABLE)
26-
add_custom_target(user_manual
33+
add_custom_command(
34+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/manual/manual.html"
35+
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/manual/manual.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/manual/images"
2736
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/manual"
2837
COMMAND "${ASCIIDOC_EXECUTABLE}" -b html5 -o "${CMAKE_CURRENT_BINARY_DIR}/manual/manual.html" "${CMAKE_CURRENT_SOURCE_DIR}/manual/manual.adoc"
2938
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/manual/images" "${CMAKE_CURRENT_BINARY_DIR}/manual/images"
3039
COMMENT "Generating OpenSCAP User Manual in HTML format"
3140
)
41+
add_custom_target(
42+
user_manual
43+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/manual/manual.html"
44+
)
3245
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/manual"
3346
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
3447
)
35-
add_custom_target(developer_manual
48+
49+
add_custom_command(
50+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/developer/developer.html"
51+
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/developer/developer.adoc"
3652
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/developer"
3753
COMMAND "${ASCIIDOC_EXECUTABLE}" -b html5 -o "${CMAKE_CURRENT_BINARY_DIR}/developer/developer.html" "${CMAKE_CURRENT_SOURCE_DIR}/developer/developer.adoc"
3854
COMMENT "Generating OpenSCAP Developer Manual in HTML format"
3955
)
56+
add_custom_target(
57+
developer_manual
58+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/developer/developer.html"
59+
)
4060
# We are not installing the OpenSCAP Developer manual because it does not
4161
# make any sense to install this for end-users.
42-
add_custom_target(contribute_docs
62+
63+
add_custom_command(
64+
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/contribute/contribute.html" "${CMAKE_CURRENT_BINARY_DIR}/contribute/testing.html" "${CMAKE_CURRENT_BINARY_DIR}/contribute/versioning.html"
65+
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/contribute/contribute.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/contribute/testing.adoc" "${CMAKE_CURRENT_SOURCE_DIR}/contribute/versioning.adoc"
4366
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/contribute"
4467
COMMAND "${ASCIIDOC_EXECUTABLE}" -b html5 -o "${CMAKE_CURRENT_BINARY_DIR}/contribute/contribute.html" "${CMAKE_CURRENT_SOURCE_DIR}/contribute/contribute.adoc"
4568
COMMAND "${ASCIIDOC_EXECUTABLE}" -b html5 -o "${CMAKE_CURRENT_BINARY_DIR}/contribute/testing.html" "${CMAKE_CURRENT_SOURCE_DIR}/contribute/testing.adoc"
4669
COMMAND "${ASCIIDOC_EXECUTABLE}" -b html5 -o "${CMAKE_CURRENT_BINARY_DIR}/contribute/versioning.html" "${CMAKE_CURRENT_SOURCE_DIR}/contribute/versioning.adoc"
4770
COMMENT "Generating contribute documentation in HTML format"
4871
)
72+
add_custom_target(
73+
contribute_docs
74+
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/contribute/contribute.html" "${CMAKE_CURRENT_BINARY_DIR}/contribute/testing.html" "${CMAKE_CURRENT_BINARY_DIR}/contribute/versioning.html"
75+
)
4976
# We are not installing the contribute documentation because it does not
5077
# make any sense to install this for end-users.
5178

0 commit comments

Comments
 (0)