From c335a5ca1b3b1098f04b7a0521d1bd9b249cae42 Mon Sep 17 00:00:00 2001 From: Supakorn 'Jamie' Rassameemasmuang Date: Thu, 15 Aug 2024 23:55:11 -0600 Subject: [PATCH] CMAKE: Clean up docgen. --- cmake-scripts/docgen.cmake | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/cmake-scripts/docgen.cmake b/cmake-scripts/docgen.cmake index 445c3b8fc..382c37d25 100644 --- a/cmake-scripts/docgen.cmake +++ b/cmake-scripts/docgen.cmake @@ -7,7 +7,7 @@ set(ASY_TEX_BUILD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/docbuild) file(MAKE_DIRECTORY ${ASY_TEX_BUILD_ROOT}) configure_file(${ASY_RESOURCE_DIR}/version.texi.in ${ASY_TEX_BUILD_ROOT}/version.texi) -set(LATEX_ARTIFRACT_EXTENSIONS aux hd idx ins log out) +set(LATEX_ARTIFRACT_EXTENSIONS aux hd idx ins log out toc) find_package(LATEX COMPONENTS PDFLATEX REQUIRED) list( @@ -60,6 +60,7 @@ set(ASY_DOC_FILE_PREFIXES set(ASY_DOC_PDF_FILES "") set(CMAKE_COPY_ASY_FILE_TO_DOCBUILD_BASE_ARGS ${CMAKE_COMMAND} -E copy -t ${ASY_TEX_BUILD_ROOT}) +set(CMAKE_RM_BASE_ARGUMENTS ${CMAKE_COMMAND} -E rm) set(ASY_BASE_ARGUMENTS asy -dir ${ASY_BUILD_BASE_DIR} -config '' -render=0 -noprc -noV) # independent asymptote files that can be generated with any other files @@ -74,9 +75,11 @@ foreach(ASY_DOC_FILE_PREFIX ${ASY_DOC_FILE_PREFIXES}) COMMAND ${CMAKE_COPY_ASY_FILE_TO_DOCBUILD_BASE_ARGS} ${ASY_DOC_ROOT}/${ASY_DOC_FILE_PREFIX}.asy COMMAND ${ASY_BASE_ARGUMENTS} -fpdf ${ASY_DOC_FILE_PREFIX}.asy # cleanup /file.asy - COMMAND ${CMAKE_COMMAND} -E rm ${ASY_TEX_BUILD_ROOT}/${ASY_DOC_FILE_PREFIX}.asy + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} + ${ASY_TEX_BUILD_ROOT}/${ASY_DOC_FILE_PREFIX}.asy # cleanup tex artifacts, if exist - COMMAND ${CMAKE_COMMAND} -E rm -f ${ASY_TEX_BUILD_ROOT}/${ASY_DOC_FILE_PREFIX}_.tex + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} -f + ${ASY_TEX_BUILD_ROOT}/${ASY_DOC_FILE_PREFIX}_.tex WORKING_DIRECTORY ${ASY_TEX_BUILD_ROOT} ) list(APPEND ASY_DOC_PDF_FILES ${ASY_DOC_FILE_OUTPUT}) @@ -97,10 +100,10 @@ macro(add_asy_file_with_extension asy_file extra_ext) ${ASY_DOC_ROOT}/${asy_file}.asy ${ASY_DOC_ROOT}/${ASY_AUX_FILE_NAME} COMMAND ${ASY_BASE_ARGUMENTS} -fpdf ${ASY_DOC_FILE_PREFIX}.asy - COMMAND ${CMAKE_COMMAND} -E rm + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} ${ASY_TEX_BUILD_ROOT}/${asy_file}.asy ${ASY_TEX_BUILD_ROOT}/${ASY_AUX_FILE_NAME} - COMMAND ${CMAKE_COMMAND} -E rm -f + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} -f ${ASY_TEX_BUILD_ROOT}/${asy_file}_.tex WORKING_DIRECTORY ${ASY_TEX_BUILD_ROOT} ) @@ -133,7 +136,7 @@ add_custom_command( OUTPUT ${ASY_TEX_BUILD_ROOT}/logo.pdf COMMAND ${ASY_BASE_ARGUMENTS} -fpdf logo.asy DEPENDS ${ASY_TEX_BUILD_ROOT}/logo.asy - BYPRODUCTS ${ASY_TEX_BUILD_ROOT}/logo_.tex + BYPRODUCTS ${ASY_TEX_BUILD_ROOT}/logo_.tex ${ASY_TEX_BUILD_ROOT}/logo_.eps WORKING_DIRECTORY ${ASY_TEX_BUILD_ROOT} ) @@ -145,9 +148,9 @@ add_custom_command( COMMAND ${CMAKE_COPY_ASY_FILE_TO_DOCBUILD_BASE_ARGS} ${ASY_DOC_ROOT}/CDLabel.asy COMMAND ${ASY_BASE_ARGUMENTS} -fpdf CDLabel.asy # cleanup /file.asy - COMMAND ${CMAKE_COMMAND} -E rm ${ASY_TEX_BUILD_ROOT}/CDLabel.asy + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} ${ASY_TEX_BUILD_ROOT}/CDLabel.asy # cleanup tex artifacts, if exist - COMMAND ${CMAKE_COMMAND} -E rm -f ${ASY_TEX_BUILD_ROOT}/CDLabel_.tex + COMMAND ${CMAKE_RM_BASE_ARGUMENTS} -f ${ASY_TEX_BUILD_ROOT}/CDLabel_.tex WORKING_DIRECTORY ${ASY_TEX_BUILD_ROOT} ) @@ -163,6 +166,14 @@ add_custom_command( ) # asymptote.pdf + +set(TEXI_ARTIFACT_EXTENSIONS log tmp cp toc cps aux) +list( + TRANSFORM TEXI_ARTIFACT_EXTENSIONS + PREPEND ${ASY_TEX_BUILD_ROOT}/asymptote. + OUTPUT_VARIABLE ASYMPTOTE_PDF_EXTRA_ARTIFACTS + ) + if (WIN32) if (WIN32_TEXINDEX STREQUAL WSL) set(TEXINDEX_WRAPPER ${CMAKE_CURRENT_SOURCE_DIR}/windows/texindex-wsl.cmd) @@ -176,19 +187,13 @@ add_custom_command( ${ASY_TEX_BUILD_ROOT}/latexusage.pdf ${ASY_DOC_ROOT}/asymptote.texi ${ASY_DOC_PDF_FILES} - COMMAND SET TEXINDEX="${TEXINDEX_WRAPPER}" COMMAND ${PY3_INTERPRETER} ${ASY_DOC_ROOT}/build-asymptote-pdf-win.py --texify-loc=${TEXIFY} --texindex-loc=${TEXINDEX_WRAPPER} --texi-file=${ASY_DOC_ROOT}/asymptote.texi WORKING_DIRECTORY ${ASY_TEX_BUILD_ROOT} - BYPRODUCTS - ${ASY_TEX_BUILD_ROOT}/asymptote.log - ${ASY_TEX_BUILD_ROOT}/asymptote.tmp - ${ASY_TEX_BUILD_ROOT}/asymptote.cp - ${ASY_TEX_BUILD_ROOT}/asymptote.toc - ${ASY_TEX_BUILD_ROOT}/asymptote.cps + BYPRODUCTS ${ASYMPTOTE_PDF_EXTRA_ARTIFACTS} ) add_custom_target(docgen DEPENDS ${ASY_TEX_BUILD_ROOT}/asymptote.pdf)