File: postprocess-pdflatex.cmake.in

package info (click to toggle)
openorienteering-mapper 0.9.5-3.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 61,788 kB
  • sloc: cpp: 112,248; ansic: 1,448; sh: 408; java: 240; xml: 97; sed: 64; makefile: 28
file content (35 lines) | stat: -rw-r--r-- 1,508 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#
#    Copyright 2017 Kai Pastor
#    
#    This file is part of OpenOrienteering.
# 
#    OpenOrienteering is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
# 
#    OpenOrienteering is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
# 
#    You should have received a copy of the GNU General Public License
#    along with OpenOrienteering.  If not, see <http://www.gnu.org/licenses/>.

file(GLOB input_files RELATIVE "@CMAKE_CURRENT_BINARY_DIR@" "@CMAKE_CURRENT_BINARY_DIR@/pdflatex/*.tex")
foreach(file ${input_files})
	file(READ "@CMAKE_CURRENT_BINARY_DIR@/${file}" input)
	
	# Turn internal typewriter-face hrefs into regular PDF hyperlinks
	string(REGEX REPLACE "\\\\href{#([^}]*)}{\\\\tt ([^}]*)}" "\\\\hyperlink{\\1}{\\2}" output "${input}")
	
	# Fix anchors in URLs, cf. https://suchideas.com/articles/computing/latex/errors/
	string(REGEX REPLACE "(\\\\href{[^}]*[^\\\\])#" "\\1\\\\#" output "${output}")
	
	string(MD5 input_md5 "${input}")
	string(MD5 output_md5 "${output}")
	if(NOT "${output_md5}" STREQUAL "${input_md5}")
		message(STATUS "Updating ${file}")
		file(WRITE "${file}" "${output}")
	endif()
endforeach()