view doc/html/CMakeLists.txt @ 215:268b66d72ec0 default tip @

misc: remove Javascript bindings, closes #2402
author David Demelier <markand@malikania.fr>
date Thu, 10 Oct 2019 13:52:57 +0200
parents 10687519f46e
children
line wrap: on
line source

#
# 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 QUIET)

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 Off)
		malikania_setg(MALIKANIA_HAS_HTML_MSG "No (disabled by user)")
	endif ()
else ()
	malikania_setg(MALIKANIA_HAS_HTML Off)
	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 title=${basename}
			-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}
)