【问题标题】:UseLATEX in custom target在自定义目标中使用 LATEX
【发布时间】:2017-05-21 17:30:22
【问题描述】:

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

【问题讨论】:

    标签: cmake latex target


    【解决方案1】:

    您必须使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多