Warning, /multimedia/kid3/doc/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 set(_languages ca de it nl pt ru sv uk) 0002 0003 # Use -DDOWNLOAD_POS=ON to download the translations directly from SVN. 0004 if(DOWNLOAD_POS STREQUAL "REMOVE") 0005 message(STATUS "Removing po, docs") 0006 file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/po") 0007 file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/docs") 0008 elseif(DOWNLOAD_POS) 0009 execute_process(COMMAND ${CMAKE_COMMAND} 0010 -P "${CMAKE_CURRENT_SOURCE_DIR}/download-pos.cmake" "${_languages}" 0011 RESULT_VARIABLE result) 0012 if(NOT "${result}" STREQUAL "0") 0013 message(STATUS "Download failed, removing po, docs") 0014 file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/po") 0015 file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/docs") 0016 endif() 0017 endif() 0018 0019 # Create HTML handbook from DocBook file in language directory 0020 macro(kid3_create_handbook _docbook _lang) 0021 get_filename_component(_input ${_docbook} ABSOLUTE) 0022 set(_output ${CMAKE_CURRENT_BINARY_DIR}/${_lang}/kid3_${_lang}.html) 0023 set(_fixdocbook_py ${CMAKE_CURRENT_SOURCE_DIR}/fixdocbook.py) 0024 set(_fixhtml_py ${CMAKE_CURRENT_SOURCE_DIR}/fixhtml.py) 0025 set(_docbook_xsl ${DOCBOOK_XSL_DIR}/xhtml/docbook.xsl) 0026 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_lang}) 0027 if(WIN32) 0028 # The expressions in pipes do not work for Windows, 0029 # so temporary files are used. 0030 set(_tmp_xml ${CMAKE_CURRENT_BINARY_DIR}/${_lang}/tmp.xml) 0031 set(_tmp_html ${CMAKE_CURRENT_BINARY_DIR}/${_lang}/tmp.html) 0032 add_custom_command(OUTPUT ${_tmp_xml} 0033 COMMAND ${PYTHON_EXECUTABLE} ${_fixdocbook_py} ${_input} >${_tmp_xml} 0034 DEPENDS ${_input} 0035 ) 0036 add_custom_command(OUTPUT ${_tmp_html} 0037 COMMAND ${XSLTPROC} --novalid --nonet ${_docbook_xsl} ${_tmp_xml} >${_tmp_html} 0038 DEPENDS ${_tmp_xml} 0039 ) 0040 add_custom_command(OUTPUT ${_output} 0041 COMMAND ${PYTHON_EXECUTABLE} ${_fixhtml_py} <${_tmp_html} >${_output} 0042 DEPENDS ${_tmp_html} 0043 ) 0044 else() 0045 add_custom_command(OUTPUT ${_output} 0046 COMMAND 0047 ${PYTHON_EXECUTABLE} ${_fixdocbook_py} ${_input} | 0048 ${XSLTPROC} --maxdepth 20000 --novalid --nonet ${_docbook_xsl} - | 0049 ${PYTHON_EXECUTABLE} ${_fixhtml_py} >${_output} 0050 DEPENDS ${_input} 0051 ) 0052 endif() 0053 add_custom_target("${_lang}-html-handbook" ALL DEPENDS ${_output}) 0054 install(FILES ${_output} DESTINATION ${WITH_DOCDIR}) 0055 endmacro() 0056 0057 # Create handbook for KDE 5. 0058 # Replace meinproc5 with wrapper to change DTD version, then generate KDE help. 0059 macro(kf5_create_handbook _docbook _lang) 0060 cmake_minimum_required(VERSION 3.16) 0061 find_package(ECM REQUIRED NO_MODULE) 0062 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0063 include(KDEInstallDirs) 0064 find_package(KF${QT_MAJOR_VERSION} REQUIRED COMPONENTS DocTools) 0065 set(KDOCTOOLS_MEINPROC_EXECUTABLE ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/kf5-meinproc-wrapper.py) 0066 if(QT_VERSION_MAJOR EQUAL 6 AND NOT HTML_INSTALL_DIR) 0067 # TODO KF6: If there something defined? 0068 set(HTML_INSTALL_DIR "${WITH_DATAROOTDIR}/doc/HTML") 0069 endif() 0070 kdoctools_create_handbook(${_docbook} INSTALL_DESTINATION ${HTML_INSTALL_DIR}/${_lang} SUBDIR kid3) 0071 endmacro() 0072 0073 if(UNIX) 0074 if(NOT WITH_NO_MANCOMPRESS) 0075 find_program(GZIP_EXECUTABLE gzip) 0076 endif() 0077 0078 # Create man page from DocBook file in language directory 0079 macro(kid3_create_manpage _docbook _lang) 0080 get_filename_component(_input ${_docbook} ABSOLUTE) 0081 set(_output ${CMAKE_CURRENT_BINARY_DIR}/${_lang}/kid3.1) 0082 set(_fixdocbook_py ${CMAKE_CURRENT_SOURCE_DIR}/fixmandocbook.py) 0083 set(_docbook_xsl ${DOCBOOK_XSL_DIR}/manpages/docbook.xsl) 0084 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_lang}) 0085 add_custom_command(OUTPUT ${_output} 0086 COMMAND 0087 ${PYTHON_EXECUTABLE} ${_fixdocbook_py} ${_input} | 0088 ${XSLTPROC} --maxdepth 20000 --novalid --nonet ${_docbook_xsl} - 0089 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_lang} 0090 DEPENDS ${_input} 0091 ) 0092 if(WITH_NO_MANCOMPRESS) 0093 set(_gzExt "") 0094 set(_output_gz ${_output}) 0095 else() 0096 set(_gzExt ".gz") 0097 set(_output_gz ${_output}${_gzExt}) 0098 add_custom_command(OUTPUT ${_output_gz} 0099 COMMAND ${GZIP_EXECUTABLE} -cn ${_output} >${_output_gz} 0100 DEPENDS ${_output} 0101 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_lang} 0102 ) 0103 endif() 0104 add_custom_target("${_lang}-man-handbook" ALL DEPENDS ${_output_gz}) 0105 if(_lang STREQUAL "en") 0106 set(_install_dir ${WITH_MANDIR}/man1) 0107 else() 0108 set(_install_dir ${WITH_MANDIR}/${_lang}/man1) 0109 endif() 0110 install(FILES ${_output_gz} DESTINATION ${_install_dir}) 0111 if(BUILD_QT_APP) 0112 install(CODE 0113 "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink kid3.1${_gzExt} \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_install_dir}/kid3-qt.1${_gzExt}\")") 0114 endif() 0115 if(BUILD_CLI_APP) 0116 install(CODE 0117 "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink kid3.1${_gzExt} \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_install_dir}/kid3-cli.1${_gzExt}\")") 0118 endif() 0119 endmacro() 0120 endif() 0121 0122 if(BUILD_KDE_APP) 0123 file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kf5-meinproc-wrapper.py 0124 CONTENT "#!/usr/bin/env python3 0125 import sys, os, tempfile 0126 args = sys.argv[1:] 0127 docbook = args.pop() 0128 out_fh = tempfile.NamedTemporaryFile(mode='wb') 0129 with open(docbook, 'rb') as in_fh: 0130 for line in in_fh: 0131 line = line.replace( 0132 b'\"-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN\" \"dtd/kdex.dtd\"', 0133 b'\"-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN\" \"dtd/kdedbx45.dtd\"' 0134 ).replace( 0135 b'<!ENTITY doublehyphen \\'--\\'>', 0136 b'<!ENTITY doublehyphen \\'--\\'>' + 0137 b'\\n <!ENTITY Debian \\'<acronym><trademark class=\"registered\">Debian</trademark></acronym>\\'>' + 0138 b'\\n <!ENTITY macOS \\'<trademark class=\"registered\">macOS</trademark>\\'>' + 0139 b'\\n <!ENTITY JSON \"<acronym>JSON</acronym>\">' + 0140 b'\\n <!ENTITY javascript \"<application>JavaScript</application>\">' + 0141 b'\\n <!ENTITY Del \"<keycap>Del</keycap>\">' + 0142 b'\\n <!ENTITY Up \"<keysym>Up</keysym>\">' 0143 b'\\n <!ENTITY Down \"<keysym>Down</keysym>\">') 0144 out_fh.write(line) 0145 out_fh.flush() 0146 args.append(out_fh.name) 0147 os.execv('$<TARGET_FILE:KF${QT_MAJOR_VERSION}::meinproc${QT_MAJOR_VERSION}>', args) 0148 ") 0149 endif() 0150 0151 list(APPEND _languages en) 0152 if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") 0153 set(_po_dir ${CMAKE_CURRENT_SOURCE_DIR}/po) 0154 message(WARNING "Using custom translations from ${_po_dir}") 0155 else() 0156 set(_po_dir ${CMAKE_SOURCE_DIR}/po) 0157 endif() 0158 foreach(_lang ${_languages}) 0159 if(_lang STREQUAL "en") 0160 set(_dir ${CMAKE_CURRENT_SOURCE_DIR}/en) 0161 else() 0162 set(_dir ${_po_dir}/${_lang}/docs/kid3) 0163 endif() 0164 0165 if(BUILD_KDE_APP) 0166 kf5_create_handbook(${_dir}/index.docbook ${_lang}) 0167 endif() 0168 0169 if(BUILD_QT_APP) 0170 kid3_create_handbook(${_dir}/index.docbook ${_lang}) 0171 endif() 0172 0173 if(UNIX) 0174 kid3_create_manpage(${_dir}/index.docbook ${_lang}) 0175 endif() 0176 endforeach()