diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 47fb44adf..0bc58e487 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -40,6 +40,10 @@ Bug fixes:: * irc: fix parsing of CAP message when there is no prefix (issue #1707) * irc: fix parsing of TAGMSG message when there is a colon before the channel +Build:: + + * core: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only) + [[v3.3]] == Version 3.3 (2021-09-19) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index c7d296c5f..8ab0a8575 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -21,7 +21,58 @@ if(ENABLE_MAN OR ENABLE_DOC) find_package(Asciidoctor) if(ASCIIDOCTOR_FOUND) + # common asciidoctor arguments set(ASCIIDOCTOR_ARGS -a experimental -a "prewrap!" -a icons=font -a revnumber="${VERSION}" -a sectanchors -a source-highlighter=prettify) + + # sed arguments used to replace links in ChangeLog and release notes + set(SED_LINKS_ARGS + -e "'s/issue #\\([0-9][0-9]*\\)/https:\\/\\/github.com\\/weechat\\/weechat\\/issues\\/\\1[issue #\\1^]/g'" + -e "'s/bug #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/bugs\\/?\\1[bug #\\1^]/g'" + -e "'s/task #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/task\\/?\\1[task #\\1^]/g'" + -e "'s/patch #\\([0-9][0-9]*\\)/https:\\/\\/savannah.nongnu.org\\/patch\\/?\\1[patch #\\1^]/g'" + -e "'s/debian #\\([0-9][0-9]*\\)/http:\\/\\/bugs.debian.org\\/cgi-bin\\/bugreport.cgi?bug=\\1[debian bug #\\1^]/g'" + -e "'s/\\(CVE-[0-9][0-9]*-[0-9][0-9]*\\)/https:\\/\\/cve.mitre.org\\/cgi-bin\\/cvename.cgi?name=\\1[\\1^]/g'" + ) + + # ChangeLog + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc + COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/../ChangeLog.adoc + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html + COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ChangeLog.html ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html + ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog-links.adoc + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Building ChangeLog.html" + ) + add_custom_target(changelog DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html) + + # Release notes + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc + COMMAND sed ARGS ${SED_LINKS_ARGS} ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc > ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/../ReleaseNotes.adoc + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html + COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${ASCIIDOCTOR_ARGS} -a docinfodir="${CMAKE_CURRENT_SOURCE_DIR}" -o ReleaseNotes.html ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html + ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes-links.adoc + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Building ReleaseNotes.html" + ) + add_custom_target(rn DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ReleaseNotes.html) + + # man/doc in all languages add_subdirectory(cs) add_subdirectory(de) add_subdirectory(en) diff --git a/tools/build-test.sh b/tools/build-test.sh index fd6a4f87b..0653e5414 100755 --- a/tools/build-test.sh +++ b/tools/build-test.sh @@ -69,6 +69,8 @@ if [ "$BUILDTOOL" = "cmake" ]; then # build with CMake run "cmake .. -DENABLE_MAN=ON -DENABLE_DOC=ON -DENABLE_TESTS=ON ${BUILDARGS}" run "make VERBOSE=1 -j$(nproc)" + run "make VERBOSE=1 changelog" + run "make VERBOSE=1 rn" run "sudo make install" run "ctest -V" fi