Mercurial > irccd
annotate cmake/packages/FindPandoc.cmake @ 883:3b9603c1a1b5 stable-2
misc: close stable-2 branch
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 20 Aug 2019 09:31:07 +0200 |
parents | 6635b9187d71 |
children | 8c44bbcbbab9 |
rev | line source |
---|---|
0 | 1 # FindPandoc |
2 # ---------- | |
3 # | |
4 # Find Pandoc executable, this modules defines: | |
5 # | |
6 # Pandoc_EXECUTABLE, where to find pandoc's executable | |
7 # Pandoc_FOUND, if it is found | |
8 # Pandoc_VERSION, the version | |
9 # | |
10 # This module also defines the following macros: | |
11 # | |
12 # pandoc( | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
13 # SOURCES file1 [file2 ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
14 # OUTPUT output |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
15 # [FROM format] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
16 # [TO format] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
17 # [TARGET target] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
18 # [DEPENDS dependency ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
19 # [ALL] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
20 # [TOC] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
21 # [STANDALONE] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
22 # [MAKE_DIRECTORY] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
23 # [TEMPLATE file] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
24 # [FILTER filter] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
25 # [HEADER header ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
26 # [FOOTER footer ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
27 # [BODY body ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
28 # [VARIABLE var ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
29 # [METADATA meta ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
30 # [ARGS argument ...] |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
31 # [WORKING_DIRECTORY directory] |
0 | 32 # ) |
33 # | |
34 # The sources files are listed in the parameter SOURCES, all files are passed | |
35 # in the same order they are passed to that variable. | |
36 # | |
37 # The OUTPUT file is set with OUTPUT. It is generated only if one of the file | |
38 # has changed. | |
39 # | |
40 # The FROM (-f) and TO (-t) arguments specify respectively the source and | |
41 # destinations formats. | |
42 # | |
43 # If the parameter TARGET is set, then a target named `target` will be added | |
44 # with the OUTPUT file as the dependency but not listed as sources files. | |
45 # But the SOURCES files will be added as the target sources in the IDE. | |
46 # | |
47 # Optional dependencies can be added to the output command (not the target) with | |
48 # the DEPENDS parameter. | |
49 # | |
50 # If ALL is set and TARGET is also set, the target will be added to the ALL_BUILD. | |
51 # | |
52 # If TOC (--toc) is specified, a table of content will be automatically created. | |
53 # | |
54 # If STANDALONE (-s) is set, the compilation will assume that it is standalone | |
55 # and adds the necessary of the output format. | |
56 # | |
57 # Optional MAKE_DIRECTORY can be set to create the output directory before | |
58 # pandoc processes the file (recommended). | |
59 # | |
60 # The TEMPLATE parameter can be used to specify the formate template file. | |
61 # | |
62 # You can set a filter with the parameter FILTER. The filter will be added to | |
63 # the output dependencies so you can safely use CMake's targets. | |
64 # | |
65 # The HEADER (-H), FOOTER (-A) and BODY (-B) are copied verbatim before, just | |
66 # after and after the body respectively. They can be set more than once. | |
67 # | |
68 # You can pass variables (-V) and metadata (-M) to the parameters VARIABLE | |
69 # and METADATA, be sure to pass the same syntax as pandoc. (e.g VARIABLE foo=1) | |
70 # | |
71 # ARGS is an optional list of additional arguments to pass to pandoc. | |
72 # | |
73 # The parameter WORKING_DIRECTORY can be set to change the directory when pandoc | |
74 # is invoked. | |
75 # | |
76 | |
77 find_program( | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
78 Pandoc_EXECUTABLE |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
79 NAMES pandoc |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
80 DOC "Pandoc executable" |
0 | 81 ) |
82 | |
83 include(FindPackageHandleStandardArgs) | |
84 include(CMakeParseArguments) | |
85 | |
86 # Extract the version | |
87 if (Pandoc_EXECUTABLE) | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
88 execute_process( |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
89 COMMAND pandoc --version |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
90 OUTPUT_VARIABLE _pandoc_version_tmp |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
91 ) |
0 | 92 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
93 string(REGEX REPLACE "^pandoc ([0-9]*\\.[0-9]*\\.[0-9]*).*$" "\\1" Pandoc_VERSION ${_pandoc_version_tmp}) |
0 | 94 endif () |
95 | |
96 find_package_handle_standard_args( | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
97 Pandoc |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
98 FOUND_VAR Pandoc_FOUND |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
99 VERSION_VAR Pandoc_VERSION |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
100 REQUIRED_VARS Pandoc_EXECUTABLE |
0 | 101 ) |
102 | |
103 if (Pandoc_FOUND) | |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
104 function(pandoc) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
105 set(options MAKE_DIRECTORY STANDALONE TOC) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
106 set(oneValueArgs FILTER FROM TARGET TEMPLATE TO OUTPUT WORKING_DIRECTORY) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
107 set(multiValueArgs ARGS FOOTER HEADER METADATA SOURCES VARIABLE DEPENDS) |
0 | 108 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
109 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
110 # The following variables will be set in that scope: |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
111 # _pandoc_arguments List of all arguments that will passed to pandoc invocation. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
112 # _pandoc_depends List of all dependencies attached to the add_custom_command. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
113 # _pandoc_mkdir The mkdir command if MAKE_DIRECTORY is set |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
114 # _pandoc_output_base The base output directory |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
115 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
116 cmake_parse_arguments(PANDOC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
0 | 117 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
118 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
119 # Output and sources are mandatory |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
120 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
121 if (NOT PANDOC_OUTPUT) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
122 message(FATAL_ERROR "Please define OUTPUT") |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
123 elseif (NOT PANDOC_SOURCES) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
124 message(FATAL_ERROR "Please defines SOURCES") |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
125 endif () |
0 | 126 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
127 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
128 # Handle the filter with care. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
129 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
130 # 1. If it is a target, depend on it and use a generator |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
131 # expression to get its full path on the disk. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
132 # 2. If it is not a target, just use the user provided path. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
133 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
134 if (PANDOC_FILTER) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
135 # If it is a target, add a dependency so that it is built |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
136 if (TARGET ${PANDOC_FILTER}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
137 list(APPEND _pandoc_arguments --filter "$<TARGET_FILE:${PANDOC_FILTER}>") |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
138 list(APPEND _pandoc_depends ${PANDOC_FILTER}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
139 else () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
140 list(APPEND _pandoc_arguments --filter ${PANDOC_FILTER}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
141 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
142 endif () |
0 | 143 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
144 if (PANDOC_TOC) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
145 list(APPEND _pandoc_arguments --toc) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
146 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
147 if (PANDOC_STANDALONE) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
148 list(APPEND _pandoc_arguments -s) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
149 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
150 if (PANDOC_FROM) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
151 list(APPEND _pandoc_arguments -f ${PANDOC_FROM}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
152 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
153 if (PANDOC_TO) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
154 list(APPEND _pandoc_arguments -t ${PANDOC_TO}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
155 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
156 if (PANDOC_TEMPLATE) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
157 list(APPEND _pandoc_arguments --template ${PANDOC_TEMPLATE}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
158 list(APPEND _pandoc_depends ${PANDOC_TEMPLATE}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
159 endif () |
0 | 160 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
161 # Header, footers and body |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
162 foreach (h ${PANDOC_HEADER}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
163 list(APPEND _pandoc_arguments -H ${h}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
164 list(APPEND _pandoc_depends ${h}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
165 endforeach () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
166 foreach (b ${PANDOC_BODY}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
167 list(APPEND _pandoc_arguments -B ${b}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
168 list(APPEND _pandoc_depends ${b}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
169 endforeach () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
170 foreach (f ${PANDOC_FOOTER}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
171 list(APPEND _pandoc_arguments -A ${f}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
172 list(APPEND _pandoc_depends ${f}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
173 endforeach () |
0 | 174 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
175 # Variables and metadata |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
176 foreach (var ${PANDOC_VARIABLE}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
177 list(APPEND _pandoc_arguments -V ${var}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
178 endforeach () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
179 foreach (meta ${PANDOC_METADATA}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
180 list(APPEND _pandoc_arguments -M ${meta}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
181 endforeach () |
0 | 182 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
183 # Optional list of arguments |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
184 foreach (arg ${PANDOC_ARGS}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
185 list(APPEND _pandoc_arguments ${arg}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
186 endforeach () |
0 | 187 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
188 # Output and sources |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
189 list(APPEND _pandoc_arguments -o ${PANDOC_OUTPUT}) |
0 | 190 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
191 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
192 # The following variables are set within the loop: |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
193 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
194 # _pandoc_input The absolute path to the input file. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
195 # _pandoc_output_base The base output directory. |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
196 # |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
197 foreach (s ${PANDOC_SOURCES}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
198 get_filename_component(_pandoc_input ${s} ABSOLUTE) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
199 get_filename_component(_pandoc_output_base ${PANDOC_OUTPUT} DIRECTORY) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
200 list(APPEND _pandoc_depends ${_pandoc_input}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
201 list(APPEND _pandoc_arguments ${_pandoc_input}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
202 endforeach () |
0 | 203 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
204 # Create the output directory if requested |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
205 if (PANDOC_MAKE_DIRECTORY) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
206 set(_pandoc_mkdir ${CMAKE_COMMAND} -E make_directory ${_pandoc_output_base}) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
207 endif () |
0 | 208 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
209 add_custom_command( |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
210 OUTPUT ${PANDOC_OUTPUT} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
211 COMMAND ${_pandoc_mkdir} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
212 COMMAND ${Pandoc_EXECUTABLE} ${_pandoc_arguments} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
213 DEPENDS ${_pandoc_depends} ${PANDOC_DEPENDS} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
214 WORKING_DIRECTORY ${PANDOC_WORKING_DIRECTORY} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
215 VERBATIM |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
216 ) |
0 | 217 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
218 if (PANDOC_TARGET) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
219 add_custom_target( |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
220 ${PANDOC_TARGET} ${PANDOC_ALL} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
221 SOURCES ${_pandoc_depends} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
222 DEPENDS ${PANDOC_OUTPUT} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
223 WORKING_DIRECTORY ${PANDOC_WORKING_DIRECTORY} |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
224 ) |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
225 endif () |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
226 endfunction() |
0 | 227 endif () |
228 | |
229 mark_as_advanced(Pandoc_EXECUTABLE) |