Skip to content

Commit

Permalink
CMAKE: Add docgen target for asymptote.pdf in windows.
Browse files Browse the repository at this point in the history
  • Loading branch information
jamievlin committed Aug 16, 2024
1 parent aebd49b commit 1796553
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 1 deletion.
38 changes: 37 additions & 1 deletion cmake-scripts/docgen.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
if (NOT ENABLE_DOCGEN_DEFAULT)
if (NOT ENABLE_DOCGEN)
message(FATAL_ERROR "Documentation generation is disabled")
endif()

Expand Down Expand Up @@ -164,3 +164,39 @@ add_custom_command(
--asy-executable=$<TARGET_FILE:asy>
--output-file=${ASY_TEX_BUILD_ROOT}/options
)

# 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)
else()
set(TEXINDEX_WRAPPER ${WIN32_TEXINDEX})
endif()
add_custom_command(
OUTPUT ${ASY_TEX_BUILD_ROOT}/asymptote.pdf
DEPENDS
${ASY_TEX_BUILD_ROOT}/options
${ASY_TEX_BUILD_ROOT}/latexusage.pdf
${ASY_DOC_ROOT}/asymptote.texi
${ASY_DOC_PDF_FILES}
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 ${ASYMPTOTE_PDF_EXTRA_ARTIFACTS}
)

add_custom_target(docgen DEPENDS ${ASY_TEX_BUILD_ROOT}/asymptote.pdf)
else()
# TODO: Add asymptote.pdf generation for linux
endif()
27 changes: 27 additions & 0 deletions doc/build-asymptote-pdf-win.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env python3
import argparse
import os
import subprocess


def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--texify-loc", required=True)
parser.add_argument("--texindex-loc", required=True)
parser.add_argument("--texi-file", required=True)
return parser.parse_args()


def main():
args = parse_args()
env = os.environ.copy()
env["TEXINDEX"] = args.texindex_loc
subprocess.run(
[args.texify_loc, "--pdf", args.texi_file],
env=env,
check=True,
)


if __name__ == "__main__":
main()
2 changes: 2 additions & 0 deletions windows/texindex-wsl.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
wsl texindex %*

0 comments on commit 1796553

Please sign in to comment.