From patchwork Tue May 12 22:55:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 26748 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 14405BDCBD for ; Tue, 12 May 2026 22:55:11 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id EEC8363025; Wed, 13 May 2026 00:55:09 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="md5H+sjc"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6968D62DC4 for ; Wed, 13 May 2026 00:55:07 +0200 (CEST) Received: from killaraus.ideasonboard.com (2001-14ba-70f3-e800--a06.rev.dnainternet.fi [IPv6:2001:14ba:70f3:e800::a06]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 203E5557; Wed, 13 May 2026 00:54:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778626499; bh=gtohnQ1K+G8ToWCcKDy5/crk52Xudk1r87Zmf3ZoTJw=; h=From:To:Cc:Subject:Date:From; b=md5H+sjc918/MlhNzZODLzzn0qiS+Hpyy28ALREtWIUiNlORNfWe3YiAxbkSzswbP edX2H8WDKmdYDvuo4Zw0pu8lb4bVEeE3rKuDr2o0ONvI+8EBqG0LBZW7p4ozVjBm1z 2LAyqBY28fp7yR7NN9hFYidg2aLXT+PEL2KLi9Jc= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Cc: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= , Stefan Klug Subject: [PATCH] Documentation: Split public and internal post-install actions Date: Wed, 13 May 2026 01:55:05 +0300 Message-ID: <20260512225505.234522-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" We move the Doxygen-generated API documentation to the Sphinx output directory at installation time, in order to integrate the two parts of the documentation together. This uses a post-install script, arguably as a hack, for lack of a better solution ([1]). The post-install step does not specify tags, which prevents it from running when installing the doc or doc-internal tags only. To fix it, split it in two runs, one for the public and one for the internal API, and tag them with 'doc' and 'doc-internal' respectively. As the script is now called with a single API directory, simplify it and make it print a more precise message. [1] See commit 4a9863e05397 ("Documentation: Improve Sphinx and Doxygen integration") for a more detailed explanation. Reported-by: Stefan Klug Closes: https://gitlab.freedesktop.org/camera/libcamera/-/work_items/333 Suggested-by: Barnabás Pőcze Signed-off-by: Laurent Pinchart --- Documentation/install-doxygen.sh | 11 ++++------- Documentation/meson.build | 6 ++++-- 2 files changed, 8 insertions(+), 9 deletions(-) base-commit: b0dbd5100b1b1665dd2bc839d06263d55a89a6bd diff --git a/Documentation/install-doxygen.sh b/Documentation/install-doxygen.sh index ea5a19dc8fda..091f356fe529 100755 --- a/Documentation/install-doxygen.sh +++ b/Documentation/install-doxygen.sh @@ -7,12 +7,9 @@ # Move Doxygen-generated API documentation to correct location doc_dir="${MESON_INSTALL_DESTDIR_PREFIX}/$1" -shift -dirs="$*" +api_dir="$2" -echo "Moving API documentation" +echo "Moving Doxygen ${api_dir} API documentation" -for dir in $dirs ; do - rm -r "${doc_dir}/html/${dir}" - mv "${doc_dir}/${dir}" "${doc_dir}/html/" -done +rm -r "${doc_dir}/html/${api_dir}" +mv "${doc_dir}/${api_dir}" "${doc_dir}/html/" diff --git a/Documentation/meson.build b/Documentation/meson.build index 51899c19c166..84c05091d5b5 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -194,8 +194,10 @@ if sphinx.found() install_dir : doc_install_dir, install_tag : 'doc') - meson.add_install_script('install-doxygen.sh', doc_install_dir, - 'public-api', 'internal-api') + meson.add_install_script('install-doxygen.sh', doc_install_dir, 'public-api', + install_tag : 'doc') + meson.add_install_script('install-doxygen.sh', doc_install_dir, 'internal-api', + install_tag : 'doc-internal') custom_target('documentation-linkcheck', command : [sphinx, '-W', '-b', 'linkcheck',