@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.12)
33# SPDX-FileCopyrightText: 2022 Boyuan Yang <073plan@gmail.com>
44# SPDX-License-Identifier: CC0-1.0 OR BSD-2-Clause
55
6- include (CMakePrintHelpers)
76include (GNUInstallDirs)
87project (manpages-zh VERSION 1.6.4.0 HOMEPAGE_URL "https://github.com/man-pages-zh/manpages-zh" )
98
@@ -32,12 +31,16 @@ endif ()
3231
3332
3433## Actual handling of man pages
34+ add_custom_target (man ALL )
35+
3536set (MANDIR_LIST "man1" "man2" "man3" "man4" "man5" "man6" "man7" "man8" "mann" )
3637
3738foreach (MANDIR ${MANDIR_LIST} )
3839 file (GLOB CURRENT_MAN_PAGES "src/${MANDIR} /*.*" )
3940 foreach (CURRENT_MAN_PAGE ${CURRENT_MAN_PAGES} )
4041 get_filename_component (MAN_PAGE_NAME ${CURRENT_MAN_PAGE} NAME )
42+ string (REGEX REPLACE "(.*)\\ ." "" MAN_PAGE_SECTION_RAW ${MAN_PAGE_NAME} )
43+ string (SUBSTRING ${MAN_PAGE_SECTION_RAW} 0 1 MAN_PAGE_SECTION)
4144 if (${MAN_PAGE_NAME} STREQUAL "Makefile.am" )
4245 continue ()
4346 endif ()
@@ -47,7 +50,46 @@ foreach (MANDIR ${MANDIR_LIST})
4750 continue ()
4851 endif ()
4952 endif (FILTER_EXCLUDED_MANPAGES)
50- # TODO: Process and install this man page
51- # cmake_print_variables(MAN_PAGE_NAME)
53+
54+ set (MAN_PAGE_PREPAREDIR_ZHCN "${PROJECT_BINARY_DIR} /zh_CN/man${MAN_PAGE_SECTION} /" )
55+ set (MAN_PAGE_PREPAREDIR_ZHTW "${PROJECT_BINARY_DIR} /zh_TW/man${MAN_PAGE_SECTION} /" )
56+ if (ENABLE_APPEND_COLOPHON)
57+ set (APPEND_COLOPHON_COMMAND "${CMAKE_SOURCE_DIR} /utils/append-colophon" )
58+ else ()
59+ set (APPEND_COLOPHON_COMMAND "tee" )
60+ endif ()
61+ set (PROCESS_OUTPUT_ZHCN ${MAN_PAGE_PREPAREDIR_ZHCN} /${MAN_PAGE_NAME} )
62+ set (PROCESS_OUTPUT_ZHTW ${MAN_PAGE_PREPAREDIR_ZHTW} /${MAN_PAGE_NAME} )
63+ set (PROCESS_COMMAND_ZHCN
64+ "bash" "-c" "'cat ${CURRENT_MAN_PAGE} | ${APPEND_COLOPHON_COMMAND} | opencc -c t2s.json > ${PROCESS_OUTPUT_ZHCN} '" )
65+ set (PROCESS_COMMAND_ZHTW
66+ "bash" "-c" "'cat ${CURRENT_MAN_PAGE} | ${APPEND_COLOPHON_COMMAND} | opencc -c s2twp.json > ${PROCESS_OUTPUT_ZHTW} '" )
67+
68+ if (ENABLE_ZHCN)
69+ add_custom_target (man_zhcn_${MAN_PAGE_NAME} _dir
70+ COMMAND ${CMAKE_COMMAND} -E make_directory
71+ ${MAN_PAGE_PREPAREDIR_ZHCN} )
72+ add_custom_target (man_zhcn_${MAN_PAGE_NAME} _build VERBATIM
73+ COMMAND ${PROCESS_COMMAND_ZHCN} )
74+ add_dependencies (man man_zhcn_${MAN_PAGE_NAME} _build)
75+ add_dependencies (man_zhcn_${MAN_PAGE_NAME} _build man_zhcn_${MAN_PAGE_NAME} _dir)
76+ endif (ENABLE_ZHCN)
77+ if (ENABLE_ZHTW)
78+ add_custom_target (man_zhtw_${MAN_PAGE_NAME} _dir
79+ COMMAND ${CMAKE_COMMAND} -E make_directory
80+ ${MAN_PAGE_PREPAREDIR_ZHTW} )
81+ add_custom_target (man_zhtw_${MAN_PAGE_NAME} _build VERBATIM
82+ COMMAND ${PROCESS_COMMAND_ZHTW} )
83+ add_dependencies (man man_zhtw_${MAN_PAGE_NAME} _build)
84+ add_dependencies (man_zhtw_${MAN_PAGE_NAME} _build man_zhtw_${MAN_PAGE_NAME} _dir)
85+ endif (ENABLE_ZHTW)
86+
5287 endforeach ()
5388endforeach ()
89+
90+ if (ENABLE_ZHCN)
91+ install (FILES ${MAN_PAGE_PREPAREDIR_ZHCN} DESTINATION "${CMAKE_INSTALL_MANDIR} /" )
92+ endif ()
93+ if (ENABLE_ZHTW)
94+ install (FILES ${MAN_PAGE_PREPAREDIR_ZHTW} DESTINATION "${CMAKE_INSTALL_MANDIR} /" )
95+ endif ()
0 commit comments