You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k3b-i18n/CMakeLists.txt

117 lines
3.0 KiB

#################################################
#
# (C) 2013 Alexander Golubev (Fat-Zer)
# fatzer2 (AT) gmail.com
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
cmake_minimum_required( VERSION 3.5 )
##### general package setup #####################
project( k3b-i18n )
##### include essential cmake modules ###########
include( FindPkgConfig ) # required for find_package( TDE )
##### include our cmake modules #################
include( TDEMacros )
##### set version number ########################
tde_set_project_version( )
##### find required stuff #######################
find_package( TDE )
##### setup install paths #######################
include( TDESetupPaths )
tde_setup_paths( )
option( BUILD_DOC "Build documentation" ON )
option( BUILD_MESSAGES "Build message and GUI translation" ON )
string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
###### build documentations for all languages ###
if( BUILD_DOC )
file( GLOB_RECURSE _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */doc/* )
foreach( _doc_file IN LISTS _doc_files )
get_filename_component( _dir ${_doc_file} PATH )
list( APPEND _dirs ${_dir} )
endforeach()
if( _dirs )
list( SORT _dirs )
list( REMOVE_DUPLICATES _dirs )
endif()
foreach( _doc_dir IN LISTS _dirs )
string( REGEX REPLACE "/.*" "" _lang ${_doc_dir} )
if( NOT ${_lang} MATCHES "^(html|man|misc|other)$"
AND ( ${_lang} STREQUAL "en" OR
"${_linguas}" MATCHES "^;*$" OR
";${_linguas};" MATCHES ";${_lang};" ))
file( GLOB _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_doc_dir} ${_doc_dir}/*.docbook )
if( ${_doc_dir} MATCHES "^${_lang}/doc/[^/]*/" )
string( REGEX REPLACE "^${_lang}/doc/(.*)" "\\1" _doc_dest "${_doc_dir}" )
else()
string( REGEX REPLACE "^${_lang}/doc/(.*)" "\\1" _doc_dest "${_doc_dir}/k3b" )
endif()
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}/*.jpg ${_doc_dir}/*.png )
install(
FILES ${_doc_files}
DESTINATION ${HTML_INSTALL_DIR}/${_lang}/${_doc_dest}
)
endif()
endif()
endforeach()
endif()
###### build translations for all languages #####
if( BUILD_MESSAGES )
file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */messages/*.po )
foreach( _po ${po_files} )
string( REGEX REPLACE "/.*" "" _lang ${_po} )
if( "${_linguas}" MATCHES "^;*$" OR ";${_linguas};" MATCHES ";${_lang};" )
tde_create_translation( FILES ${_po} LANG ${_lang} )
endif()
endforeach( )
endif( )