summaryrefslogtreecommitdiff
path: root/cmake/FindIntltool.cmake
blob: 4c091638f653654bddff03b14d10a6b0ed549aeb (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
42
# FindIntltool.cmake
#
# Jim Nelson <jim@yorba.org>
# Copyright 2012-2013 Yorba Foundation
# Copyright (C) 2013-2018 Christian Dywan

find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
if (INTLTOOL_MERGE_EXECUTABLE)
    macro (INTLTOOL_MERGE_DESKTOP_LIKE target po_dir)
        add_custom_target (${target} ALL
            COMMAND ${INTLTOOL_MERGE_EXECUTABLE} --desktop-style ${CMAKE_SOURCE_DIR}/${po_dir}
                ${CMAKE_CURRENT_SOURCE_DIR}/${target}.in ${target}
            DEPENDS ${target}.in
        )
    endmacro (INTLTOOL_MERGE_DESKTOP_LIKE target po_dir)
    macro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir)
        INTLTOOL_MERGE_DESKTOP_LIKE ("${desktop_id}.desktop" ${po_dir})
        install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${desktop_id}.desktop"
                 DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
    endmacro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir)
    macro (INTLTOOL_MERGE_APPDATA desktop_id po_dir)
        add_custom_target (${desktop_id}.appdata.xml ALL
            COMMAND ${INTLTOOL_MERGE_EXECUTABLE} --xml-style ${CMAKE_SOURCE_DIR}/${po_dir}
                ${CMAKE_CURRENT_SOURCE_DIR}/${desktop_id}.appdata.xml.in ${desktop_id}.appdata.xml
            DEPENDS ${desktop_id}.appdata.xml.in
        )
        install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${desktop_id}.appdata.xml"
                 DESTINATION "${CMAKE_INSTALL_PREFIX}/share/metainfo")
    endmacro (INTLTOOL_MERGE_APPDATA desktop_id po_dir)
else ()
    message(FATAL_ERROR "intltool-merge not found")
endif ()

find_program (INTLTOOL_UPDATE_EXECUTABLE intltool-update)
if (INTLTOOL_UPDATE_EXECUTABLE)
    add_custom_target (pot
        COMMAND ${INTLTOOL_UPDATE_EXECUTABLE} "-p" "-g" ${GETTEXT_PACKAGE}
        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/po"
        )
else ()
    message(FATAL_ERROR "intltool-update not found")
endif ()