From 6e722507e06e8b817140fffa90bd3a38cef778c1 Mon Sep 17 00:00:00 2001 From: Tobias Hieta Date: Wed, 20 Sep 2023 18:39:11 +0200 Subject: [PATCH 1/3] build-docs: Add option to disable doxygen docs Doxygen documentation takes very long to build, when making releases we want to get the normal documentation up earlier so that we don't have to wait for doxygen documentation. This PR just adds the flag to disable doxygen builds, I will then later make a PR that changes the actions to first build the normal docs and another job to build the doxygen docs. --- llvm/utils/release/build-docs.sh | 45 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh index ef3784959b4f3..aa76414171f4e 100755 --- a/llvm/utils/release/build-docs.sh +++ b/llvm/utils/release/build-docs.sh @@ -20,7 +20,7 @@ # * pip install sphinx-markdown-tables #===------------------------------------------------------------------------===# -set -ex +set -e builddir=docs-build srcdir=$(readlink -f $(dirname "$(readlink -f "$0")")/../..) @@ -34,6 +34,7 @@ usage() { echo " documentation from that source." echo " -srcdir Path to llvm source directory with CMakeLists.txt" echo " (optional) default: $srcdir" + echo " -no-doxygen Don't build Doxygen docs" } package_doxygen() { @@ -57,6 +58,9 @@ while [ $# -gt 0 ]; do shift custom_srcdir=$1 ;; + -no-doxygen ) + no_doxygen="yes" + ;; * ) echo "unknown option: $1" usage @@ -89,28 +93,25 @@ if [ -n "$release" ]; then srcdir="./llvm-project/llvm" fi +docs_targets="docs-clang-html docs-clang-tools-html docs-flang-html docs-lld-html docs-llvm-html docs-polly-html" + +if [ "$no_doxygen" != "yes" ]; then + echo "Doxygen: enabled" + docs_targets="$docs_target doxygen-clang doxygen-clang-tools doxygen-flang doxygen-llvm doxygen-mlir doxygen-polly" + doxygen_flag=" -DLLVM_ENABLE_DOXYGEN=ON -DLLVM_DOXYGEN_SVG=ON" +else + echo "Doxygen: disabled" +fi + cmake -G Ninja $srcdir -B $builddir \ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang" \ -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_DOXYGEN=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DLLVM_BUILD_DOCS=ON \ - -DLLVM_DOXYGEN_SVG=ON \ - -DSPHINX_WARNINGS_AS_ERRORS=OFF + -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + $doxygen_flag -ninja -C $builddir \ - docs-clang-html \ - docs-clang-tools-html \ - docs-flang-html \ - docs-lld-html \ - docs-llvm-html \ - docs-polly-html \ - doxygen-clang \ - doxygen-clang-tools \ - doxygen-flang \ - doxygen-llvm \ - doxygen-mlir \ - doxygen-polly +ninja -C $builddir $docs_targets cmake -G Ninja $srcdir/../runtimes -B $builddir/runtimes-doc \ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ @@ -120,10 +121,12 @@ cmake -G Ninja $srcdir/../runtimes -B $builddir/runtimes-doc \ ninja -C $builddir/runtimes-doc \ docs-libcxx-html \ -package_doxygen llvm . -package_doxygen clang tools/clang -package_doxygen clang-tools-extra tools/clang/tools/extra -package_doxygen flang tools/flang +if [ "$no_doxygen" != "yes" ]; then + package_doxygen llvm . + package_doxygen clang tools/clang + package_doxygen clang-tools-extra tools/clang/tools/extra + package_doxygen flang tools/flang +fi html_dir=$builddir/html-export/ From d229aaece1bd5a7c064fa652a49944068da37aa7 Mon Sep 17 00:00:00 2001 From: Tobias Hieta Date: Thu, 21 Sep 2023 17:00:33 +0200 Subject: [PATCH 2/3] Add no-sphinx command as well --- llvm/utils/release/build-docs.sh | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh index aa76414171f4e..efd63eeb53ac0 100755 --- a/llvm/utils/release/build-docs.sh +++ b/llvm/utils/release/build-docs.sh @@ -35,6 +35,7 @@ usage() { echo " -srcdir Path to llvm source directory with CMakeLists.txt" echo " (optional) default: $srcdir" echo " -no-doxygen Don't build Doxygen docs" + echo " -no-sphinx Don't build Spinx docs" } package_doxygen() { @@ -61,6 +62,9 @@ while [ $# -gt 0 ]; do -no-doxygen ) no_doxygen="yes" ;; + -no-sphinx ) + no_sphinx="yes" + ;; * ) echo "unknown option: $1" usage @@ -93,11 +97,19 @@ if [ -n "$release" ]; then srcdir="./llvm-project/llvm" fi -docs_targets="docs-clang-html docs-clang-tools-html docs-flang-html docs-lld-html docs-llvm-html docs-polly-html" +if [ "$no_doxygen" == "yes" ] && [ "$no_sphinx" == "yes" ]; then + echo "You can't specify both -no-doxygen and -no-sphinx, we have nothing to build then!" + exit 1 +fi + +if [ "$no_sphinx" != "yes" ]; then + sphinx_targets="docs-clang-html docs-clang-tools-html docs-flang-html docs-lld-html docs-llvm-html docs-polly-html" + sphinx_flag=" -DLLVM_ENABLE_SPHINX=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF" +fi if [ "$no_doxygen" != "yes" ]; then echo "Doxygen: enabled" - docs_targets="$docs_target doxygen-clang doxygen-clang-tools doxygen-flang doxygen-llvm doxygen-mlir doxygen-polly" + doxygen_targets="$docs_target doxygen-clang doxygen-clang-tools doxygen-flang doxygen-llvm doxygen-mlir doxygen-polly" doxygen_flag=" -DLLVM_ENABLE_DOXYGEN=ON -DLLVM_DOXYGEN_SVG=ON" else echo "Doxygen: disabled" @@ -106,12 +118,11 @@ fi cmake -G Ninja $srcdir -B $builddir \ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;polly;flang" \ -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_SPHINX=ON \ -DLLVM_BUILD_DOCS=ON \ - -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + $sphinx_flag \ $doxygen_flag -ninja -C $builddir $docs_targets +ninja -C $builddir $sphinx_targets $doxygen_targets cmake -G Ninja $srcdir/../runtimes -B $builddir/runtimes-doc \ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ @@ -128,6 +139,10 @@ if [ "$no_doxygen" != "yes" ]; then package_doxygen flang tools/flang fi +if [ "$no_sphinx" == "yes" ]; then + exit 0 +fi + html_dir=$builddir/html-export/ for d in docs/ tools/clang/docs/ tools/lld/docs/ tools/clang/tools/extra/docs/ tools/polly/docs/ tools/flang/docs/; do From d8effd4d091fcabc021ef80294e898141b173cc3 Mon Sep 17 00:00:00 2001 From: Tobias Hieta Date: Fri, 22 Sep 2023 10:10:14 +0200 Subject: [PATCH 3/3] Add output for sphinx docs --- llvm/utils/release/build-docs.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/utils/release/build-docs.sh b/llvm/utils/release/build-docs.sh index efd63eeb53ac0..1ab7561da9c01 100755 --- a/llvm/utils/release/build-docs.sh +++ b/llvm/utils/release/build-docs.sh @@ -103,8 +103,11 @@ if [ "$no_doxygen" == "yes" ] && [ "$no_sphinx" == "yes" ]; then fi if [ "$no_sphinx" != "yes" ]; then + echo "Sphinx: enabled" sphinx_targets="docs-clang-html docs-clang-tools-html docs-flang-html docs-lld-html docs-llvm-html docs-polly-html" sphinx_flag=" -DLLVM_ENABLE_SPHINX=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF" +else + echo "Sphinx: disabled" fi if [ "$no_doxygen" != "yes" ]; then