Warning, /frameworks/kdoctools/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include_directories( ${LIBXML2_INCLUDE_DIR} ${LIBXSLT_INCLUDE_DIR} )
0002
0003 include(uriencode)
0004 kdoctools_encode_uri(DocBookXML4_DTD_DIR)
0005 set (_custom_dtd_kdex "customization/dtd/kdedbx45.dtd")
0006 configure_file(${_custom_dtd_kdex}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex} )
0007 # WARNING: this is due to severe limitations on the windows platform to keep the dtd relocatable
0008 # see the .xsl.cmake files for a more verbose explanation below
0009 if(NOT WIN32)
0010 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}
0011 DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/customization/dtd )
0012 else()
0013 get_filename_component(NORMALIZED_DTD_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATADIR_KF}/kdoctools/customization/dtd" ABSOLUTE)
0014 # file(RELATIVE_PATH ...) returns wrong values for paths containing /../ (it doesn't normalize the path)
0015 # To work around this we make sure the variable passed has all /../ elements
0016 # removed using get_filename_component(... ABSOLUTE)
0017 install(CODE
0018 "file(RELATIVE_PATH DocBookXML4_DTD_DIR \"${NORMALIZED_DTD_INSTALL_PATH}\" \"${DocBookXML4_DTD_DIR}\")
0019 set(PERL_EXECUTABLE \"${PERL_EXECUTABLE}\")
0020 include(\"${CMAKE_SOURCE_DIR}/cmake/uriencode.cmake\")
0021 set(CMAKE_MODULE_PATH \"${CMAKE_MODULE_PATH}\")
0022 kdoctools_encode_uri(DocBookXML4_DTD_DIR)
0023 configure_file(\"${CMAKE_CURRENT_SOURCE_DIR}/${_custom_dtd_kdex}.cmake\" \"${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}.install\")"
0024 )
0025 get_filename_component(_custom_dtd_kdex_name ${_custom_dtd_kdex} NAME)
0026 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}.install" DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/customization/dtd RENAME ${_custom_dtd_kdex_name})
0027 endif()
0028
0029 ecm_qt_declare_logging_category(kdoctoolslog_core_SRCS
0030 HEADER loggingcategory.h
0031 IDENTIFIER KDocToolsLog
0032 CATEGORY_NAME kf.doctools.core
0033 DEFAULT_SEVERITY Warning
0034 )
0035
0036 # needed by KIO, need to export it
0037 add_library(KF6DocTools SHARED xslt.cpp xslt_kde.cpp ${kdoctoolslog_core_SRCS})
0038 add_library(KF6::DocTools ALIAS KF6DocTools)
0039
0040 set_target_properties(KF6DocTools PROPERTIES
0041 VERSION ${KDOCTOOLS_VERSION}
0042 SOVERSION ${KDOCTOOLS_SOVERSION}
0043 EXPORT_NAME DocTools
0044 POSITION_INDEPENDENT_CODE TRUE
0045 )
0046
0047 ecm_generate_export_header(KF6DocTools
0048 BASE_NAME KDocTools
0049 EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/kdoctools_export.h"
0050 GROUP_BASE_NAME KF
0051 VERSION ${KF_VERSION}
0052 USE_VERSION_HEADER
0053 DEPRECATED_BASE_VERSION 0
0054 )
0055
0056 if (NOT MEINPROC_NO_KARCHIVE)
0057 set (_private_link_karchive "KF6::Archive")
0058 else()
0059 set (_private_link_karchive "")
0060 endif()
0061
0062 target_link_libraries(KF6DocTools
0063 PUBLIC
0064 Qt6::Core
0065 PRIVATE
0066 ${LIBXML2_LIBRARIES}
0067 ${LIBXSLT_LIBRARIES}
0068 ${LIBXSLT_EXSLT_LIBRARIES}
0069 ${_private_link_karchive}
0070 )
0071
0072 target_include_directories(KF6DocTools INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KDocTools>")
0073
0074 set(KDocTools_HEADERS
0075 docbookxslt.h
0076 )
0077
0078 install(FILES
0079 ${KDocTools_HEADERS}
0080 ${CMAKE_CURRENT_BINARY_DIR}/kdoctools_export.h
0081 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDocTools
0082 COMPONENT Devel
0083 )
0084
0085 install(TARGETS KF6DocTools EXPORT KF6DocToolsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0086
0087 if(BUILD_QCH)
0088 ecm_add_qch(
0089 KF6DocTools_QCH
0090 NAME KDocTools
0091 BASE_NAME KF6DocTools
0092 VERSION ${KF_VERSION}
0093 ORG_DOMAIN org.kde
0094 SOURCES # using only public headers, to cover only public API
0095 ${KDocTools_HEADERS}
0096 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0097 LINK_QCHS
0098 Qt6Core_QCH
0099 INCLUDE_DIRS
0100 ${CMAKE_CURRENT_BINARY_DIR}
0101 BLANK_MACROS
0102 KDOCTOOLS_EXPORT
0103 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0104 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0105 COMPONENT Devel
0106 )
0107 endif()
0108
0109 ########### next target ###############
0110
0111 set_source_files_properties(xslt.cpp PROPERTIES COMPILE_FLAGS -DSIMPLE_XSLT )
0112
0113 if(MEINPROC_NO_KARCHIVE)
0114 add_definitions(-DMEINPROC_NO_KARCHIVE) #we don't have saveToCache when compiling without KArchive, which is used in xslt_kde.cpp
0115 else ()
0116 set(meinproc_additional_SRCS xslt_kde.cpp)
0117 set(meinproc_additional_LIBS KF6::Archive)
0118 endif()
0119
0120 add_executable(meinproc6 meinproc.cpp meinproc_common.cpp xslt.cpp ${meinproc_additional_SRCS} ${kdoctoolslog_core_SRCS})
0121 ecm_mark_nongui_executable(meinproc6)
0122 target_link_libraries(meinproc6
0123 PRIVATE
0124 Qt6::Core
0125 ${LIBXML2_LIBRARIES}
0126 ${LIBXSLT_LIBRARIES}
0127 ${LIBXSLT_EXSLT_LIBRARIES}
0128 ${meinproc_additional_LIBS}
0129 )
0130
0131 target_compile_definitions(meinproc6 PRIVATE -DKDOCTOOLS_EXPORT=)
0132 install(TARGETS meinproc6 EXPORT KF6DocToolsToolsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0133
0134 if(CMAKE_CROSSCOMPILING AND MEINPROC6_EXECUTABLE)
0135 add_executable(KF6::meinproc6 IMPORTED GLOBAL)
0136 set_target_properties(KF6::meinproc6 PROPERTIES IMPORTED_LOCATION ${MEINPROC6_EXECUTABLE})
0137 else()
0138 add_executable(KF6::meinproc6 ALIAS meinproc6)
0139 endif()
0140
0141 ########### customize includes for xslt ###############
0142 # WARNING: this has severe limitations on the windows platform since the .xsl
0143 # & docbook files need to be relocatable. We cannot just replace the paths in
0144 # the .xsl with relative paths because these files are not installed while
0145 # building kdoctools. Instead, we will reconfigure those files at install time
0146 # with relative paths.
0147
0148 file( GLOB _kdeincludexslt_ALL "customization/kde-include*.xsl.cmake" )
0149 foreach( _kdeincludexslt ${_kdeincludexslt_ALL} )
0150 get_filename_component( _kdeincludexslt_name ${_kdeincludexslt} NAME )
0151 string( REGEX REPLACE ".cmake$" "" _kdeincludexslt_out "${_kdeincludexslt_name}" )
0152 set( _kdeincludexslt_binarypath "${CMAKE_CURRENT_BINARY_DIR}/customization/${_kdeincludexslt_out}" )
0153 configure_file( ${_kdeincludexslt} ${_kdeincludexslt_binarypath} )
0154 if(NOT WIN32)
0155 install(FILES ${_kdeincludexslt_binarypath}
0156 DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/customization )
0157 else()
0158 install(CODE
0159 "FILE(RELATIVE_PATH DOCBOOKXSL_DIR \${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATADIR_KF}/kdoctools/customization ${DOCBOOKXSL_DIR})
0160 CONFIGURE_FILE( \"${_kdeincludexslt}\" \"${_kdeincludexslt_binarypath}.install\" )")
0161 install(FILES "${_kdeincludexslt_binarypath}.install" DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/customization RENAME ${_kdeincludexslt_out})
0162 endif()
0163 endforeach( _kdeincludexslt ${_kdeincludexslt_ALL} )
0164
0165
0166 ########### install files ###############
0167
0168 macro(INSTALL_CUSTOMIZE_DIR _expr _directory)
0169 FILE(GLOB _file_CUST "${_expr}" )
0170 foreach(_curentfile ${_file_CUST})
0171 install(FILES ${_curentfile} DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/${_directory} )
0172 endforeach(_curentfile ${_file_CUST})
0173 endmacro(INSTALL_CUSTOMIZE_DIR _expr _directory)
0174
0175 macro(INSTALL_CUSTOMIZE_L_DIR _expr _directory)
0176 FILE(GLOB _file_CUST "${_expr}" )
0177 foreach(_curentfile ${_file_CUST})
0178 # copy the file also under CMAKE_CURRENT_BINARY_DIR - those
0179 # files are needed to generate the documentation without installing
0180 # kdoctools (i.e. when kdoctools itself compiled).
0181 get_filename_component(_currentfile_name ${_curentfile} NAME)
0182 set(_currentfile_binary_path ${CMAKE_CURRENT_BINARY_DIR}/${_directory}/${_currentfile_name})
0183 configure_file(${_curentfile} ${_currentfile_binary_path} COPYONLY)
0184
0185 install(FILES ${_currentfile_binary_path}
0186 DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/${_directory} )
0187 endforeach(_curentfile ${_file_CUST})
0188 endmacro(INSTALL_CUSTOMIZE_L_DIR _expr _directory)
0189
0190
0191
0192 set(expr "customization/*.xsl")
0193 install_customize_l_dir( ${expr} customization/)
0194
0195 set(expr "customization/README")
0196 install_customize_l_dir( ${expr} customization/)
0197
0198 set(expr "customization/catalog.xml")
0199 install_customize_l_dir( ${expr} customization/)
0200
0201 set(customizedir ${KDOCTOOLS_LANGUAGES_LIST} dtd entities xsl)
0202
0203 foreach (_currentcustomizedir ${customizedir})
0204 set(expr "customization/${_currentcustomizedir}/README")
0205 install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
0206 set(expr "customization/${_currentcustomizedir}/*.entities")
0207 install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
0208 set(expr "customization/${_currentcustomizedir}/*.xsl")
0209 install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
0210 set(expr "customization/${_currentcustomizedir}/entities/*.docbook")
0211 install_customize_l_dir( ${expr} customization/${_currentcustomizedir}/entities/ )
0212 set(expr "customization/${_currentcustomizedir}/entities/*.entities")
0213 install_customize_l_dir( ${expr} customization/${_currentcustomizedir}/entities/ )
0214 set(expr "customization/${_currentcustomizedir}/*.xml")
0215 install_customize_l_dir(${expr} customization/${_currentcustomizedir} )
0216 set(expr "customization/${_currentcustomizedir}/*.dtd")
0217 install_customize_l_dir(${expr} customization/${_currentcustomizedir}/)
0218 set(expr "customization/${_currentcustomizedir}/*.elements")
0219 install_customize_l_dir(${expr} customization/${_currentcustomizedir}/)
0220 endforeach(_currentcustomizedir ${customizedir})
0221
0222 ########### l10n xml helper ###############
0223
0224 set( docbookl10nhelper_SRCS docbookl10nhelper.cpp ${kdoctoolslog_core_SRCS})
0225 add_executable( docbookl10nhelper ${docbookl10nhelper_SRCS} )
0226 ecm_mark_nongui_executable( docbookl10nhelper )
0227 target_link_libraries( docbookl10nhelper Qt6::Core )
0228 if(INSTALL_INTERNAL_TOOLS)
0229 install(TARGETS docbookl10nhelper EXPORT KF6DocToolsToolsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0230 endif()
0231
0232 if(CMAKE_CROSSCOMPILING AND DOCBOOKL10NHELPER_EXECUTABLE)
0233 add_executable(KF6::docbookl10nhelper IMPORTED GLOBAL)
0234 set_target_properties(KF6::docbookl10nhelper PROPERTIES IMPORTED_LOCATION ${DOCBOOKL10NHELPER_EXECUTABLE})
0235 else()
0236 add_executable(KF6::docbookl10nhelper ALIAS docbookl10nhelper)
0237 endif()
0238
0239 add_custom_command( TARGET docbookl10nhelper POST_BUILD
0240 COMMAND $<TARGET_FILE:KF6::docbookl10nhelper>
0241 "${DOCBOOKXSL_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/customization/xsl"
0242 "${CMAKE_CURRENT_BINARY_DIR}/customization/xsl"
0243 )
0244
0245 # all-l10n.xml is generated by docbookl10nhelper
0246 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/customization/xsl/all-l10n.xml
0247 DESTINATION ${KDE_INSTALL_DATADIR_KF}/kdoctools/customization/xsl/ )
0248
0249 ########### checkXML6 helper ###############
0250
0251 set( checkXML6_SRCS checkXML6.cpp ${kdoctoolslog_core_SRCS})
0252 add_executable( checkXML6 ${checkXML6_SRCS} )
0253 ecm_mark_nongui_executable( checkXML6 )
0254 target_link_libraries( checkXML6 Qt6::Core )
0255 install(TARGETS checkXML6 EXPORT KF6DocToolsToolsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0256
0257 if(CMAKE_CROSSCOMPILING AND CHECKXML6_EXECUTABLE)
0258 add_executable(KF6::checkXML6 IMPORTED GLOBAL)
0259 set_target_properties(KF6::checkXML6 PROPERTIES IMPORTED_LOCATION ${CHECKXML6_EXECUTABLE})
0260 else()
0261 add_executable(KF6::checkXML6 ALIAS checkXML6)
0262 endif()