File: CMakeLists.txt

package info (click to toggle)
pentobi 18.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,912 kB
  • sloc: cpp: 26,729; javascript: 907; xml: 49; sh: 35; makefile: 21; java: 11
file content (101 lines) | stat: -rw-r--r-- 3,521 bytes parent folder | download
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
set(CMAKE_AUTORCC ON)

find_package(Qt5Core 5.11 REQUIRED)
find_package(Qt5LinguistTools 5.11 REQUIRED)
find_package(Gettext 0.18 REQUIRED)
find_package(DocBookXSL REQUIRED)
find_program(ITSTOOL itstool)
if(NOT ITSTOOL)
    message(FATAL_ERROR "itstool not found")
endif()
find_program(XSLTPROC xsltproc)
if(NOT XSLTPROC)
    message(FATAL_ERROR "xsltproc not found")
endif()

file(READ "${CMAKE_CURRENT_SOURCE_DIR}/po/LINGUAS" linguas)
string(REGEX REPLACE "\n" ";" linguas "${linguas}")

set(man_files "pentobi-thumbnailer.6")
foreach(lang ${linguas})
    list(APPEND man_files ${lang}/pentobi-thumbnailer.6)
endforeach()

foreach(lang ${linguas})
    add_custom_command(OUTPUT ${lang}.mo
        COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}" -o ${lang}.mo
        "${CMAKE_CURRENT_SOURCE_DIR}/po/${lang}.po"
        DEPENDS po/${lang}.po
        )
    list(APPEND po_files po/${lang}.po)
    list(APPEND mo_files ${lang}.mo)
endforeach()

qt5_add_translation(pentobi_thumbnailer_QM
    i18n/de.ts
    i18n/es.ts
    i18n/ru.ts
    OPTIONS -removeidentical -nounfinished
    )
add_custom_command(
    OUTPUT "translations.qrc"
    COMMAND ${CMAKE_COMMAND} -E copy
    ${CMAKE_CURRENT_SOURCE_DIR}/i18n/translations.qrc .
    DEPENDS i18n/translations.qrc ${pentobi_thumbnailer_QM}
    )

add_executable(pentobi-thumbnailer
    Main.cpp
    ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
    ${man_files}
    )

target_link_libraries(pentobi-thumbnailer pentobi_thumbnail)

target_compile_definitions(pentobi-thumbnailer PRIVATE
    QT_DEPRECATED_WARNINGS
    QT_DISABLE_DEPRECATED_BEFORE=0x060000
    VERSION="${PENTOBI_VERSION}"
    )

configure_file(pentobi.thumbnailer.in pentobi.thumbnailer @ONLY)

install(TARGETS pentobi-thumbnailer DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pentobi.thumbnailer
  DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers)

# Man page

configure_file(pentobi-thumbnailer-manpage.docbook.in
    pentobi-thumbnailer-manpage.docbook @ONLY)
add_custom_command(OUTPUT pentobi-thumbnailer.6
    COMMAND "${XSLTPROC}" --nonet --novalid --path "${DOCBOOKXSL_DIR}/manpages"
    "${CMAKE_CURRENT_SOURCE_DIR}/../pentobi/unix/manpage.xsl"
    pentobi-thumbnailer-manpage.docbook
    DEPENDS
    "${CMAKE_CURRENT_BINARY_DIR}/pentobi-thumbnailer-manpage.docbook"
    ../pentobi/unix/manpage.xsl
)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pentobi-thumbnailer.6"
    DESTINATION "${CMAKE_INSTALL_MANDIR}/man6")
foreach(lang ${linguas})
    add_custom_command(OUTPUT ${lang}/pentobi-thumbnailer-manpage.docbook
        COMMAND ${CMAKE_COMMAND} -E make_directory ${lang}
        COMMAND "${ITSTOOL}" -l ${lang} -m ${lang}.mo
        -o ${lang}/pentobi-thumbnailer-manpage.docbook
        -i "${CMAKE_CURRENT_SOURCE_DIR}/../pentobi/unix/manpage.its"
        pentobi-thumbnailer-manpage.docbook
        DEPENDS ${lang}.mo "${CMAKE_CURRENT_BINARY_DIR}/pentobi-thumbnailer-manpage.docbook"
        )
    add_custom_command(OUTPUT ${lang}/pentobi-thumbnailer.6
        COMMAND "${XSLTPROC}" --nonet --novalid
        --path "${DOCBOOKXSL_DIR}/manpages" -o ${lang}/
        "${CMAKE_CURRENT_SOURCE_DIR}/../pentobi/unix/manpage.xsl"
        ${lang}/pentobi-thumbnailer-manpage.docbook
        DEPENDS
        "${CMAKE_CURRENT_BINARY_DIR}/${lang}/pentobi-thumbnailer-manpage.docbook"
        ../pentobi/unix/manpage.xsl
        )
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${lang}/pentobi-thumbnailer.6"
        DESTINATION "${CMAKE_INSTALL_MANDIR}/${lang}/man6")
endforeach()