Make it translatable
[chakra:rcconf-settings.git] / cmake / modules / FindMSGFMT.cmake
1 # This file is Copyright 2006-2008
2 #     Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
3 #
4 # Other copyrights also apply to some parts of this work.  Please
5 # see the AUTHORS file and individual file headers for details.
6 #
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License as
9 # published by the Free Software Foundation; either version 2 of the
10 # License, or (at your option) any later version.  See the file
11 # COPYING included with this distribution for more information.
12
13 # Find the msgfmt program
14 #
15 # Defined variables:
16 #  MSGFMT_FOUND
17 #  MSGFMT_EXECUTABLE
18 #
19 # Macro:
20 #  ADD_TRANSLATIONS
21 #
22
23 IF(MSGFMT_EXECUTABLE)
24     SET(MSGFMT_FOUND TRUE)
25 ELSE(MSGFMT_EXECUTABLE)
26     FIND_PROGRAM(MSGFMT_EXECUTABLE
27         NAMES msgfmt gmsgfmt
28         PATHS /bin /usr/bin /usr/local/bin )
29     IF(MSGFMT_EXECUTABLE)
30         SET(MSGFMT_FOUND TRUE)
31     ELSE(MSGFMT_EXECUTABLE)
32         IF(NOT MSGFMT_FIND_QUIETLY)
33             IF(MSGFMT_FIND_REQUIRED)
34                 MESSAGE(FATAL_ERROR "msgfmt program couldn't be found")
35             ENDIF(MSGFMT_FIND_REQUIRED)
36         ENDIF(NOT MSGFMT_FIND_QUIETLY)
37     ENDIF(MSGFMT_EXECUTABLE)
38     MARK_AS_ADVANCED(MSGFMT_EXECUTABLE)
39 ENDIF (MSGFMT_EXECUTABLE)
40
41 MACRO(ADD_TRANSLATIONS _baseName)
42     SET(_outputs)
43     FOREACH(_file ${ARGN})
44         GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
45         SET(_out "${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.gmo")
46         SET(_in  "${CMAKE_CURRENT_SOURCE_DIR}/${_file_we}.po")
47         ADD_CUSTOM_COMMAND(
48             OUTPUT ${_out}
49             COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_in}
50             DEPENDS ${_in} )
51         INSTALL(FILES ${_out}
52             DESTINATION ${LOCALE_INSTALL_DIR}/${_file_we}/LC_MESSAGES/
53             RENAME ${_baseName}.mo )
54         SET(_outputs ${_outputs} ${_out})
55     ENDFOREACH(_file)
56     ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_outputs})
57 ENDMACRO(ADD_TRANSLATIONS)