diff options
Diffstat (limited to 'src/contrib/SDL-3.2.20/cmake/sdlmanpages.cmake')
-rw-r--r-- | src/contrib/SDL-3.2.20/cmake/sdlmanpages.cmake | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/contrib/SDL-3.2.20/cmake/sdlmanpages.cmake b/src/contrib/SDL-3.2.20/cmake/sdlmanpages.cmake new file mode 100644 index 0000000..dc3ebb6 --- /dev/null +++ b/src/contrib/SDL-3.2.20/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() | ||