1#
2#    Copyright 2017 Kai Pastor
3#
4#    This file is part of OpenOrienteering.
5#
6#    OpenOrienteering is free software: you can redistribute it and/or modify
7#    it under the terms of the GNU General Public License as published by
8#    the Free Software Foundation, either version 3 of the License, or
9#    (at your option) any later version.
10#
11#    OpenOrienteering is distributed in the hope that it will be useful,
12#    but WITHOUT ANY WARRANTY; without even the implied warranty of
13#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#    GNU General Public License for more details.
15#
16#    You should have received a copy of the GNU General Public License
17#    along with OpenOrienteering.  If not, see <http://www.gnu.org/licenses/>.
18
19file(GLOB input_files RELATIVE "@CMAKE_CURRENT_BINARY_DIR@" "@CMAKE_CURRENT_BINARY_DIR@/pdflatex/*.tex")
20foreach(file ${input_files})
21	file(READ "@CMAKE_CURRENT_BINARY_DIR@/${file}" input)
22
23	# Turn internal typewriter-face hrefs into regular PDF hyperlinks
24	string(REGEX REPLACE "\\\\href{#([^}]*)}{\\\\tt ([^}]*)}" "\\\\hyperlink{\\1}{\\2}" output "${input}")
25
26	# Fix anchors in URLs, cf. https://suchideas.com/articles/computing/latex/errors/
27	string(REGEX REPLACE "(\\\\href{[^}]*[^\\\\])#" "\\1\\\\#" output "${output}")
28
29	string(MD5 input_md5 "${input}")
30	string(MD5 output_md5 "${output}")
31	if(NOT "${output_md5}" STREQUAL "${input_md5}")
32		message(STATUS "Updating ${file}")
33		file(WRITE "${file}" "${output}")
34	endif()
35endforeach()
36