]> git.sesse.net Git - kdenlive/blob - cmake/modules/FindMSGFMT.cmake
Merge branch 'refs/heads/v0.8.2'
[kdenlive] / cmake / modules / FindMSGFMT.cmake
1 #
2 # Find the msgfmt program
3 #
4 # Modified from Rosegarden project
5 #
6 # Defined variables:
7 #  MSGFMT_FOUND
8 #  MSGFMT_EXECUTABLE
9 #
10 # Macro:
11 #  ADD_TRANSLATIONS
12 #
13
14 IF(MSGFMT_EXECUTABLE)
15   SET(MSGFMT_FOUND TRUE)
16 ELSE(MSGFMT_EXECUTABLE)
17   FIND_PROGRAM(MSGFMT_EXECUTABLE
18   NAMES msgfmt gmsgfmt
19   PATHS /bin /usr/bin /usr/local/bin )
20   IF(MSGFMT_EXECUTABLE)
21     SET(MSGFMT_FOUND TRUE)
22   ELSE(MSGFMT_EXECUTABLE)
23     IF(NOT MSGFMT_FIND_QUIETLY)
24       IF(MSGFMT_FIND_REQUIRED)
25         MESSAGE(FATAL_ERROR "msgfmt program couldn't be found")
26       ENDIF(MSGFMT_FIND_REQUIRED)
27     ENDIF(NOT MSGFMT_FIND_QUIETLY)
28   ENDIF(MSGFMT_EXECUTABLE)
29   MARK_AS_ADVANCED(MSGFMT_EXECUTABLE)
30 ENDIF (MSGFMT_EXECUTABLE)
31 IF(MSGFMT_FOUND)
32   MESSAGE(STATUS "Found msgfmt: ${MSGFMT_EXECUTABLE}")
33 ENDIF(MSGFMT_FOUND)
34
35 MACRO(ADD_TRANSLATIONS _lang)
36   SET(_outputs)
37   FOREACH(_file ${ARGN})
38     GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
39     SET(_out "${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.mo")
40     SET(_in  "${CMAKE_CURRENT_SOURCE_DIR}/${_file_we}.po")
41     ADD_CUSTOM_COMMAND(
42       OUTPUT ${_out}
43       COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_in}
44       DEPENDS ${_in} )
45     INSTALL(FILES ${_out}
46       DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES )
47     SET(_outputs ${_outputs} ${_out})
48   ENDFOREACH(_file)
49   ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_outputs})
50 ENDMACRO(ADD_TRANSLATIONS)