grim/guifications2

a bunch more tweaks to gettextize
cmake
2013-05-17, Gary Kramlich
24d0dde5906e
a bunch more tweaks to gettextize
--- a/cmake/Gettextize.cmake Fri May 17 02:08:14 2013 -0500
+++ b/cmake/Gettextize.cmake Fri May 17 23:09:36 2013 -0500
@@ -19,8 +19,7 @@
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-name=${PROJECT_NAME}
--package-version=${VERSION}
)
@@ -37,10 +36,10 @@
###############################################################################
# Functions
###############################################################################
-function(gettextize_pot_file _FIRST_ARG)
- set(options)
- set(oneValueArgs FILENAME)
- set(multiValueArgs SOURCES BUILT_SOURCES OPTIONS)
+function(GETTEXTIZE_POT_FILE _FIRST_ARG)
+ set(options SORT NO_DEFAULT_KEYWORDS NO_ESCAPE NO_COMMENTS)
+ set(oneValueArgs FILENAME LANGUAGES)
+ set(multiValueArgs SOURCES BUILT_SOURCES KEYWORDS)
cmake_parse_arguments(
POT "${options}" "${oneValueArgs}" "${multiValueArgs}"
@@ -48,20 +47,54 @@
)
if(POT_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unknown keys given to pot_file(): \"${POT_UNPARSED_ARGUMENTS}\"")
+ message(FATAL_ERROR "Unknown keys given to pot_file(): "
+ "\"${POT_UNPARSED_ARGUMENTS}\"")
endif(POT_UNPARSED_ARGUMENTS)
if(NOT POT_FILENAME)
- message(FATAL_ERROR "No filename specified")
+ set(POT_FILENAME ${GETTEXT_PACKAGE}.pot)
+ message(AUTHOR_WARNING "No filename specified, using ${POT_FILENAME}")
endif(NOT POT_FILENAME)
if(NOT POT_SOURCES)
message(FATAL_ERROR "No sources specified")
endif(NOT POT_SOURCES)
- if(NOT POT_OPTIONS)
- set(POT_OPTIONS ${DEFAULT_XGETTEXT_OPTIONS})
- endif(NOT POT_OPTIONS)
+ if(NOT POT_NO_ESCAPE)
+ set(POT_ESCAPE --escape)
+ endif(NOT POT_NO_ESCAPE)
+
+ if(POT_COMMENTS)
+ set(POT_COMMENTS "--add-comments=${POT_COMMENTS}")
+ endif(POT_COMMENTS)
+
+ if(POT_SORT)
+ set(POT_SORT -s)
+ endif(POT_SORT)
+
+ # handle keywords
+ if(NOT POT_NO_DEFAULT_KEYWORDS)
+ list(INSERT POT_KEYWORDS 0 _ N_ C_:1c,2 NC_:1c,2)
+ endif(NOT POT_NO_DEFAULT_KEYWORDS)
+
+ if(POT_KEYWORDS)
+ set(_keywords)
+
+ foreach(_kw ${POT_KEYWORDS})
+ list(APPEND _keywords "--keyword=${_kw}")
+ endforeach(_kw)
+ set(POT_KEYWORDS ${_keywords})
+ endif(POT_KEYWORDS)
+
+ # handle languages
+ if(POT_LANGUAGES)
+ set(_languages)
+
+ foreach(_lang in ${POT_LANGUAGES})
+ list(APPEND _languages "--language=${_lang}")
+ endforeach(_lang)
+ set(POT_LANGUAGES ${_languages})
+ endif(POT_LANGUAGES)
# now tweak the sources
set(POT_REAL_BUILT_SOURCES)
@@ -74,7 +107,9 @@
add_custom_command(
OUTPUT ${POT_FILENAME}
- COMMAND ${XGETTEXT_EXECUTABLE} ${POT_OPTIONS}
+ COMMAND ${XGETTEXT_EXECUTABLE}
+ ${POT_SORT} ${POT_KEYWORDS} ${POT_LANGUAGES} ${POT_ESCAPE}
+ ${POT_COMMENTS}
-o ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILENAME}
${POT_SOURCES} ${POT_REAL_BUILT_SOURCES}
DEPENDS ${POT_SOURCES} ${POT_BUILT_SOURCES}
@@ -83,7 +118,7 @@
)
add_custom_target("${POT_FILENAME} potfile" ALL DEPENDS ${POT_FILENAME})
-endfunction(gettextize_pot_file)
+endfunction(GETTEXTIZE_POT_FILE)
function(GETTEXTIZE_TRANSLATIONS)
set(options UPDATE)
--- a/src/CMakeLists.txt Fri May 17 02:08:14 2013 -0500
+++ b/src/CMakeLists.txt Fri May 17 23:09:36 2013 -0500
@@ -68,7 +68,9 @@
)
gettextize_pot_file(
- FILENAME "${GETTEXT_PACKAGE}.pot"
+ SORT
+ LANGUAGES C
SOURCES ${SOURCES}
+ FILENAME guifications.pot
)