From 99d75af3baa9d869b7375a4e4685a426b2172c97 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 28 Apr 2022 23:29:41 +0200
Subject: [PATCH] Improve elisp package target downloading [ci-skip]

This is done to avoid races if generating doc using multiple jobs
---
 cmake/PugsDoc.cmake | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/cmake/PugsDoc.cmake b/cmake/PugsDoc.cmake
index 7a5694f09..827faed47 100644
--- a/cmake/PugsDoc.cmake
+++ b/cmake/PugsDoc.cmake
@@ -20,12 +20,24 @@ if (EMACS)
 
   set(ORG_GENERATOR_FILES
     "${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el"
-    "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el"
-    "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el"
     "${PUGS_SOURCE_DIR}/doc/lisp/share/pugs.el"
     "${PUGS_SOURCE_DIR}/doc/lisp/share/ob-pugs.el"
   )
 
+  add_custom_command(
+    OUTPUT "${PUGS_SOURCE_DIR}/doc/elpa"
+    COMMAND
+    ${CMAKE_COMMAND} -E env
+    PUGS=${PUGS_BINARY_DIR}/pugs
+    HOME=${PUGS_SOURCE_DIR}/doc/lisp
+    PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
+    PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
+    ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el
+    DEPENDS ${ORG_GENERATOR_FILES}
+  )
+
+  add_custom_target(pugsdoc-download-elpa DEPENDS "${PUGS_SOURCE_DIR}/doc/elpa")
+
   add_custom_command(
     OUTPUT "${PUGS_BINARY_DIR}/doc/userdoc.html"
     COMMAND
@@ -35,7 +47,7 @@ if (EMACS)
     PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
     PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
     ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el
-    DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" pugs pugsdoc-dir ${ORG_GENERATOR_FILES}
+    DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el" pugs pugsdoc-dir pugsdoc-download-elpa
     WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc
     COMMENT "Built user documentation in doc/userdoc.html"
     VERBATIM)
@@ -55,7 +67,7 @@ if (EMACS)
       PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
       PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
       ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el
-      DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" pugs pugsdoc-dir  ${ORG_GENERATOR_FILES}
+      DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el" pugs pugsdoc-dir pugsdoc-download-elpa
       WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc
       COMMENT "Built user documentation in doc/userdoc.pdf"
       VERBATIM)
-- 
GitLab