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