function(add_tikz_target TIKZ_FILE TEMPLATE) get_filename_component(basename ${TIKZ_FILE} NAME_WE) set(pdf_file "${basename}.pdf") set(svg_file "${basename}.svg") add_custom_command(OUTPUT ${pdf_file} COMMAND echo "'\\def\\\\tikzfile{${CMAKE_CURRENT_SOURCE_DIR}/${TIKZ_FILE}}'" > tmp.tex COMMAND echo "'\\input{${CMAKE_CURRENT_SOURCE_DIR}/template-tex.tex}}'" >> tmp.tex COMMAND pdflatex -jobname ${basename} -file-line-error -interaction nonstopmode tmp.tex >/dev/null COMMAND cmake -E remove tmp.tex MAIN_DEPENDENCY ${TIKZ_FILE} COMMENT "Generating ${pdf_file}" ) add_custom_command(OUTPUT ${svg_file} COMMAND pdf2svg ${pdf_file} ${svg_file} COMMAND cmake -E copy_if_different ${svg_file} ${CMAKE_CURRENT_SOURCE_DIR}/${svg_file} MAIN_DEPENDENCY ${pdf_file} COMMENT "Generating ${svg_file}" ) endfunction() add_tikz_target(flow.tikz template-qtikz.tex) add_custom_target(doc DEPENDS flow.svg)