mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
266 lines
11 KiB
CMake
266 lines
11 KiB
CMake
project(kdoctools)
|
|
|
|
find_package(LibXslt)
|
|
set_package_properties(LibXslt PROPERTIES
|
|
URL "http://xmlsoft.org/XSLT"
|
|
TYPE REQUIRED
|
|
PURPOSE "Required by the KDE help system to process DocBook XML"
|
|
)
|
|
|
|
find_package(LibXml2)
|
|
set_package_properties(LibXml2 PROPERTIES
|
|
URL "http://xmlsoft.org"
|
|
TYPE REQUIRED
|
|
PURPOSE "Required by the KDE help system to process DocBook XML"
|
|
)
|
|
|
|
if(NOT LIBXML2_XMLLINT_EXECUTABLE)
|
|
message(FATAL_ERROR "xmllint is required by the KDE help system to process DocBook XML")
|
|
endif()
|
|
|
|
include_directories( ${KDE4_KIO_INCLUDES} )
|
|
#include_directories( ${CMAKE_SOURCE_DIR}/kioslave ${CMAKE_SOURCE_DIR}/kioslave/bzip2 )
|
|
|
|
include_directories( ${LIBXML2_INCLUDE_DIR} ${LIBXSLT_INCLUDE_DIR} )
|
|
|
|
configure_file(checkXML.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/checkXML )
|
|
#macro_additional_clean_files( ${CMAKE_CURRENT_BINARY_DIR}/checkXML )
|
|
|
|
find_package(DocBookXML)
|
|
set (DOCBOOKXML_VERSIONS "${DOCBOOKXML_CURRENTDTD_VERSION}")
|
|
if (DOCBOOKXML_OLDDTD_VERSION)
|
|
set (DOCBOOKXML_VERSIONS "${DOCBOOKXML_VERSIONS} and ${DOCBOOKXML_OLDDTD_VERSION}")
|
|
endif (DOCBOOKXML_OLDDTD_VERSION)
|
|
set_package_properties(DocBookXML PROPERTIES DESCRIPTION "DocBook XML"
|
|
URL "http://www.oasis-open.org/docbook/xml/${DOCBOOKXML_CURRENTDTD_VERSION}"
|
|
TYPE REQUIRED
|
|
PURPOSE "Required by the KDE help system to process DocBook XML"
|
|
)
|
|
|
|
find_package(DocBookXSL)
|
|
set_package_properties(DocBookXSL PROPERTIES DESCRIPTION "DocBook XSL"
|
|
URL "http://docbook.sourceforge.net/release/xsl/current/"
|
|
TYPE REQUIRED
|
|
PURPOSE "Required by the KDE help system to process DocBook XML"
|
|
)
|
|
|
|
set (_custom_dtd_kdex "customization/dtd/kdex.dtd")
|
|
configure_file(${_custom_dtd_kdex}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex} )
|
|
# WARNING: this is due to severe limitations on the windows platform to keep the dtd relocateable
|
|
# see the .xsl.cmake files for a more verbose explanation below
|
|
if(NOT WIN32)
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}
|
|
DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization/dtd )
|
|
else(NOT WIN32)
|
|
install(CODE
|
|
"FILE(RELATIVE_PATH DOCBOOKXML_CURRENTDTD_DIR \${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/ksgmltools2/customization/dtd ${DOCBOOKXML_CURRENTDTD_DIR})
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${_custom_dtd_kdex}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}.install)")
|
|
get_filename_component(_custom_dtd_kdex_name ${_custom_dtd_kdex} NAME)
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_custom_dtd_kdex}.install DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization/dtd RENAME ${_custom_dtd_kdex_name})
|
|
endif(NOT WIN32)
|
|
|
|
configure_file(config-kdoctools.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdoctools.h )
|
|
|
|
########### next target ###############
|
|
|
|
set(kio_help_PART_SRCS
|
|
kio_help.cpp
|
|
main.cpp
|
|
xslt.cpp
|
|
xslt_help.cpp
|
|
xslt_kde.cpp
|
|
)
|
|
|
|
|
|
kde4_add_plugin(kio_help ${kio_help_PART_SRCS})
|
|
|
|
target_link_libraries(kio_help ${KDE4_KDECORE_LIBS} kio ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${LIBEXSLT_LIBRARIES})
|
|
|
|
install(TARGETS kio_help DESTINATION ${PLUGIN_INSTALL_DIR} )
|
|
|
|
|
|
########### next target ###############
|
|
|
|
set(kio_ghelp_PART_SRCS kio_help.cpp main_ghelp.cpp xslt.cpp xslt_help.cpp xslt_kde.cpp )
|
|
|
|
|
|
kde4_add_plugin(kio_ghelp ${kio_ghelp_PART_SRCS})
|
|
|
|
target_link_libraries(kio_ghelp ${KDE4_KDECORE_LIBS} kio ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${LIBEXSLT_LIBRARIES})
|
|
|
|
install(TARGETS kio_ghelp DESTINATION ${PLUGIN_INSTALL_DIR} )
|
|
|
|
|
|
########### next target ###############
|
|
|
|
if(KDE4_ENABLE_FINAL)
|
|
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/meinproc4_final_cpp.cpp PROPERTIES COMPILE_FLAGS -DSIMPLE_XSLT )
|
|
else(KDE4_ENABLE_FINAL)
|
|
set_source_files_properties(xslt.cpp PROPERTIES COMPILE_FLAGS -DSIMPLE_XSLT )
|
|
endif(KDE4_ENABLE_FINAL)
|
|
|
|
# The cross compiling parts are commented out on purpose. Alex
|
|
# if (CMAKE_CROSSCOMPILING)
|
|
# set(IMPORT_MEINPROC4_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportMeinProc4Executable.cmake" CACHE FILEPATH "Point it to the export file of meinproc4 from a native build")
|
|
# include(${IMPORT_MEINPROC4_EXECUTABLE})
|
|
#
|
|
# else (CMAKE_CROSSCOMPILING)
|
|
|
|
set(meinproc_SRCS meinproc.cpp meinproc_common.cpp xslt.cpp xslt_kde.cpp )
|
|
|
|
kde4_add_executable(meinproc4 NOGUI ${meinproc_SRCS})
|
|
|
|
target_link_libraries(meinproc4 ${KDE4_KDECORE_LIBS} ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${LIBEXSLT_LIBRARIES})
|
|
|
|
add_dependencies(meinproc4 docbookl10nhelper)
|
|
|
|
# "export" this target too so we can use the LOCATION property of the imported target in
|
|
# FindKDE4Internal.cmake to get the full path to the installed executable instead of using FIND_PROGRAM(), Alex
|
|
install(TARGETS meinproc4 EXPORT kdelibsToolsTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
# # export this binary for cross-compilation
|
|
# export(TARGETS meinproc4 FILE ${CMAKE_BINARY_DIR}/ImportMeinProc4Executable.cmake)
|
|
#
|
|
# endif (CMAKE_CROSSCOMPILING)
|
|
|
|
########### next target ###############
|
|
|
|
if(KDE4_ENABLE_FINAL)
|
|
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/meinproc4_simple_final_cpp.cpp PROPERTIES COMPILE_FLAGS -DSIMPLE_XSLT )
|
|
else(KDE4_ENABLE_FINAL)
|
|
set_source_files_properties(xslt.cpp PROPERTIES COMPILE_FLAGS -DSIMPLE_XSLT )
|
|
endif(KDE4_ENABLE_FINAL)
|
|
|
|
if (NOT CMAKE_CROSSCOMPILING)
|
|
set(meinproc_qt_SRCS meinproc_simple.cpp meinproc_common.cpp xslt.cpp )
|
|
|
|
kde4_add_executable(meinproc4_simple NOGUI ${meinproc_qt_SRCS})
|
|
|
|
target_link_libraries(meinproc4_simple ${QT_QTCORE_LIBRARIES} ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${LIBEXSLT_LIBRARIES})
|
|
|
|
add_dependencies(meinproc4_simple docbookl10nhelper)
|
|
|
|
install(TARGETS meinproc4_simple ${INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
endif (NOT CMAKE_CROSSCOMPILING)
|
|
|
|
########### next target ###############
|
|
|
|
set(genshortcutents_SRCS genshortcutents.cpp )
|
|
|
|
|
|
kde4_add_executable(genshortcutents NOGUI ${genshortcutents_SRCS})
|
|
|
|
target_link_libraries(genshortcutents ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBS})
|
|
|
|
|
|
########### customize includes for xslt ###############
|
|
# WARNING: this has severe limitations on the windows platform since the .xsl
|
|
# & docbook files need to be relocatable. We cannot just replace the paths in
|
|
# the .xsl with relative paths because these files are not installed while
|
|
# building kdelibs. Instead, we will reconfigure those files at install time
|
|
# with relative paths.
|
|
|
|
file( GLOB _kdeincludexslt_ALL "customization/kde-include*.xsl.cmake" )
|
|
foreach( _kdeincludexslt ${_kdeincludexslt_ALL} )
|
|
get_filename_component( _kdeincludexslt_name ${_kdeincludexslt} NAME )
|
|
string( REGEX REPLACE ".cmake$" "" _kdeincludexslt_out "${_kdeincludexslt_name}" )
|
|
set( _kdeincludexslt_binarypath "${CMAKE_CURRENT_BINARY_DIR}/customization/${_kdeincludexslt_out}" )
|
|
configure_file( ${_kdeincludexslt} ${_kdeincludexslt_binarypath} )
|
|
if(NOT WIN32)
|
|
install(FILES ${_kdeincludexslt_binarypath}
|
|
DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization )
|
|
else(NOT WIN32)
|
|
install(CODE
|
|
"FILE(RELATIVE_PATH DOCBOOKXSL_DIR \${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/ksgmltools2/customization ${DOCBOOKXSL_DIR})
|
|
CONFIGURE_FILE( ${_kdeincludexslt} ${_kdeincludexslt_binarypath}.install )")
|
|
install(FILES ${_kdeincludexslt_binarypath}.install DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization RENAME ${_kdeincludexslt_out})
|
|
endif(NOT WIN32)
|
|
endforeach( _kdeincludexslt ${_kdeincludexslt_ALL} )
|
|
|
|
|
|
########### install files ###############
|
|
|
|
install( FILES help.protocol ghelp.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
|
|
|
|
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/checkXML DESTINATION ${BIN_INSTALL_DIR} )
|
|
|
|
if(NOT WIN32)
|
|
install( FILES kio_help.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
|
install( PROGRAMS move_kio_help_cache.sh DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
|
endif(NOT WIN32)
|
|
|
|
macro(INSTALL_CUSTOMIZE_DIR _expr _directory)
|
|
FILE(GLOB _file_CUST "${_expr}" )
|
|
foreach(_curentfile ${_file_CUST})
|
|
install(FILES ${_curentfile} DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/${_directory} )
|
|
endforeach(_curentfile ${_file_CUST})
|
|
endmacro(INSTALL_CUSTOMIZE_DIR _expr _directory)
|
|
|
|
macro(INSTALL_CUSTOMIZE_L_DIR _expr _directory)
|
|
FILE(GLOB _file_CUST "${_expr}" )
|
|
foreach(_curentfile ${_file_CUST})
|
|
# copy the file also under CMAKE_CURRENT_BINARY_DIR - those
|
|
# files are needed to generate the documentation without installing
|
|
# kdelibs (i.e. when kdelibs itself compiled).
|
|
get_filename_component(_currentfile_name ${_curentfile} NAME)
|
|
set(_currentfile_binary_path ${CMAKE_CURRENT_BINARY_DIR}/${_directory}/${_currentfile_name})
|
|
configure_file(${_curentfile} ${_currentfile_binary_path} COPYONLY)
|
|
|
|
install(FILES ${_currentfile_binary_path}
|
|
DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/${_directory} )
|
|
endforeach(_curentfile ${_file_CUST})
|
|
endmacro(INSTALL_CUSTOMIZE_L_DIR _expr _directory)
|
|
|
|
|
|
|
|
set(expr "customization/*.xsl")
|
|
install_customize_l_dir( ${expr} customization/)
|
|
|
|
set(expr "customization/README")
|
|
install_customize_l_dir( ${expr} customization/)
|
|
|
|
set(expr "customization/catalog.xml")
|
|
install_customize_l_dir( ${expr} customization/)
|
|
|
|
set(customizedir af bg ca cs da de dtd el en-GB en entities eo es et fi fo fr gl he hu id it ja ko lt nds nl nn no pl pt-BR pt ro ru sk sl sr sr@latin sr@ijekavian sr@ijekavianlatin sv th tr uk wa xh xsl xx zh-CN zh-TW)
|
|
|
|
foreach (_currentcustomizedir ${customizedir})
|
|
set(expr "customization/${_currentcustomizedir}/README")
|
|
install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
|
|
set(expr "customization/${_currentcustomizedir}/*.entities")
|
|
install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
|
|
set(expr "customization/${_currentcustomizedir}/*.xsl")
|
|
install_customize_l_dir( ${expr} customization/${_currentcustomizedir})
|
|
set(expr "customization/${_currentcustomizedir}/entities/*.docbook")
|
|
install_customize_l_dir( ${expr} customization/${_currentcustomizedir}/entities/ )
|
|
set(expr "customization/${_currentcustomizedir}/entities/*.entities")
|
|
install_customize_l_dir( ${expr} customization/${_currentcustomizedir}/entities/ )
|
|
set(expr "customization/${_currentcustomizedir}/*.xml")
|
|
install_customize_l_dir(${expr} customization/${_currentcustomizedir} )
|
|
set(expr "customization/${_currentcustomizedir}/*.dtd")
|
|
install_customize_l_dir(${expr} customization/${_currentcustomizedir}/)
|
|
set(expr "customization/${_currentcustomizedir}/*.elements")
|
|
install_customize_l_dir(${expr} customization/${_currentcustomizedir}/)
|
|
|
|
endforeach(_currentcustomizedir ${customizedir})
|
|
|
|
|
|
|
|
########### l10n xml helper ###############
|
|
|
|
set( docbookl10nhelper_SRCS docbookl10nhelper.cpp )
|
|
kde4_add_executable( docbookl10nhelper NOGUI ${docbookl10nhelper_SRCS} )
|
|
target_link_libraries( docbookl10nhelper ${QT_QTCORE_LIBRARIES} )
|
|
|
|
add_custom_command( TARGET docbookl10nhelper POST_BUILD
|
|
COMMAND ${EXECUTABLE_OUTPUT_PATH}/docbookl10nhelper
|
|
${DOCBOOKXSL_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/customization/xsl
|
|
${CMAKE_CURRENT_BINARY_DIR}/customization/xsl
|
|
)
|
|
# all-l10n.xml is generated by docbookl10nhelper
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/customization/xsl/all-l10n.xml
|
|
DESTINATION ${DATA_INSTALL_DIR}/ksgmltools2/customization/xsl/ )
|
|
|
|
|
|
add_subdirectory(tests)
|