Add a top-level CMake rules that allows to build all languages

depending on the setting of the LINGUAS environment variable.
To enable separate installation of individual languages,
there are individual targets with "install-<lang>" format.

Don't use it with standard make, because due to the huge number
of targets, it has a huge overhead and therefore provides lousy
performance!

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/34/head
Slávek Banko 3 years ago
parent b9b3be9ca4
commit e8e67953ca
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -0,0 +1,63 @@
#################################################
#
# (C) 2021 Slávek Banko
# slavek.banko (AT) axis.cz
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
cmake_minimum_required( VERSION 2.8.12 )
##### general package setup #####################
project( tde-i18n )
set( VERSION R14.1.0 )
##### include essential cmake modules ###########
include( FindPkgConfig ) # required for find_package( TDE )
##### include our cmake modules #################
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
##### find required stuff #######################
find_package( TDE )
include( TDESetupPaths )
tde_setup_paths( )
##### process languages #########################
file( GLOB _dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} * )
list( SORT _dirs )
string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
foreach( _dir IN LISTS _dirs )
string( REGEX REPLACE "^${PROJECT_NAME}-" "" _lang "${_dir}" )
if( "${_dir}" MATCHES "^${PROJECT_NAME}-"
AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}/CMakeLists.txt
AND ( "${_lang}" STREQUAL "en" OR
"${_linguas}" MATCHES "^;*$" OR
";${_linguas};" MATCHES ";${_lang};" ))
add_subdirectory( ${_dir} )
string( REGEX REPLACE "@" "_" _lang_target "${_lang}" )
add_custom_target( install-${_lang_target}
COMMAND ${CMAKE_COMMAND}
-DCOMPONENT=${_lang}
-P ${CMAKE_BINARY_DIR}/cmake_install.cmake
)
endif()
endforeach()
Loading…
Cancel
Save