summaryrefslogtreecommitdiffstats
path: root/kdialogd3/po/CMakeLists.txt
blob: 3f456de095617b147415abeafa4b886323d5f484 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
find_package(Msgfmt REQUIRED)

# .po to .gmo stuff
file(GLOB _pofiles *.po)

foreach(_file ${_pofiles})
    get_filename_component(_file_we ${_file} NAME_WE)
    set(_out "${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.gmo")
    set(_in "${_file_we}.po")
    add_custom_command(OUTPUT ${_out} COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_file} DEPENDS ${_file})
    install(FILES ${_out} DESTINATION share/locale/${_file_we}/LC_MESSAGES/ RENAME kdialogd3.mo)
    set(_outputs ${_outputs} ${_out})
endforeach(_file)

add_custom_target(pofiles ALL DEPENDS ${_outputs})

# Stuff to generate the .pot
set(POT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../kdialogd.cpp)
set(POT_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/kdialogd3.pot)

# Find xgettext
find_program(XGETTEXT_PATH NAMES "xgettext" PATHS "/usr/bin" "/usr/local/bin")
if(${XGETTEXT_PATH} STREQUAL "XGETTEXT_PATH-NOTFOUND")
    message(STATUS "xgettext not found.  You will not be able to run 'make extract_messages' in the 'po' directory.")
else(${XGETTEXT_PATH} STREQUAL "XGETTEXT_PATH-NOTFOUND")
    message(STATUS "Found xgettext: ${XGETTEXT_PATH}")
endif(${XGETTEXT_PATH} STREQUAL "XGETTEXT_PATH-NOTFOUND")

if(EXISTS ${KDE3_INCLUDE_DIR}/kde.pot)
    add_custom_command(
        OUTPUT ${POT_OUTPUT}
        COMMAND ${XGETTEXT_PATH} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x "${KDE3_INCLUDE_DIR}/kde.pot" -o ${POT_OUTPUT} ${POT_SOURCES}
    )
else (EXISTS ${KDE3_INCLUDE_DIR}/kde.pot)
    add_custom_command(
        OUTPUT ${POT_OUTPUT}
        COMMAND ${XGETTEXT_PATH} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -o ${POT_OUTPUT} ${POT_SOURCES}
    )
endif (EXISTS ${KDE3_INCLUDE_DIR}/kde.pot)

add_custom_target(extract_messages DEPENDS ${POT_OUTPUT})