我有一个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_ALL
从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
。