Mercurial > malikania
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/html/CMakeLists.txt Tue Nov 20 12:14:00 2018 +0100 @@ -0,0 +1,83 @@ +# +# CMakeLists.txt -- CMake build system for malikania +# +# Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +project(html) + +option(MALIKANIA_WITH_HTML "Enable HTML documentation" On) + +find_package(marker) + +if (marker_FOUND) + if (MALIKANIA_WITH_HTML) + malikania_setg(MALIKANIA_HAS_HTML On) + malikania_setg(MALIKANIA_HAS_HTML_MSG "Yes") + else () + malikania_setg(MALIKANIA_HAS_HTML_MSG "No (disabled by user)") + endif () +else () + malikania_setg(MALIKANIA_HAS_HTML_MSG "No (marker not found)") +endif () + +if (NOT MALIKANIA_HAS_HTML) + return () +endif () + +foreach (file ${DOC_SOURCES}) + get_filename_component(dirname ${file} DIRECTORY) + get_filename_component(basename ${file} NAME_WE) + + if (NOT dirname OR dirname STREQUAL "") + set(dirname ".") + endif () + + set(input ${doc_SOURCE_DIR}/src/${file}) + set(output ${html_BINARY_DIR}/${dirname}/${basename}.html) + set(template ${html_SOURCE_DIR}/template.html) + + # Determine baseurl. + file(RELATIVE_PATH baseurl ${html_BINARY_DIR}/${dirname} ${html_BINARY_DIR}) + + if (NOT baseurl OR baseurl STREQUAL "") + set(baseurl "./") + endif () + + add_custom_command( + OUTPUT ${output} + COMMAND + ${CMAKE_COMMAND} -E make_directory ${html_BINARY_DIR}/${dirname} + COMMAND + $<TARGET_FILE:marker::marker> + -t ${template} + -v baseurl=${baseurl} + $<TARGET_FILE:marker::libmarker-bulma> + ${output} + ${input} + DEPENDS ${input} ${template} + ) + + list(APPEND outputs ${output}) +endforeach () + +add_custom_target( + html ALL + COMMAND + ${CMAKE_COMMAND} -E copy_directory ${html_SOURCE_DIR}/css ${html_BINARY_DIR}/css + COMMAND + ${CMAKE_COMMAND} -E copy_directory ${html_SOURCE_DIR}/js ${html_BINARY_DIR}/js + SOURCES ${outputs} +)