From fef31ca50f059307d7ce79fee0f4d08acceadbe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich@dune-project.org> Date: Sun, 27 Apr 2014 22:43:35 +0200 Subject: [PATCH] [CMake] Apply our modifications to UseLATEX.cmake. Needed to build the documentation only for make doc. Avoid name clashes by adding MANGLE_TARGET_NAMES. With CMake 3.0.0 no more warnings are emitted by building the documentation. --- cmake/modules/DuneDoc.cmake | 2 +- cmake/modules/UseLATEX.cmake | 50 ++++++++++++++++++++++++++---------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/cmake/modules/DuneDoc.cmake b/cmake/modules/DuneDoc.cmake index 4b19ccec2..6ec194e5a 100644 --- a/cmake/modules/DuneDoc.cmake +++ b/cmake/modules/DuneDoc.cmake @@ -86,7 +86,7 @@ MACRO(dune_add_latex_document tex_file) if(filevar) if(LATEX_USABLE) # add rule to create latex document - add_latex_document(${tex_file} ${ARGN}) + add_latex_document(${tex_file} ${ARGN} MANGLE_TARGET_NAMES) else(LATEX_USABLE) message(WARNING "Not adding rule to create ${file} as LaTEX is not usable!") endif(LATEX_USABLE) diff --git a/cmake/modules/UseLATEX.cmake b/cmake/modules/UseLATEX.cmake index 5e2d75abe..afe4fd87a 100644 --- a/cmake/modules/UseLATEX.cmake +++ b/cmake/modules/UseLATEX.cmake @@ -13,6 +13,7 @@ # The following function is defined: # # ADD_LATEX_DOCUMENT(<tex_file> +# [FATHER_TARGET <father_target>] # [BIBFILES <bib_files>] # [INPUTS <input_tex_files>] # [IMAGE_DIRS] <image_directories> @@ -54,10 +55,13 @@ # target, it does not delete other input files, such as # converted images, to save time on the rebuild. # -# The dvi target is added to the ALL. That is, it will be the target -# built by default. If the DEFAULT_PDF argument is given, then the -# pdf target will be the default instead of dvi. Likewise, -# DEFAULT_SAFEPDF sets the default target to safepdf. If NO_DEFAULT +# If FATHER_TARGET is omitted, the dvi target is added to the ALL. +# That is, it will be the target built by default. If the DEFAULT_PDF +# argument is given, then the pdf target will be the default instead of +# dvi. Likewise, DEFAULT_SAFEPDF sets the default target to safepdf. +# If FATHER_TARGET is set, the files will be a dependency of +# FATHER_TARGET. By setting FATHER_TARGET to doc, the files will be build +# during make doc. If NO_DEFAULT # is specified, then no target will be added to ALL, which is # convenient when including LaTeX documentation with something else. # @@ -975,7 +979,7 @@ ENDFUNCTION(LATEX_USAGE command message) FUNCTION(PARSE_ADD_LATEX_ARGUMENTS command) LATEX_PARSE_ARGUMENTS( LATEX - "BIBFILES;MULTIBIB_NEWCITES;INPUTS;IMAGE_DIRS;IMAGES;CONFIGURE;DEPENDS" + "BIBFILES;FATHER_TARGET;MULTIBIB_NEWCITES;INPUTS;IMAGE_DIRS;IMAGES;CONFIGURE;DEPENDS" "USE_INDEX;USE_GLOSSARY;USE_GLOSSARIES;USE_NOMENCL;DEFAULT_PDF;DEFAULT_SAFEPDF;DEFAULT_PS;NO_DEFAULT;MANGLE_TARGET_NAMES" ${ARGN} ) @@ -1248,8 +1252,14 @@ FUNCTION(ADD_LATEX_TARGETS_INTERNAL) ADD_CUSTOM_TARGET(${dvi_target} DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) ELSE (LATEX_NO_DEFAULT OR LATEX_DEFAULT_PDF OR LATEX_DEFAULT_SAFEPDF OR DEFAULT_PS) - ADD_CUSTOM_TARGET(${dvi_target} ALL - DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) + IF (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${dvi_target} + DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) + ADD_DEPENDENCIES(${LATEX_FATHER_TARGET} ${dvi_target}) + ELSE (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${dvi_target} ALL + DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) + ENDIF (LATEX_FATHER_TARGET) ENDIF (LATEX_NO_DEFAULT OR LATEX_DEFAULT_PDF OR LATEX_DEFAULT_SAFEPDF OR DEFAULT_PS) # Add commands and targets for building pdf outputs (with pdflatex). @@ -1259,8 +1269,14 @@ FUNCTION(ADD_LATEX_TARGETS_INTERNAL) DEPENDS ${make_pdf_depends} ) IF (LATEX_DEFAULT_PDF) - ADD_CUSTOM_TARGET(${pdf_target} ALL - DEPENDS ${output_dir}/${LATEX_TARGET}.pdf) + IF (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${pdf_target} + DEPENDS ${output_dir}/${LATEX_TARGET}.pdf) + ADD_DEPENDENCIES(${LATEX_FATHER_TARGET} ${pdf_target}) + ELSE (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${pdf_target} ALL + DEPENDS ${output_dir}/${LATEX_TARGET}.pdf) + ENDIF (LATEX_FATHER_TARGET) ELSE (LATEX_DEFAULT_PDF) ADD_CUSTOM_TARGET(${pdf_target} DEPENDS ${output_dir}/${LATEX_TARGET}.pdf) @@ -1284,10 +1300,18 @@ FUNCTION(ADD_LATEX_TARGETS_INTERNAL) # cannot properly do the dependencies for both. When selecting safepdf, # simply force a recompile every time. IF (LATEX_DEFAULT_SAFEPDF) - ADD_CUSTOM_TARGET(${safepdf_target} ALL - ${CMAKE_COMMAND} -E chdir ${output_dir} - ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf - ) + IF (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${safepdf_target} + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf + ) + ADD_DEPENDENCIES(${LATEX_FATHER_TARGET} ${safepdf_target}) + ELSE (LATEX_FATHER_TARGET) + ADD_CUSTOM_TARGET(${safepdf_target} ALL + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf + ) + ENDIF (LATEX_FATHER_TARGET) ELSE (LATEX_DEFAULT_SAFEPDF) ADD_CUSTOM_TARGET(${safepdf_target} ${CMAKE_COMMAND} -E chdir ${output_dir} -- GitLab