From dd44f3f616b0a6dfa4bd803b90babeb3183a0ab9 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Mon, 19 Oct 2015 18:27:24 +0300 Subject: [PATCH] Gettext rules updated. --- GettextCommonRules.cmake | 32 +++++++++++++------------------- GettextLangRules.cmake | 3 +++ MacroSubdirList.cmake | 10 ++++++++++ ValaBinCommonRules.cmake | 2 +- ValaLibCommonRules.cmake | 2 +- ValaPluginCommonRules.cmake | 2 +- 6 files changed, 29 insertions(+), 22 deletions(-) create mode 100644 GettextLangRules.cmake create mode 100644 MacroSubdirList.cmake diff --git a/GettextCommonRules.cmake b/GettextCommonRules.cmake index 90cbaeb..fa61ea7 100644 --- a/GettextCommonRules.cmake +++ b/GettextCommonRules.cmake @@ -1,30 +1,24 @@ SET (GETTEXT_PACKAGE "${PROJECT_LOWERCASE_NAME}-${MAJOR}") ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${GETTEXT_PACKAGE}") - -# FIXME: Custom locale directory -IF (WIN32) - SET (LOCALEDIR "") -ELSE () - SET (LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale") -ENDIF () -SET (CUSTOM_LOCALEDIR "" CACHE STRING "Directory to install l10n files into") -IF (NOT CUSTOM_LOCALEDIR STREQUAL "") - SET (LOCALEDIR "${CUSTOM_LOCALEDIR}") - MESSAGE(STATUS "Using LOCALEDIR=${LOCALEDIR}") -ENDIF () -ADD_DEFINITIONS (-DLOCALEDIR="${LOCALEDIR}") -SET (LOCALE_INSTALL_DIR "share/locale") - -# by all langs -INCLUDE (MacroOptionalAddSubdirectory) FIND_PACKAGE (Gettext REQUIRED) -MACRO_OPTIONAL_ADD_SUBDIRECTORY (langs) + +# Custom locale directory +SET (LOCALEDIR "share/locale" CACHE STRING "Directory to install l10n files into") +MESSAGE(STATUS "Using LOCALEDIR=${LOCALEDIR}") +ADD_DEFINITIONS (-DLOCALEDIR="${LOCALEDIR}") + +# for each language +INCLUDE (MacroSubdirList) +SUBDIRLIST (SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR}) +FOREACH (subdir ${SUBDIRS}) + ADD_SUBDIRECTORY (${subdir}) +ENDFOREACH() # configure a header file for Gettext STRING (TOUPPER "${CMAKE_PROJECT_NAME}" GettextUniqueHeader) CONFIGURE_FILE ( "gettext-config.h.in" - "${PROJECT_BINARY_DIR}/po/gettext-config.h" + "${CMAKE_CURRENT_BINARY_DIR}/gettext-config.h" ) # check for msgmerge utility diff --git a/GettextLangRules.cmake b/GettextLangRules.cmake new file mode 100644 index 0000000..7d651bf --- /dev/null +++ b/GettextLangRules.cmake @@ -0,0 +1,3 @@ +FILE (GLOB _po_files *.po) +GET_FILENAME_COMPONENT (LANG "${CMAKE_CURRENT_SOURCE_DIR}" NAME) +GETTEXT_PROCESS_PO_FILES ("${LANG}" ALL INSTALL_DESTINATION ${LOCALEDIR} PO_FILES ${_po_files} ) diff --git a/MacroSubdirList.cmake b/MacroSubdirList.cmake new file mode 100644 index 0000000..f72eac7 --- /dev/null +++ b/MacroSubdirList.cmake @@ -0,0 +1,10 @@ +MACRO(SUBDIRLIST result curdir) + FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) + SET(dirlist "") + FOREACH(child ${children}) + IF(IS_DIRECTORY ${curdir}/${child}) + LIST(APPEND dirlist ${child}) + ENDIF() + ENDFOREACH() + SET(${result} ${dirlist}) +ENDMACRO() diff --git a/ValaBinCommonRules.cmake b/ValaBinCommonRules.cmake index b33c7d0..711740e 100644 --- a/ValaBinCommonRules.cmake +++ b/ValaBinCommonRules.cmake @@ -13,7 +13,7 @@ VALA_PRECOMPILE (VALA_C ${BinSources} GENERATE_HEADER ) PKG_CHECK_MODULES (PKGS REQUIRED ${BinPkgModules}) -INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/po) ADD_EXECUTABLE (${BinName} ${VALA_C} ${BinExtraSources}) ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${PROJECT_LOWERCASE_NAME}-${MAJOR}") TARGET_LINK_LIBRARIES (${BinName} ${PKGS_LIBRARIES} ${BinLinkLibs}) diff --git a/ValaLibCommonRules.cmake b/ValaLibCommonRules.cmake index 06835d9..838f28f 100644 --- a/ValaLibCommonRules.cmake +++ b/ValaLibCommonRules.cmake @@ -15,7 +15,7 @@ VALA_PRECOMPILE (VALA_C ${LibSources} GENERATE_HEADER ${LibName}-${MAJOR} ) PKG_CHECK_MODULES (PKGS REQUIRED ${LibPkgModules}) -INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/po) ADD_LIBRARY (${LibName} SHARED ${VALA_C} ${LibExtraSources}) ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${PROJECT_LOWERCASE_NAME}-${MAJOR}") TARGET_LINK_LIBRARIES (${LibName} ${PKGS_LIBRARIES} ${LibLinkLibs}) diff --git a/ValaPluginCommonRules.cmake b/ValaPluginCommonRules.cmake index 407f6aa..481f054 100644 --- a/ValaPluginCommonRules.cmake +++ b/ValaPluginCommonRules.cmake @@ -11,7 +11,7 @@ VALA_PRECOMPILE (VALA_C ${PluginSources} GENERATE_HEADER ) PKG_CHECK_MODULES (PKGS REQUIRED ${PluginPkgModules}) -INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${PKGS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/po) ADD_LIBRARY (${PluginName} SHARED ${VALA_C} ${PluginExtraSources}) ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${PROJECT_LOWERCASE_NAME}-${MAJOR}") TARGET_LINK_LIBRARIES (${PluginName} ${PKGS_LIBRARIES} ${PluginLinkLibs})