在自定义目标中使用LATEX

时间:2017-05-21 17:30:23

标签: cmake latex target

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

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选择特定目标时编译文档。如何修改此文件以设置自定义目标?

1 个答案:

答案 0 :(得分:1)

您必须使用allEXCLUDE_FROM_ALL中排除目标,并且必须将目标添加为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