git: 8492d9bdf19a - main - devel/doxygen: Fix parallel examples build (under DOCS)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Jan 2025 00:44:05 UTC
The branch main has been updated by mandree:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8492d9bdf19a0c516f98c71e15d22e72bf27f498
commit 8492d9bdf19a0c516f98c71e15d22e72bf27f498
Author: Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-01-05 23:14:27 +0000
Commit: Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-01-06 00:43:34 +0000
devel/doxygen: Fix parallel examples build (under DOCS)
Tatsuki Makino wrote the original patch vs. Doxygen 1.9.1, but it no
longer applied, so I manually re-did following his example.
While here, ditch the :noninja, 1.9.6 builds fine with Ninja, too.
Obtained from: tatsuki_makino@hotmail.com
PR: 259331
Approved by: maintainer timeout (fluffy@, 39 months)
---
devel/doxygen/Makefile | 4 +---
devel/doxygen/files/patch-examples_CMakeLists.txt | 26 +++++++++++++++++++++++
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/devel/doxygen/Makefile b/devel/doxygen/Makefile
index 7b97801361cd..e9a391c24291 100644
--- a/devel/doxygen/Makefile
+++ b/devel/doxygen/Makefile
@@ -14,7 +14,7 @@ WWW= https://www.doxygen.org/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= bison cmake:noninja compiler:c++17-lang cpe dos2unix \
+USES= bison cmake compiler:c++17-lang cpe dos2unix \
iconv python shebangfix
ALL_TARGET= all
@@ -39,8 +39,6 @@ DOCS_PLIST_FILES= share/man/man1/doxygen.1.gz \
share/man/man1/doxyindexer.1.gz \
share/man/man1/doxysearch.1.gz \
share/man/man1/doxywizard.1.gz
-# Parallel jobs break when the DOCS option is on
-DOCS_VARS= MAKE_JOBS_UNSAFE=yes
PORTDOCS= *
diff --git a/devel/doxygen/files/patch-examples_CMakeLists.txt b/devel/doxygen/files/patch-examples_CMakeLists.txt
new file mode 100644
index 000000000000..c4f60834d17d
--- /dev/null
+++ b/devel/doxygen/files/patch-examples_CMakeLists.txt
@@ -0,0 +1,26 @@
+--- examples/CMakeLists.txt.orig 2022-11-18 19:47:51 UTC
++++ examples/CMakeLists.txt
+@@ -74,9 +74,9 @@ foreach (f_inp ${BASIC_EXAMPLES})
+ 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} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
++ COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${CMAKE_CURRENT_BINARY_DIR}/${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}
++ DEPENDS doxygen ${CMAKE_CURRENT_BINARY_DIR}/${f}.${f_ext} ${CMAKE_CURRENT_BINARY_DIR}/${f}.cfg ${TOP}/examples/strip_example.py ${f_dep}
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
+ )
+ set(EXAMPLES_RES ${EXAMPLES_RES} "" ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html)
+@@ -93,9 +93,9 @@ 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} ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
++ COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${CMAKE_CURRENT_BINARY_DIR}/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
++ DEPENDS doxygen ${CMAKE_CURRENT_BINARY_DIR}/diagrams_a.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_b.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_c.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_d.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_e.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
+ )
+ endif(DOT)