Skip to content

Commit

Permalink
CMAKE: Clean up docgen.
Browse files Browse the repository at this point in the history
  • Loading branch information
jamievlin committed Aug 16, 2024
1 parent 48c256d commit c335a5c
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions cmake-scripts/docgen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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
Expand All @@ -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 <buildroot>/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})
Expand All @@ -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}
)
Expand Down Expand Up @@ -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}
)

Expand All @@ -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 <buildroot>/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}
)

Expand All @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit c335a5c

Please sign in to comment.