Skip to content

Commit b4dcae2

Browse files
committed
Add option MSGPACK_BUILD_DOCS.
This option explicitly controls the generation of targets related to Doxygen generation, rather than relying solely on whether Doxygen is discovered. It is enabled by default to preserve existing behavior, but if disabled then no Doxygen targets will be generated. This is useful when the library is included via CMake's `add_subdirectory()`.
1 parent 3bdbf0d commit b4dcae2

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

CMakeLists.txt

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ OPTION (MSGPACK_CXX20 "Using c++20 compiler" OFF)
2424
OPTION (MSGPACK_32BIT "32bit compile" OFF)
2525
OPTION (MSGPACK_USE_X3_PARSE "Use Boost X3 parse" OFF)
2626
OPTION (MSGPACK_BUILD_TESTS "Build tests" OFF)
27+
OPTION (MSGPACK_BUILD_DOCS "Build Doxygen documentation" ON)
2728
OPTION (MSGPACK_FUZZ_REGRESSION "Enable regression testing" OFF)
2829
OPTION (MSGPACK_BUILD_EXAMPLES "Build msgpack examples" OFF)
2930
OPTION (MSGPACK_GEN_COVERAGE "Generate coverage report" OFF)
@@ -153,28 +154,30 @@ IF (MSGPACK_BUILD_EXAMPLES)
153154
ENDIF ()
154155

155156
# Doxygen
156-
FIND_PACKAGE (Doxygen)
157-
IF (DOXYGEN_FOUND)
158-
LIST (APPEND Doxyfile_cpp_CONTENT
159-
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
160-
COMMAND ${CMAKE_COMMAND} -E echo "FILE_PATTERNS = *.hpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
161-
COMMAND ${CMAKE_COMMAND} -E echo "OUTPUT_DIRECTORY = doc_cpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
162-
COMMAND ${CMAKE_COMMAND} -E echo "INPUT = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
163-
COMMAND ${CMAKE_COMMAND} -E echo "EXTRACT_ALL = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
164-
COMMAND ${CMAKE_COMMAND} -E echo "STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
165-
)
166-
IF (DOXYGEN_DOT_FOUND)
157+
IF (MSGPACK_BUILD_DOCS)
158+
FIND_PACKAGE (Doxygen)
159+
IF (DOXYGEN_FOUND)
167160
LIST (APPEND Doxyfile_cpp_CONTENT
168-
COMMAND ${CMAKE_COMMAND} -E echo "HAVE_DOT = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
161+
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
162+
COMMAND ${CMAKE_COMMAND} -E echo "FILE_PATTERNS = *.hpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
163+
COMMAND ${CMAKE_COMMAND} -E echo "OUTPUT_DIRECTORY = doc_cpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
164+
COMMAND ${CMAKE_COMMAND} -E echo "INPUT = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
165+
COMMAND ${CMAKE_COMMAND} -E echo "EXTRACT_ALL = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
166+
COMMAND ${CMAKE_COMMAND} -E echo "STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
167+
)
168+
IF (DOXYGEN_DOT_FOUND)
169+
LIST (APPEND Doxyfile_cpp_CONTENT
170+
COMMAND ${CMAKE_COMMAND} -E echo "HAVE_DOT = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
171+
)
172+
ENDIF ()
173+
ADD_CUSTOM_TARGET (
174+
doxygen
175+
${Doxyfile_cpp_CONTENT}
176+
COMMAND ${CMAKE_COMMAND} -E echo "PROJECT_NAME = \"MessagePack for C++\"" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
177+
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
178+
VERBATIM
169179
)
170180
ENDIF ()
171-
ADD_CUSTOM_TARGET (
172-
doxygen
173-
${Doxyfile_cpp_CONTENT}
174-
COMMAND ${CMAKE_COMMAND} -E echo "PROJECT_NAME = \"MessagePack for C++\"" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
175-
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
176-
VERBATIM
177-
)
178181
ENDIF ()
179182

180183
# Install library.

0 commit comments

Comments
 (0)