在自定义目标中使用 LATEX



我有一个CMakeLists.txt文件,我使用它来构建一组 LaTeX 文件,使用 UseLATEX

cmake_minimum_required (VERSION 3.7.0)
project (technical_guide NONE)
include (UseLATEX.cmake)
file (INSTALL ${CMAKE_CURRENT_SOURCE_DIR}/tikz DESTINATION ./)
file (INSTALL ${CMAKE_CURRENT_SOURCE_DIR}/code DESTINATION ./)
message (STATUS "TIKZ folder is ${CMAKE_CURRENT_SOURCE_DIR}")
add_latex_document (
  main.tex
  INPUTS introduction.tex tikzstyle.tex commands.tex codestyle.tex documentstyle.tex
  IMAGE_DIRS tikz
  TARGET_NAME technical_guide
)

它可以工作,但是每次运行cmake --build .时我都会重新创建文档。我想创建一个doc目标,并且仅当我使用命令 cmake --build . --target doc 选择特定目标时才要编译文档。如何修改此文件以设置自定义目标?

您必须使用 EXCLUDE_FROM_ALLall中排除目标,并且必须将目标添加为 doc 的依赖项。也许EXCLUDE_FROM_DEFAULTS也很方便。

这应该可以解决问题:

# create target doc
add_custom_target(doc)
# create target for main.tex, but exclude from all
add_latex_document(
  main.tex
  INPUTS introduction.tex tikzstyle.tex commands.tex codestyle.tex 
  documentstyle.tex
  IMAGE_DIRS tikz
  TARGET_NAME technical_guide
  EXCLUDE_FROM_ALL)
# explicitly add dependency to doc
add_dependencies(doc technical_guide)

您还可以编写一个函数或宏来为您执行这些步骤并将所有其他参数传递给add_latex_document

最新更新