Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -219,15 +219,11 @@ include(generate_docs)

set(MKHTML_PY ${CMAKE_BINARY_DIR}/utils/mkhtml.py)
set(THUMBNAILS_PY ${CMAKE_BINARY_DIR}/utils/thumbnails.py)
set(HTML2MAN VERSION_NUMBER=${GRASS_VERSION_NUMBER} ${PYTHON_EXECUTABLE}
${OUTDIR}/${GRASS_INSTALL_UTILSDIR}/g.html2man.py)
set(HTML2MAN ${CMAKE_BINARY_DIR}/utils/g.html2man.py)

set(env_path "$ENV{PATH}")

if(WIN32)
set(NULL_DEVICE nul)
set(SEARCH_COMMAND findstr /v)
set(HTML_SEARCH_STR "\"</body>\|</html>\|</div> <!-- end container -->\"")
set(sep "\;")
string(REPLACE ";" "${sep}" env_path "${env_path}")
set(grass_env_command
Expand All @@ -241,9 +237,6 @@ if(WIN32)
"VERSION_NUMBER=\"${GRASS_VERSION_NUMBER}\""
"VERSION_DATE=\"${GRASS_VERSION_DATE}\"")
else()
set(NULL_DEVICE /dev/null)
set(SEARCH_COMMAND grep -v)
set(HTML_SEARCH_STR "\'</body>\|</html>\|</div> <!-- end container -->\'")
set(sep ":")
set(grass_env_command
${CMAKE_COMMAND} -E env "PATH=${BIN_DIR}${sep}${SCRIPTS_DIR}${sep}${env_path}"
Expand Down Expand Up @@ -300,6 +293,8 @@ endif()
if(WITH_DOCS)
add_subdirectory(doc)
add_subdirectory(man)
install(DIRECTORY ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/ DESTINATION ${GRASS_INSTALL_DOCDIR})
install(DIRECTORY ${OUTDIR}/${GRASS_INSTALL_MANDIR}/ DESTINATION ${GRASS_INSTALL_MANDIR})
endif()

add_custom_target(
Expand Down
19 changes: 0 additions & 19 deletions cmake/generate_man_pages.cmake

This file was deleted.

4 changes: 2 additions & 2 deletions cmake/modules/GRASSInstallDirs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ if(WITH_FHS)
"${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME_LOWER}-doc")
set(GRASS_INSTALL_DEVDOCDIR
"${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME_LOWER}-dev-doc")
set(GRASS_INSTALL_MANDIR "${CMAKE_INSTALL_MANDIR}")
set(GRASS_INSTALL_MANDIR "${CMAKE_INSTALL_MANDIR}/man1")
set(GRASS_INSTALL_MKDOCSDIR
"${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME_LOWER}-mkdocs")
set(GRASS_INSTALL_DEMODIR "${GRASS_INSTALL_SHAREDIR}/demolocation")
Expand All @@ -46,7 +46,7 @@ else()
set(GRASS_INSTALL_INCLUDEDIR "${GISBASE_DIR}/include")
set(GRASS_INSTALL_DOCDIR "${GISBASE_DIR}/docs/html")
set(GRASS_INSTALL_DEVDOCDIR "${GISBASE_DIR}/html")
set(GRASS_INSTALL_MANDIR "${GISBASE_DIR}/docs/man")
set(GRASS_INSTALL_MANDIR "${GISBASE_DIR}/docs/man/man1")
set(GRASS_INSTALL_MKDOCSDIR "${GISBASE_DIR}/docs/mkdocs")
set(GRASS_INSTALL_DEMODIR "${GISBASE_DIR}/demolocation")
set(GRASS_INSTALL_MISCDIR "${GISBASE_DIR}")
Expand Down
51 changes: 15 additions & 36 deletions cmake/modules/build_gui_in_subdir.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ function(build_gui_in_subdir dir_name)
"${OUTDIR}/${GRASS_INSTALL_SCRIPTDIR}/${G_TARGET_NAME}${SCRIPT_EXT}")

if(UNIX)
add_custom_command(
OUTPUT ${OUT_SCRIPT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_SCRIPT_FILE} ${OUT_SCRIPT_FILE}
COMMAND /bin/chmod 755 ${OUT_SCRIPT_FILE}
DEPENDS g.parser ${SRC_SCRIPT_FILE})
add_custom_command(
OUTPUT ${OUT_SCRIPT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_SCRIPT_FILE} ${OUT_SCRIPT_FILE}
COMMAND /bin/chmod 755 ${OUT_SCRIPT_FILE}
DEPENDS g.parser ${SRC_SCRIPT_FILE})
else()
add_custom_command(
OUTPUT ${OUT_SCRIPT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_SCRIPT_FILE} ${OUT_SCRIPT_FILE}
DEPENDS g.parser ${SRC_SCRIPT_FILE})
add_custom_command(
OUTPUT ${OUT_SCRIPT_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_SCRIPT_FILE} ${OUT_SCRIPT_FILE}
DEPENDS g.parser ${SRC_SCRIPT_FILE})
endif()

if(WITH_DOCS)
Expand All @@ -81,40 +81,19 @@ function(build_gui_in_subdir dir_name)
endif()
endif()

set(TMP_HTML_FILE
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${G_TARGET_NAME}.tmp.html)
set(OUT_HTML_FILE ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_TARGET_NAME}.html)
set(GUI_HTML_FILE ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/wxGUI.${G_NAME}.html)
set(out_html_file ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_TARGET_NAME}.html)


add_custom_command(
OUTPUT ${OUT_HTML_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${G_SRC_DIR}/${G_TARGET_NAME}.html
${CMAKE_CURRENT_BINARY_DIR}/${G_TARGET_NAME}.html
COMMAND
${grass_env_command} ${PYTHON_EXECUTABLE}
${OUTDIR}/${GRASS_INSTALL_SCRIPTDIR}/${G_TARGET_NAME}${SCRIPT_EXT}
--html-description < ${NULL_DEVICE} | ${SEARCH_COMMAND}
${HTML_SEARCH_STR} > ${TMP_HTML_FILE}
COMMAND ${grass_env_command} ${PYTHON_EXECUTABLE} ${MKHTML_PY}
${G_TARGET_NAME} ${GRASS_VERSION_DATE} > ${OUT_HTML_FILE}
COMMAND ${copy_images_command}
COMMAND ${CMAKE_COMMAND} -E remove ${TMP_HTML_FILE}
${CMAKE_CURRENT_BINARY_DIR}/${G_TARGET_NAME}.html
COMMAND ${grass_env_command} ${PYTHON_EXECUTABLE} ${MKHTML_PY}
${G_TARGET_NAME} ${GRASS_VERSION_DATE} > ${GUI_HTML_FILE}
COMMENT "Creating ${OUT_HTML_FILE} (and ${GUI_HTML_FILE}))"
generate_docs(${G_NAME}
OUTPUT ${out_html_file}
GUI_TARGET_NAME ${G_TARGET_NAME}
SOURCEDIR ${G_SRC_DIR}
DEPENDS ${OUT_SCRIPT_FILE} GUI_WXPYTHON LIB_PYTHON)


install(FILES ${OUT_HTML_FILE} ${GUI_HTML_FILE}
DESTINATION ${GRASS_INSTALL_DOCDIR})

endif() # WITH_DOCS

add_custom_target(
${G_TARGET_NAME} DEPENDS ${GUI_STAMP_FILE} ${OUT_SCRIPT_FILE}
${OUT_HTML_FILE})
${out_html_file})

set(modules_list
"${G_TARGET_NAME};${modules_list}"
Expand Down
62 changes: 12 additions & 50 deletions cmake/modules/build_module.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ function(build_module)

generate_export_header(${G_NAME} STATIC_DEFINE "STATIC_BUILD"
EXPORT_FILE_NAME ${export_file_name})
add_dependencies(${G_NAME} python_doc_utils)
endif()

if(G_HTML_FILE_NAME)
Expand Down Expand Up @@ -214,76 +215,37 @@ function(build_module)
endif()
endforeach()

# To use this property later in build_docs
set(PGM_EXT "")
if(WIN32)
if(G_EXE)
set(PGM_EXT ".exe")
endif()
endif()

set(G_HTML_FILE_NAME "${HTML_FILE_NAME}.html")
set(html_file_search ${G_SRC_DIR}/${G_HTML_FILE_NAME})
if(NOT G_NO_DOCS AND NOT EXISTS ${html_file_search})
set(G_NO_DOCS YES)
endif()

if(WITH_DOCS AND NOT G_NO_DOCS)
set(HTML_FILE)

set(html_file)
if(EXISTS ${html_file_search})
set(HTML_FILE ${html_file_search})
install(FILES ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_HTML_FILE_NAME}
DESTINATION ${GRASS_INSTALL_DOCDIR})
set(html_file ${html_file_search})
endif()

if(NOT HTML_FILE)
if(NOT html_file)
return()
endif()

get_filename_component(HTML_FILE_NAME ${HTML_FILE} NAME)
get_filename_component(PGM_SOURCE_DIR ${HTML_FILE} PATH)
get_filename_component(HTML_FILE_NAME ${html_file} NAME)
get_filename_component(PGM_SOURCE_DIR ${html_file} PATH)

string(REPLACE ".html" "" PGM_NAME "${HTML_FILE_NAME}")
string(REPLACE ".html" ".tmp.html" TMP_HTML_NAME ${HTML_FILE_NAME})
set(TMP_HTML_FILE ${CMAKE_CURRENT_BINARY_DIR}/${TMP_HTML_NAME})
set(OUT_HTML_FILE ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${HTML_FILE_NAME})

set(PGM_EXT "")
if(WIN32)
set(PGM_EXT ".exe")
endif()

if(RUN_HTML_DESCR)
set(html_descr_command
${G_NAME}${PGM_EXT} --html-description < ${NULL_DEVICE} |
${SEARCH_COMMAND} ${HTML_SEARCH_STR})
else()
set(html_descr_command ${CMAKE_COMMAND} -E echo)
set(HTML_DESCR "HTML_DESCR")
endif()

file(
GLOB IMG_FILES
LIST_DIRECTORIES FALSE
${G_SRC_DIR}/*.png ${G_SRC_DIR}/*.jpg)
if(IMG_FILES)
set(copy_images_command ${CMAKE_COMMAND} -E copy ${IMG_FILES}
${OUTDIR}/${GRASS_INSTALL_DOCDIR})
install(FILES ${IMG_FILES} DESTINATION ${GRASS_INSTALL_DOCDIR})
endif()

add_custom_command(
generate_docs(${PGM_NAME}
TARGET ${G_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${G_SRC_DIR}/${G_HTML_FILE_NAME}
${CMAKE_CURRENT_BINARY_DIR}/${G_HTML_FILE_NAME}
COMMAND ${grass_env_command} ${html_descr_command} > ${TMP_HTML_FILE}
COMMAND ${grass_env_command} ${PYTHON_EXECUTABLE} ${MKHTML_PY} ${PGM_NAME}
> ${OUT_HTML_FILE}
COMMAND ${copy_images_command}
COMMAND ${CMAKE_COMMAND} -E remove ${TMP_HTML_FILE}
${CMAKE_CURRENT_BINARY_DIR}/${G_HTML_FILE_NAME}
COMMENT "Creating ${OUT_HTML_FILE}")
install(FILES ${OUT_HTML_FILE} DESTINATION ${GRASS_INSTALL_DOCDIR})
SOURCEDIR ${PGM_SOURCE_DIR}
${HTML_DESCR})

endif() # WITH_DOCS

foreach(test_SOURCE ${G_TEST_SOURCES})
Expand Down
51 changes: 11 additions & 40 deletions cmake/modules/build_script_in_subdir.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,18 @@ function(build_script_in_subdir dir_name)
return()
endif()

set(SCRIPT_EXT "")
set(script_ext "")
if(WIN32)
set(SCRIPT_EXT ".py")
set(script_ext ".py")
endif()

set(HTML_FILE ${G_SRC_DIR}/${G_NAME}.html)

configure_file(
${G_SRC_DIR}/${G_NAME}.py
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${G_NAME}${SCRIPT_EXT} COPYONLY)
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${G_NAME}${script_ext} COPYONLY)
file(
COPY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${G_NAME}${SCRIPT_EXT}
COPY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${G_NAME}${script_ext}
DESTINATION ${OUTDIR}/${G_DEST_DIR}
FILE_PERMISSIONS
OWNER_READ
Expand Down Expand Up @@ -90,46 +90,17 @@ function(build_script_in_subdir dir_name)
install(FILES ${IMG_FILES} DESTINATION ${GRASS_INSTALL_DOCDIR})
endif()

set(HTML_FILE ${G_SRC_DIR}/${G_NAME}.html)
if(EXISTS ${HTML_FILE})
install(FILES ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_NAME}.html
DESTINATION ${GRASS_INSTALL_DOCDIR})
else()
set(HTML_FILE)
file(GLOB html_files ${G_SRC_DIR}/*.html)
if(html_files)
message(
FATAL_ERROR
"${html_file} does not exists. ${G_SRC_DIR} \n ${OUTDIR}/${G_DEST_DIR}| ${G_NAME}"
)
endif()
endif()
set(out_html_file ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_NAME}.html)

set(TMP_HTML_FILE ${CMAKE_CURRENT_BINARY_DIR}/${G_NAME}.tmp.html)
set(OUT_HTML_FILE ${OUTDIR}/${GRASS_INSTALL_DOCDIR}/${G_NAME}.html)

add_custom_command(
OUTPUT ${OUT_HTML_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${G_SRC_DIR}/${G_NAME}.html
${CMAKE_CURRENT_BINARY_DIR}/${G_NAME}.html
COMMAND
${grass_env_command} ${PYTHON_EXECUTABLE}
${OUTDIR}/${G_DEST_DIR}/${G_NAME}${SCRIPT_EXT}
--html-description < ${NULL_DEVICE} | ${SEARCH_COMMAND}
${HTML_SEARCH_STR} > ${TMP_HTML_FILE}
COMMAND ${grass_env_command} ${PYTHON_EXECUTABLE} ${MKHTML_PY} ${G_NAME} >
${OUT_HTML_FILE}
COMMAND ${copy_images_command}
COMMAND ${CMAKE_COMMAND} -E remove ${TMP_HTML_FILE}
${CMAKE_CURRENT_BINARY_DIR}/${G_NAME}.html
COMMENT "Creating ${OUT_HTML_FILE}"
generate_docs(${G_NAME}
OUTPUT ${out_html_file}
SOURCEDIR ${G_SRC_DIR}
DEST_DIR ${G_DEST_DIR}
DEPENDS ${TRANSLATE_C_FILE} LIB_PYTHON)

install(FILES ${OUT_HTML_FILE} DESTINATION ${GRASS_INSTALL_DOCDIR})

endif() # WITH_DOCS

add_custom_target(${G_NAME} DEPENDS ${TRANSLATE_C_FILE} ${OUT_HTML_FILE})
add_custom_target(${G_NAME} DEPENDS ${TRANSLATE_C_FILE} ${out_html_file})

set(modules_list
"${G_NAME};${modules_list}"
Expand All @@ -142,7 +113,7 @@ function(build_script_in_subdir dir_name)
DESTINATION ${G_DEST_DIR})
endif()

install(PROGRAMS ${OUTDIR}/${G_DEST_DIR}/${G_NAME}${SCRIPT_EXT}
install(PROGRAMS ${OUTDIR}/${G_DEST_DIR}/${G_NAME}${script_ext}
DESTINATION ${G_DEST_DIR})

endfunction()
Loading
Loading