77 lines
3.1 KiB
CMake
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)
|
|
|