diff options
Diffstat (limited to 'contrib/SDL-3.2.8/cmake/sdlmanpages.cmake')
| -rw-r--r-- | contrib/SDL-3.2.8/cmake/sdlmanpages.cmake | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/contrib/SDL-3.2.8/cmake/sdlmanpages.cmake b/contrib/SDL-3.2.8/cmake/sdlmanpages.cmake new file mode 100644 index 0000000..dc3ebb6 --- /dev/null +++ b/contrib/SDL-3.2.8/cmake/sdlmanpages.cmake | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | include(CMakeParseArguments) | ||
| 2 | include(GNUInstallDirs) | ||
| 3 | |||
| 4 | function(SDL_generate_manpages) | ||
| 5 | cmake_parse_arguments(ARG "" "RESULT_VARIABLE;NAME;BUILD_DOCDIR;HEADERS_DIR;SOURCE_DIR;SYMBOL;OPTION_FILE;WIKIHEADERS_PL_PATH;REVISION" "" ${ARGN}) | ||
| 6 | |||
| 7 | set(wikiheaders_extra_args) | ||
| 8 | |||
| 9 | if(NOT ARG_NAME) | ||
| 10 | set(ARG_NAME "${PROJECT_NAME}") | ||
| 11 | endif() | ||
| 12 | |||
| 13 | if(NOT ARG_SOURCE_DIR) | ||
| 14 | set(ARG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") | ||
| 15 | endif() | ||
| 16 | |||
| 17 | if(NOT ARG_OPTION_FILE) | ||
| 18 | set(ARG_OPTION_FILE "${PROJECT_SOURCE_DIR}/.wikiheaders-options") | ||
| 19 | endif() | ||
| 20 | |||
| 21 | if(NOT ARG_HEADERS_DIR) | ||
| 22 | message(FATAL_ERROR "Missing required HEADERS_DIR argument") | ||
| 23 | endif() | ||
| 24 | |||
| 25 | # FIXME: get rid of SYMBOL and let the perl script figure out the dependencies | ||
| 26 | if(NOT ARG_SYMBOL) | ||
| 27 | message(FATAL_ERROR "Missing required SYMBOL argument") | ||
| 28 | endif() | ||
| 29 | |||
| 30 | if(ARG_REVISION) | ||
| 31 | list(APPEND wikiheaders_extra_args "--rev=${ARG_REVISION}") | ||
| 32 | endif() | ||
| 33 | |||
| 34 | if(NOT ARG_BUILD_DOCDIR) | ||
| 35 | set(ARG_BUILD_DOCDIR "${CMAKE_CURRENT_BINARY_DIR}/docs") | ||
| 36 | endif() | ||
| 37 | set(BUILD_WIKIDIR "${ARG_BUILD_DOCDIR}/wiki") | ||
| 38 | set(BUILD_MANDIR "${ARG_BUILD_DOCDIR}/man") | ||
| 39 | |||
| 40 | find_package(Perl) | ||
| 41 | file(GLOB HEADER_FILES "${ARG_HEADERS_DIR}/*.h") | ||
| 42 | |||
| 43 | set(result FALSE) | ||
| 44 | |||
| 45 | if(PERL_FOUND AND EXISTS "${ARG_WIKIHEADERS_PL_PATH}") | ||
| 46 | add_custom_command( | ||
| 47 | OUTPUT "${BUILD_WIKIDIR}/${ARG_SYMBOL}.md" | ||
| 48 | COMMAND "${CMAKE_COMMAND}" -E make_directory "${BUILD_WIKIDIR}" | ||
| 49 | COMMAND "${PERL_EXECUTABLE}" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_SOURCE_DIR}" "${BUILD_WIKIDIR}" "--options=${ARG_OPTION_FILE}" --copy-to-wiki ${wikiheaders_extra_args} | ||
| 50 | DEPENDS ${HEADER_FILES} "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_OPTION_FILE}" | ||
| 51 | COMMENT "Generating ${ARG_NAME} wiki markdown files" | ||
| 52 | ) | ||
| 53 | add_custom_command( | ||
| 54 | OUTPUT "${BUILD_MANDIR}/man3/${ARG_SYMBOL}.3" | ||
| 55 | COMMAND "${PERL_EXECUTABLE}" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_SOURCE_DIR}" "${BUILD_WIKIDIR}" "--options=${ARG_OPTION_FILE}" "--manpath=${BUILD_MANDIR}" --copy-to-manpages ${wikiheaders_extra_args} | ||
| 56 | DEPENDS "${BUILD_WIKIDIR}/${ARG_SYMBOL}.md" "${ARG_WIKIHEADERS_PL_PATH}" "${ARG_OPTION_FILE}" | ||
| 57 | COMMENT "Generating ${ARG_NAME} man pages" | ||
| 58 | ) | ||
| 59 | add_custom_target(${ARG_NAME}-docs ALL DEPENDS "${BUILD_MANDIR}/man3/${ARG_SYMBOL}.3") | ||
| 60 | |||
| 61 | install(DIRECTORY "${BUILD_MANDIR}/" DESTINATION "${CMAKE_INSTALL_MANDIR}") | ||
| 62 | set(result TRUE) | ||
| 63 | endif() | ||
| 64 | |||
| 65 | if(ARG_RESULT_VARIABLE) | ||
| 66 | set(${ARG_RESULT_VARIABLE} ${result} PARENT_SCOPE) | ||
| 67 | endif() | ||
| 68 | endfunction() | ||
