--- a/CMakeLists.txt Fri May 17 01:58:19 2013 -0500
+++ b/CMakeLists.txt Fri May 17 02:08:14 2013 -0500
@@ -40,13 +40,6 @@
###############################################################################
-###############################################################################
-###############################################################################
###############################################################################
@@ -56,13 +49,14 @@
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=datadir pidgin
OUTPUT_VARIABLE PIDGIN_DATADIR)
string(STRIP ${PIDGIN_DATADIR} PIDGIN_DATADIR)
+ set(LOCALE_DIR ${PIDGIN_DATADIR}/locale) set(PIDGIN_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib/pidgin)
set(PIDGIN_DATADIR ${CMAKE_INSTALL_PREFIX}/share/pidgin)
+ set(LOCALE_DIR ${CMAKE_INSTALL_PREFIX}/locale) -set(GETTEXT_PACKAGE guifications)
@@ -87,10 +81,18 @@
+############################################################################### +############################################################################### +set(GETTEXT_PACKAGE guifications) +############################################################################### +############################################################################### -message(STATUS "Installing plugin to ${PIDGIN_LIBDIR}")
-message(STATUS "Installing data to ${PIDGIN_DATADIR}")
--- a/cmake/Gettextize.cmake Fri May 17 01:58:19 2013 -0500
+++ b/cmake/Gettextize.cmake Fri May 17 02:08:14 2013 -0500
@@ -1,24 +1,51 @@
include(CMakeParseArguments)
+############################################################################### +############################################################################### find_program(XGETTEXT_EXECUTABLE xgettext)
if(NOT XGETTEXT_EXECUTABLE)
message(FATAL_ERROR "Failed to find xgettext")
endif(NOT XGETTEXT_EXECUTABLE)
+find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) +if(NOT GETTEXT_MSGFMT_EXECUTABLE) + message(FATAL_ERROR "Failed to find msgfmt") +endif(NOT GETTEXT_MSGFMT_EXECUTABLE) +find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) +if(NOT GETTEXT_MSGMERGE_EXECUTABLE) + message(FATAL_ERROR "Failed to find msgmerge") +endif(NOT GETTEXT_MSGMERGE_EXECUTABLE) set(DEFAULT_XGETTEXT_OPTIONS
--language=C --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 -s
--escape --add-comments="/" --package-name=${PROJECT_NAME}
--package-version=${VERSION}
+if(NOT DEFINED LOCALE_DIR) + set(LOCALE_DIR ${CMAKE_INSTALL_PREFIX}/share/locale/) + message(AUTHOR_WARNING "LOCALE_DIR is not set, using ${LOCALE_DIR}") +endif(NOT DEFINED LOCALE_DIR) +if(NOT DEFINED GETTEXT_PACKAGE) + set(GETTEXT_PACKAGE ${PROJECT_NAME}) + message(AUTHOR_WARNING "GETTEXT_PACKAGE is not set, using ${GETTEXT_PACKAGE}") +endif(NOT DEFINED GETTEXT_PACKAGE) +############################################################################### +############################################################################### function(gettextize_pot_file _FIRST_ARG)
set(oneValueArgs FILENAME)
set(multiValueArgs SOURCES BUILT_SOURCES OPTIONS)
- cmake_parse_arguments(POT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN})
+ POT "${options}" "${oneValueArgs}" "${multiValueArgs}" if(POT_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unknown keys given to pot_file(): \"${POT_UNPARSED_ARGUMENTS}\"")
@@ -37,8 +64,11 @@
+ set(POT_REAL_BUILT_SOURCES) - foreach(ITEM ${POT_BUILT_SOURCES})
+ foreach(_item ${POT_BUILT_SOURCES}) + get_source_file_property(_location ${_item} LOCATION) + list(APPEND POT_REAL_BUILT_SOURCES "${_location}") @@ -46,7 +76,7 @@
COMMAND ${XGETTEXT_EXECUTABLE} ${POT_OPTIONS}
-o ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILENAME}
- ${POT_SOURCES} ${POT_BUILT_SOURCES}
+ ${POT_SOURCES} ${POT_REAL_BUILT_SOURCES} DEPENDS ${POT_SOURCES} ${POT_BUILT_SOURCES}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@@ -55,3 +85,55 @@
add_custom_target("${POT_FILENAME} potfile" ALL DEPENDS ${POT_FILENAME})
endfunction(gettextize_pot_file)
+function(GETTEXTIZE_TRANSLATIONS) + PO "${options}" "${oneValueArgs}" "${multiValueArgs}" + if(PO_UNPARSED_ARGUMENTS) + FATAL_ERROR "Unknown keys given to GETTEXTIZE_TRANSLATIONS(): " + "\"${PO_UNPARSED_ARGUMENTS}\"" + endif(PO_UNPARSED_ARGUMENTS) + set(_update COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_po} ${_po}) + get_filename_component(_base ${_po} NAME_WE) + set(_install_dir ${LOCALE_DIR}/${_base}/LC_MESSAGES/) + set(_install_file ${GETTEXT_DOMAIN}.mo) + list(APPEND _gmos ${_gmo}) + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmo} ${_po} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + FILES ${CMAKE_CURRENT_BINARY_DIR}/${_gmo} + DESTINATION ${_install_dir} + RENAME ${_install_file} + add_custom_target("translations" ALL DEPENDS ${_gmos}) +endfunction(GETTEXTIZE_TRANSLATIONS) --- a/po/CMakeLists.txt Fri May 17 01:58:19 2013 -0500
+++ b/po/CMakeLists.txt Fri May 17 02:08:14 2013 -0500
@@ -1,1 +1,5 @@
+ GETTEXTIZE_TRANSLATIONS(UPDATE)