2017-05-21 2 views
1

J'ai un fichier CMakeLists.txt que j'utilise pour la construction d'un ensemble de fichiers LaTeX en utilisant UseLATEX:UseLATEX dans la cible personnalisée

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 
) 

Il fonctionne, mais je recréent le document chaque fois que je lance cmake --build .. Je veux créer une cible doc et je veux compiler la documentation seulement si je choisis la cible spécifique avec la commande cmake --build . --target doc. Comment puis-je modifier ce fichier afin de définir la cible personnalisée?

Répondre

1

Vous devez exclure la cible du all en utilisant EXCLUDE_FROM_ALL et vous devez ajouter votre cible en tant que dépendance de doc. Peut-être que EXCLUDE_FROM_DEFAULTS est pratique, aussi.

Cela devrait faire l'affaire:

# 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) 

Vous pouvez également écrire une fonction ou une macro qui fait les étapes pour vous et passe tous les autres arguments à add_latex_document.

+0

Merci beaucoup, c'est exactement ce dont j'ai besoin ... – Jepessen