我有一个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
选择特定目标时编译文档。如何修改此文件以设置自定义目标?
答案 0 :(得分:1)
您必须使用all
从EXCLUDE_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
。