Mercurial > irccd
view doc/html/CMakeLists.txt @ 260:904ee87bc808
CMake: split documentation into several topic, closes #535
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 14 Sep 2016 13:36:06 +0200 |
parents | 6635b9187d71 |
children | 803e7e990b4b |
line wrap: on
line source
# # CMakeLists.txt -- CMake build system for irccd # # Copyright (c) 2013-2016 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) set( HTML_SOURCES ${html_SOURCE_DIR}/index.md ${html_SOURCE_DIR}/api/module/Irccd.File/index.md ${html_SOURCE_DIR}/api/module/Irccd.File/function/stat.md ${html_SOURCE_DIR}/api/module/Irccd.File/function/dirname.md ${html_SOURCE_DIR}/api/module/Irccd.File/function/exists.md ${html_SOURCE_DIR}/api/module/Irccd.File/function/remove.md ${html_SOURCE_DIR}/api/module/Irccd.File/function/basename.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/read.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/seek.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/stat.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/constructor.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/tell.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/dirname.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/readline.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/write.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/lines.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/close.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/remove.md ${html_SOURCE_DIR}/api/module/Irccd.File/method/basename.md ${html_SOURCE_DIR}/api/module/Irccd.System/index.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/exec.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/sleep.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/popen.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/env.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/home.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/uptime.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/version.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/usleep.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/name.md ${html_SOURCE_DIR}/api/module/Irccd.System/function/ticks.md ${html_SOURCE_DIR}/api/module/Irccd.Timer/index.md ${html_SOURCE_DIR}/api/module/Irccd.Timer/method/start.md ${html_SOURCE_DIR}/api/module/Irccd.Timer/method/constructor.md ${html_SOURCE_DIR}/api/module/Irccd.Timer/method/stop.md ${html_SOURCE_DIR}/api/module/Irccd/index.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/index.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/function/unload.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/function/load.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/function/reload.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/function/info.md ${html_SOURCE_DIR}/api/module/Irccd.Plugin/function/list.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/index.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/function/remove.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/function/mkdir.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/function/find.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/method/constructor.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/method/remove.md ${html_SOURCE_DIR}/api/module/Irccd.Directory/method/find.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/index.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isSpace.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isTitle.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isUpper.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isLetter.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isDigit.md ${html_SOURCE_DIR}/api/module/Irccd.Unicode/function/isLower.md ${html_SOURCE_DIR}/api/module/Irccd.Util/index.md ${html_SOURCE_DIR}/api/module/Irccd.Util/function/splithost.md ${html_SOURCE_DIR}/api/module/Irccd.Util/function/format.md ${html_SOURCE_DIR}/api/module/Irccd.Util/function/splituser.md ${html_SOURCE_DIR}/api/module/Irccd.Server/index.md ${html_SOURCE_DIR}/api/module/Irccd.Server/function/remove.md ${html_SOURCE_DIR}/api/module/Irccd.Server/function/list.md ${html_SOURCE_DIR}/api/module/Irccd.Server/function/find.md ${html_SOURCE_DIR}/api/module/Irccd.Server/function/add.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/me.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/cmode.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/mode.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/part.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/message.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/topic.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/whois.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/nick.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/constructor.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/join.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/invite.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/cnotice.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/info.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/notice.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/kick.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/toString.md ${html_SOURCE_DIR}/api/module/Irccd.Server/method/names.md ${html_SOURCE_DIR}/api/module/Irccd.Logger/index.md ${html_SOURCE_DIR}/api/module/Irccd.Logger/function/warning.md ${html_SOURCE_DIR}/api/module/Irccd.Logger/function/info.md ${html_SOURCE_DIR}/api/module/Irccd.Logger/function/debug.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/index.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/method/pause.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/method/elapsed.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/method/constructor.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/method/restart.md ${html_SOURCE_DIR}/api/module/Irccd.ElapsedTimer/method/reset.md ${html_SOURCE_DIR}/api/index.md ${html_SOURCE_DIR}/api/event/onWhois.md ${html_SOURCE_DIR}/api/event/onMessage.md ${html_SOURCE_DIR}/api/event/onPart.md ${html_SOURCE_DIR}/api/event/onQueryCommand.md ${html_SOURCE_DIR}/api/event/onMode.md ${html_SOURCE_DIR}/api/event/onNotice.md ${html_SOURCE_DIR}/api/event/onLoad.md ${html_SOURCE_DIR}/api/event/onInvite.md ${html_SOURCE_DIR}/api/event/onChannelNotice.md ${html_SOURCE_DIR}/api/event/onCommand.md ${html_SOURCE_DIR}/api/event/onKick.md ${html_SOURCE_DIR}/api/event/onReload.md ${html_SOURCE_DIR}/api/event/onChannelMode.md ${html_SOURCE_DIR}/api/event/onTopic.md ${html_SOURCE_DIR}/api/event/onConnect.md ${html_SOURCE_DIR}/api/event/onJoin.md ${html_SOURCE_DIR}/api/event/onMe.md ${html_SOURCE_DIR}/api/event/onNick.md ${html_SOURCE_DIR}/api/event/onNames.md ${html_SOURCE_DIR}/api/event/onUnload.md ${html_SOURCE_DIR}/api/event/onQuery.md ${html_SOURCE_DIR}/build/build-from-sources.md ${html_SOURCE_DIR}/build/build-options.md ${html_SOURCE_DIR}/dev/plugin-javascript-introduction.md ${html_SOURCE_DIR}/dev/socket-commands.md ${html_SOURCE_DIR}/dev/socket-protocol.md ${html_SOURCE_DIR}/irccd/configuring.md ${html_SOURCE_DIR}/irccdctl/commands.md ${html_SOURCE_DIR}/irccdctl/configuring.md ${html_SOURCE_DIR}/irccdctl/usage.md ${html_SOURCE_DIR}/misc/common-patterns-and-formatting.md ${html_SOURCE_DIR}/misc/configuration-syntax.md ) set( CSS ${html_SOURCE_DIR}/resources/css/bootstrap.min.css ${html_SOURCE_DIR}/resources/css/doc-guide.css ${html_SOURCE_DIR}/resources/css/doc.css ${html_SOURCE_DIR}/resources/css/tomorrow.css ) set( JS ${html_SOURCE_DIR}/resources/js/bootstrap.min.js ${html_SOURCE_DIR}/resources/js/highlight.js ${html_SOURCE_DIR}/resources/js/jquery.min.js ) # # For each files, define the following variables: # # - baseurl: relative path to get climb to the root documentation (e.g. ../../) # - inputbase: file name with it's base directory (e.g. api/event/onMessage.md) # - inputname: file name without it's directory (e.g. onMessage.md) # - outputbase: file name, directory and html extension # (e.g api/event/onMessage.html) # if (WITH_HTML) foreach (file ${HTML_SOURCES}) # 'baseurl': compute the tree from the file to this directory. get_filename_component(fulldirectory ${file} DIRECTORY) file(RELATIVE_PATH baseurl ${fulldirectory} ${html_SOURCE_DIR}) # 'inputname': relative to this source directory. file(RELATIVE_PATH inputbase ${html_SOURCE_DIR} ${file}) # 'outputbase': replace .md to .html as file extension. string(REGEX REPLACE "^(.*)\\.md$" "\\1.html" outputbase ${inputbase}) # If file is located at root, replace empty baseurl with "./". if (baseurl STREQUAL "") set(baseurl "./") endif () # Configure the file so it can resolve CMake variables. configure_file( ${file} ${html_BINARY_DIR}/${inputbase} ) # Create an output target to that file. pandoc( OUTPUT ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${outputbase} SOURCES ${html_BINARY_DIR}/${inputbase} DEPENDS ${file} TEMPLATE ${html_SOURCE_DIR}/resources/template.html VARIABLE baseurl:${baseurl} FROM markdown TO html5 STANDALONE TOC MAKE_DIRECTORY ) list(APPEND OUTPUTS ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${outputbase}) install( FILES ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${outputbase} COMPONENT docs DESTINATION ${WITH_DOCDIR} RENAME ${outputbase} ) endforeach () add_custom_target( html ALL SOURCES ${HTML_SOURCES} ${CSS} ${JS} ${OUTPUTS} ${html_SOURCE_DIR}/resources/template.html COMMAND ${CMAKE_COMMAND} -E make_directory ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/css COMMAND ${CMAKE_COMMAND} -E make_directory ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/js COMMAND ${CMAKE_COMMAND} -E copy ${CSS} ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/css COMMAND ${CMAKE_COMMAND} -E copy ${JS} ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/js ) # Install resources files. install( FILES ${CSS} COMPONENT docs DESTINATION ${WITH_DOCDIR}/css ) install( FILES ${JS} COMPONENT docs DESTINATION ${WITH_DOCDIR}/js ) endif ()