diff options
Diffstat (limited to 'template/commonCMakeLists.txt')
-rw-r--r-- | template/commonCMakeLists.txt | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/template/commonCMakeLists.txt b/template/commonCMakeLists.txt new file mode 100644 index 00000000..b628bf05 --- /dev/null +++ b/template/commonCMakeLists.txt @@ -0,0 +1,140 @@ +################################################# +# +# (C) 2013 Alexander Golubev (Fat-Zer) +# fatzer2 (AT) gmail.com +# +# (C) 2020-2022 Slávek Banko +# slavek.banko (AT) axis.cz +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +cmake_minimum_required( VERSION 3.1 ) + + +##### general package setup ##################### + +string( REGEX REPLACE ".*-([^-]*)$" "\\1" _lang ${CMAKE_CURRENT_SOURCE_DIR} ) +message( STATUS "Configure for language ${_lang}" ) + +project( koffice-i18n-${_lang} ) + + +##### include essential cmake modules ########### + +include( FindPkgConfig ) # required for find_package( TDE ) + + +##### include our cmake modules ################# + +include( TDEMacros ) + + +##### find required stuff ####################### + +find_package( TDE ) + + +##### setup install paths ####################### + +tde_save_and_set( CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "${_lang}" ) +include( TDESetupPaths ) +tde_setup_paths( ) + + +##### user requested modules #################### + +option( BUILD_ALL "Build all" OFF ) +option( BUILD_DOC "Build documentation" ${BUILD_ALL} ) +option( BUILD_DATA "Build data" ${BUILD_ALL} ) +option( BUILD_MESSAGES "Build message and GUI translation" ${BUILD_ALL} ) + + +###### subdirectories ########################### + +# build data files +if( BUILD_DATA AND + EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/data/CMakeLists.txt ) + add_subdirectory( data ) +endif() + + +# build documentation +if( BUILD_DOC ) + # search directories with documentation + file( GLOB_RECURSE _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} docs/* ) + foreach( _doc_file IN LISTS _doc_files ) + get_filename_component( _doc_dir ${_doc_file} PATH ) + list( APPEND _doc_dirs ${_doc_dir} ) + endforeach() + if( _doc_dirs ) + + # sort and clear the list of directories + list( SORT _doc_dirs ) + list( REMOVE_DUPLICATES _doc_dirs ) + list( REMOVE_ITEM _doc_dirs "docs/common" ) + + # create handbooks or install other files + foreach( _doc_dir IN LISTS _doc_dirs ) + file( GLOB _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_doc_dir} ${_doc_dir}/*.docbook ) + string( REGEX REPLACE "^[^/]*/[^/]*/" "" _doc_dest ${_doc_dir} ) + if( _doc_files ) + list( FIND _doc_files "index.docbook" _find_index ) + if( -1 EQUAL _find_index ) + set( _noindex "NOINDEX" ) + else() + unset( _noindex ) + endif() + tde_create_handbook( + SOURCE_BASEDIR ${_doc_dir} + ${_noindex} + LANG ${_lang} + DESTINATION ${_doc_dest} + ) + else() + file( GLOB _doc_files + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${_doc_dir}/*.css ${_doc_dir}/*.png ) + install( + FILES ${_doc_files} + DESTINATION ${HTML_INSTALL_DIR}/${_lang}/${_doc_dest} + ) + endif() + endforeach() + endif() +endif() + + +# build messages +if( BUILD_MESSAGES ) + # install base files for locale + file( GLOB locale_base_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + messages/flag.png messages/charset ) + if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/messages/entry.desktop ) + tde_create_translated_desktop( + SOURCE messages/entry.desktop + DESTINATION ${LOCALE_INSTALL_DIR}/${_lang} + PO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../translations/desktop_files/entry.desktop + ) + endif() + if( locale_base_files ) + install( + FILES ${locale_base_files} + DESTINATION ${LOCALE_INSTALL_DIR}/${_lang} + ) + endif() + + # create translations + file( GLOB_RECURSE _messages RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} messages/*.po ) + if( _messages ) + tde_create_translation( FILES ${_messages} LANG ${_lang} ) + endif() +endif() + + +# restore default install component name + +tde_restore( CMAKE_INSTALL_DEFAULT_COMPONENT_NAME ) |