minetest-mapper-cpp/doc/CMakeLists.txt

77 lines
3.1 KiB
CMake

project(minetestmapper CXX)
cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0003 NEW)
if(NOT DEFINED USE_RST2HTML)
set(USE_RST2HTML -1)
endif(NOT DEFINED USE_RST2HTML)
SET(RST2HTML_FLAGS --exit-status=2)
SET(REQUIRE_HTML_DOCUMENTATION_DOC "Convert rst documents to html or fail")
SET(DISABLE_HTML_DOCUMENTATION_DOC "Don't convert rst documents to html")
OPTION(REQUIRE_HTML_DOCUMENTATION ${REQUIRE_HTML_DOCUMENTATION_DOC} False)
OPTION(DISABLE_HTML_DOCUMENTATION ${DISABLE_HTML_DOCUMENTATION_DOC} False)
# Find rst to html converter
if(REQUIRE_HTML_DOCUMENTATION AND DISABLE_HTML_DOCUMENTATION)
message(WARNING "REQUIRE_HTML_DOCUMENTATION and DISABLE_HTML_DOCUMENTATION are both enabled. Reinitializing rst to html conversion.")
set(REQUIRE_HTML_DOCUMENTATION False CACHE BOOL ${REQUIRE_HTML_DOCUMENTATION_DOC} FORCE)
set(DISABLE_HTML_DOCUMENTATION False CACHE BOOL ${DISABLE_HTML_DOCUMENTATION_DOC} FORCE)
set(USE_RST2HTML -1)
endif(REQUIRE_HTML_DOCUMENTATION AND DISABLE_HTML_DOCUMENTATION)
find_package(Docutils)
if(DOCUTILS_FOUND)
message(STATUS "Python docutils found (rst2html: ${RST2HTML_EXECUTABLE})")
else(DOCUTILS_FOUND)
message(STATUS "Python docutils not found")
endif(DOCUTILS_FOUND)
if(REQUIRE_HTML_DOCUMENTATION)
set(USE_RST2HTML 1)
message(STATUS "Conversion of documentation to html enabled as requested")
elseif(DISABLE_HTML_DOCUMENTATION)
set(USE_RST2HTML 0)
message(STATUS "Conversion of documentation to html disabled as requested")
elseif(USE_RST2HTML EQUAL -1)
# First time, and no preference specified: choose depending
# on availability of rst2html
if (DOCUTILS_FOUND)
set(USE_RST2HTML 1)
message(STATUS "Conversion of documentation to html enabled (because python docutils found)")
else (DOCUTILS_FOUND)
set(USE_RST2HTML 0)
message(STATUS "Conversion of documentation to html disabled (because python docutils not found)")
endif (DOCUTILS_FOUND)
elseif(USE_RST2HTML EQUAL 0)
if (DOCUTILS_FOUND)
set(USE_RST2HTML 1)
message(STATUS "Conversion of documentation to html enabled (because python docutils has become available)")
else (DOCUTILS_FOUND)
message(STATUS "Conversion of documentation to html disabled (because python docutils still not found)")
endif (DOCUTILS_FOUND)
elseif(USE_RST2HTML EQUAL 1)
message(STATUS "Conversion of documentation to html enabled (because enabled previously)")
endif(REQUIRE_HTML_DOCUMENTATION)
if(USE_RST2HTML AND NOT DOCUTILS_FOUND)
message(SEND_ERROR "Conversion of documentation to html is enabled, but python docutils was not found.")
endif(USE_RST2HTML AND NOT DOCUTILS_FOUND)
# Save USE_RST2HTML for next invocation
set(USE_RST2HTML ${USE_RST2HTML} CACHE INTERNAL "Internal use - do not modify")
file(GLOB DOC_RST_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *.rst)
string(REPLACE ".rst" ".html" DOC_HTML_FILES "${DOC_RST_FILES}")
if(USE_RST2HTML)
add_custom_target(htmldoc ALL DEPENDS ${DOC_HTML_FILES})
elseif(NOT USE_RST2HTML AND DOCUTILS_FOUND)
add_custom_target(htmldoc DEPENDS ${DOC_HTML_FILES})
endif(USE_RST2HTML)
if(USE_RST2HTML OR DOCUTILS_FOUND)
RST2HTML(${DOC_RST_FILES})
endif(USE_RST2HTML OR DOCUTILS_FOUND)