On 5/4/21 1:24 PM, Konrad Weihmann wrote: > > > On 04.05.21 13:20, Bastian Krause wrote: >> Before, ccache's configure stage built HTML documentation and man pages >> depending on if asciidoc is installed. This patch makes it configurable. >> >> Pass the new cmake option BUILD_DOCS along and add the asciidoc >> dependency if necessary. >> >> This fixes an issue when ccache's configure stage found asciidoc/a2x on >> the system outside of the sysroot (e.g. installed via 'apt install >> asciidoc'). ccache would then decide to build docs and manual pages, but >> would fail during compilation: the system's a2x could not find the >> system's asciidoc because it did not reside in the set PATH. >> >> By enabling/disabling docs/man page generation explicitly and adding >> asciidoc to DEPENDS as necessary, this is no longer an issue. >> >> Signed-off-by: Bastian Krause <[email protected]> >> --- >> ...w-disabling-docs-man-page-generation.patch | 161 ++++++++++++++++++ >> meta/recipes-devtools/ccache/ccache_4.2.1.bb | 6 +- >> 2 files changed, 166 insertions(+), 1 deletion(-) >> create mode 100644 >> meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch >> >> >> diff --git >> a/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch >> b/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch >> >> new file mode 100644 >> index 0000000000..11176e3039 >> --- /dev/null >> +++ >> b/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch >> >> @@ -0,0 +1,161 @@ >> +From e87d882e8c31e4c6b90e770643c0d176c2455a01 Mon Sep 17 00:00:00 2001 >> +From: Bastian Krause <[email protected]> >> +Date: Tue, 4 May 2021 11:41:56 +0200 >> +Subject: [PATCH] doc: allow disabling docs/man page generation >> + >> +The assumption that HTML documentation and manual pages should be >> +generated if the required tools (asciidoc) are present is not always >> +true. So add a cmake option that allows disabling the docs/man page >> +generation. The default is to generate docs/man pages like before. >> + >> +Origin: https://github.com/ccache/ccache/pull/844 >> +Upstream-Status: Pending > > Just some nitpick, but shouldn't that be Submitted instead - as I see a > PR open for this feature at the mentioned upstream repo > > (see https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines)
You're right. Thanks for pointing that out. I'll fix this in a v2. Regards, Bastian > >> +Signed-off-by: Bastian Krause <[email protected]> >> +--- >> + doc/CMakeLists.txt | 128 +++++++++++++++++++++++---------------------- >> + 1 file changed, 66 insertions(+), 62 deletions(-) >> + >> +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt >> +index c5ce224d..74b7831b 100644 >> +--- a/doc/CMakeLists.txt >> ++++ b/doc/CMakeLists.txt >> +@@ -1,70 +1,74 @@ >> ++option(BUILD_DOCS "Indicates whether HTML documentation and manual >> pages should be built or not" ON) >> ++ >> + find_program(ASCIIDOC_EXE asciidoc) >> + mark_as_advanced(ASCIIDOC_EXE) # Don't show in CMake UIs >> + >> +-if(NOT ASCIIDOC_EXE) >> +- message(WARNING "Could not find asciidoc; documentation will not >> be generated") >> +-else() >> +- # >> +- # HTML documentation >> +- # >> +- function(generate_html adoc_file) >> +- get_filename_component(base_name "${adoc_file}" NAME_WE) >> +- set(html_file "${base_name}.html") >> +- add_custom_command( >> +- OUTPUT "${html_file}" >> +- COMMAND >> +- ${ASCIIDOC_EXE} >> +- -o "${html_file}" >> +- -a revnumber="${CCACHE_VERSION}" >> +- -a toc >> +- -b xhtml11 >> +- "${CMAKE_SOURCE_DIR}/${adoc_file}" >> +- MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}" >> +- ) >> +- set(html_files "${html_files}" "${html_file}" PARENT_SCOPE) >> +- endfunction() >> ++if (BUILD_DOCS) >> ++ if(NOT ASCIIDOC_EXE) >> ++ message(WARNING "Could not find asciidoc; documentation will not >> be generated") >> ++ else() >> ++ # >> ++ # HTML documentation >> ++ # >> ++ function(generate_html adoc_file) >> ++ get_filename_component(base_name "${adoc_file}" NAME_WE) >> ++ set(html_file "${base_name}.html") >> ++ add_custom_command( >> ++ OUTPUT "${html_file}" >> ++ COMMAND >> ++ ${ASCIIDOC_EXE} >> ++ -o "${html_file}" >> ++ -a revnumber="${CCACHE_VERSION}" >> ++ -a toc >> ++ -b xhtml11 >> ++ "${CMAKE_SOURCE_DIR}/${adoc_file}" >> ++ MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}" >> ++ ) >> ++ set(html_files "${html_files}" "${html_file}" PARENT_SCOPE) >> ++ endfunction() >> + >> +- generate_html(LICENSE.adoc) >> +- generate_html(doc/AUTHORS.adoc) >> +- generate_html(doc/MANUAL.adoc) >> +- generate_html(doc/NEWS.adoc) >> ++ generate_html(LICENSE.adoc) >> ++ generate_html(doc/AUTHORS.adoc) >> ++ generate_html(doc/MANUAL.adoc) >> ++ generate_html(doc/NEWS.adoc) >> + >> +- add_custom_target(doc-html DEPENDS "${html_files}") >> +- set(doc_files "${html_files}") >> ++ add_custom_target(doc-html DEPENDS "${html_files}") >> ++ set(doc_files "${html_files}") >> + >> +- # >> +- # Man page >> +- # >> +- find_program(A2X_EXE a2x) >> +- mark_as_advanced(A2X_EXE) # Don't show in CMake UIs >> +- if(NOT A2X_EXE) >> +- message(WARNING "Could not find a2x; man page will not be >> generated") >> +- else() >> +- # MANUAL.adoc -> MANUAL.xml -> man page >> +- add_custom_command( >> +- OUTPUT MANUAL.xml >> +- COMMAND >> +- ${ASCIIDOC_EXE} >> +- -o - >> +- -a revnumber=${CCACHE_VERSION} >> +- -d manpage >> +- -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc" >> +- | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis >> role="strong">\\1</emphasis>!g' >> +- >MANUAL.xml >> +- MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc" >> +- ) >> +- add_custom_command( >> +- OUTPUT ccache.1 >> +- COMMAND ${A2X_EXE} --doctype manpage --format manpage MANUAL.xml >> +- MAIN_DEPENDENCY MANUAL.xml >> +- ) >> +- add_custom_target(doc-man-page DEPENDS ccache.1) >> +- install( >> +- FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1" >> +- DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" >> +- ) >> +- set(doc_files "${doc_files}" ccache.1) >> +- endif() >> ++ # >> ++ # Man page >> ++ # >> ++ find_program(A2X_EXE a2x) >> ++ mark_as_advanced(A2X_EXE) # Don't show in CMake UIs >> ++ if(NOT A2X_EXE) >> ++ message(WARNING "Could not find a2x; man page will not be >> generated") >> ++ else() >> ++ # MANUAL.adoc -> MANUAL.xml -> man page >> ++ add_custom_command( >> ++ OUTPUT MANUAL.xml >> ++ COMMAND >> ++ ${ASCIIDOC_EXE} >> ++ -o - >> ++ -a revnumber=${CCACHE_VERSION} >> ++ -d manpage >> ++ -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc" >> ++ | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis >> role="strong">\\1</emphasis>!g' >> ++ >MANUAL.xml >> ++ MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc" >> ++ ) >> ++ add_custom_command( >> ++ OUTPUT ccache.1 >> ++ COMMAND ${A2X_EXE} --doctype manpage --format manpage >> MANUAL.xml >> ++ MAIN_DEPENDENCY MANUAL.xml >> ++ ) >> ++ add_custom_target(doc-man-page DEPENDS ccache.1) >> ++ install( >> ++ FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1" >> ++ DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" >> ++ ) >> ++ set(doc_files "${doc_files}" ccache.1) >> ++ endif() >> + >> +- add_custom_target(doc ALL DEPENDS "${doc_files}") >> ++ add_custom_target(doc ALL DEPENDS "${doc_files}") >> ++ endif() >> + endif() >> +-- >> +2.29.2 >> + >> diff --git a/meta/recipes-devtools/ccache/ccache_4.2.1.bb >> b/meta/recipes-devtools/ccache/ccache_4.2.1.bb >> index 90b9c6181f..8dd5893d68 100644 >> --- a/meta/recipes-devtools/ccache/ccache_4.2.1.bb >> +++ b/meta/recipes-devtools/ccache/ccache_4.2.1.bb >> @@ -11,7 +11,9 @@ LIC_FILES_CHKSUM = >> "file://LICENSE.adoc;md5=698a26b57e513d678e1e7727bf56395b" >> DEPENDS = "zstd" >> -SRC_URI = >> "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" >> +SRC_URI = >> "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \ >> + >> file://0001-doc-allow-disabling-docs-man-page-generation.patch \ >> + " >> SRC_URI[sha256sum] = >> "320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62" >> UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" >> @@ -21,3 +23,5 @@ inherit cmake >> PATCHTOOL = "patch" >> BBCLASSEXTEND = "native nativesdk" >> + >> +PACKAGECONFIG[docs] = "-DBUILD_DOCS=ON,-DBUILD_DOCS=OFF,asciidoc" >> >> >> >> >> > > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151234): https://lists.openembedded.org/g/openembedded-core/message/151234 Mute This Topic: https://lists.openembedded.org/mt/82575058/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
