summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2021-05-25 19:15:23 +0200
committerSlávek Banko <slavek.banko@axis.cz>2021-05-27 09:35:45 +0200
commite8e67953cac11ae86c090194ed0ce05adf7c6d41 (patch)
tree8217d4aacd69200a2fde25e0100602f039c87652
parentb9b3be9ca4ab2c641603445272657ba752ea5e85 (diff)
downloadtde-i18n-e8e67953.tar.gz
tde-i18n-e8e67953.zip
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>
-rw-r--r--CMakeLists.txt63
1 files changed, 63 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..0392e0d9df
--- /dev/null
+++ b/CMakeLists.txt
@@ -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()