Mercurial > malikania
annotate doc/html/CMakeLists.txt @ 196:5b0f7ffab962
doc: initial html support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 20 Nov 2018 12:14:00 +0100 |
parents | |
children | b203bde850cb |
rev | line source |
---|---|
196
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # CMakeLists.txt -- CMake build system for malikania |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 # Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 project(html) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 option(MALIKANIA_WITH_HTML "Enable HTML documentation" On) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 find_package(marker) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 if (marker_FOUND) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 if (MALIKANIA_WITH_HTML) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 malikania_setg(MALIKANIA_HAS_HTML On) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 malikania_setg(MALIKANIA_HAS_HTML_MSG "Yes") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 else () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 malikania_setg(MALIKANIA_HAS_HTML_MSG "No (disabled by user)") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 endif () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 else () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 malikania_setg(MALIKANIA_HAS_HTML_MSG "No (marker not found)") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 endif () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 if (NOT MALIKANIA_HAS_HTML) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 return () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 endif () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 foreach (file ${DOC_SOURCES}) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 get_filename_component(dirname ${file} DIRECTORY) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 get_filename_component(basename ${file} NAME_WE) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 if (NOT dirname OR dirname STREQUAL "") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 set(dirname ".") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 endif () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 set(input ${doc_SOURCE_DIR}/src/${file}) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 set(output ${html_BINARY_DIR}/${dirname}/${basename}.html) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 set(template ${html_SOURCE_DIR}/template.html) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 # Determine baseurl. |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 file(RELATIVE_PATH baseurl ${html_BINARY_DIR}/${dirname} ${html_BINARY_DIR}) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 if (NOT baseurl OR baseurl STREQUAL "") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 set(baseurl "./") |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 endif () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 add_custom_command( |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 OUTPUT ${output} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 COMMAND |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 ${CMAKE_COMMAND} -E make_directory ${html_BINARY_DIR}/${dirname} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 COMMAND |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 $<TARGET_FILE:marker::marker> |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 -t ${template} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 -v baseurl=${baseurl} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 $<TARGET_FILE:marker::libmarker-bulma> |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 ${output} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 ${input} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 DEPENDS ${input} ${template} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 ) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 list(APPEND outputs ${output}) |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 endforeach () |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 add_custom_target( |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 html ALL |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 COMMAND |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 ${CMAKE_COMMAND} -E copy_directory ${html_SOURCE_DIR}/css ${html_BINARY_DIR}/css |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 COMMAND |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 ${CMAKE_COMMAND} -E copy_directory ${html_SOURCE_DIR}/js ${html_BINARY_DIR}/js |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 SOURCES ${outputs} |
5b0f7ffab962
doc: initial html support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 ) |