Skip to content

Commit 9d7295b

Browse files
committed
New CLEAN_TR build option, install translations under ff7tk-i18n component
1 parent 3fe645e commit 9d7295b

File tree

3 files changed

+35
-13
lines changed

3 files changed

+35
-13
lines changed

docs/build.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ TESTS | Build and run unit tests | ON
3030
UTILS | Build ff7tkUtils. | ON | [zlib] |
3131
WIDGETS | Build ff7tkWidgets. | ON | |
3232
SPLITPACKAGES | Create Split Packages | OFF | |
33-
33+
CLEAN_TRS | Remove Obsolete Translation Entries | OFF | |
3434
Enabling Demos will allow you to set this additional options all are enabled by default
3535
Demo | Description |
3636
:-----------------------:|:---------------------------------------:|
@@ -84,15 +84,15 @@ For QMake you can use the pkgconfig provided by the system
8484
-- If patch or rev are empty they are excluded from the version number
8585
-- tweak is Number of commits since the last tag release
8686
### ff7tk version compatibility
87-
ff7tk verisons with the same major and minor version are compatible. Building your project with an incompatible version can lead to API issues for this reason its HIGHLY recommend any CI jobs use a Release or specific COMMIT HASH when pulling ff7tk.
87+
ff7tk versions with the same major and minor version are compatible. Building your project with an incompatible version can lead to API issues for this reason its HIGHLY recommend any CI jobs use a Release or specific COMMIT HASH when pulling ff7tk.
8888

8989
## Translations
9090
In addition to ff7tk's language files your application should also load and/or ship the qt_base_<lang>.qm these are required to translate strings from inside Qt libraries.
9191

9292
You can use FF7Tk::translationList to get a QMap<QString, QTranslation*> of all the auto detected language files. This will look in several places in the application directory and around the system to attempt to find them.
9393

9494
## Deploying ff7tk with your app
95-
When using ff7tk your project needs to ship the libraries ff7tk needs to run its recommened to run windepoyqt / macdeployqt on the ff7tk libs being used when you pack your application to be sure to get all the libs needed are deployed.
95+
When using ff7tk your project needs to ship the libraries ff7tk needs to run its recommended to run windepoyqt / macdeployqt on the ff7tk libs being used when you pack your application to be sure to get all the libs needed are deployed.
9696

9797
### Item Depends
9898
- ff7tk

packaging/CMakeLists.txt

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,21 @@ cpack_add_component(ff7tk_libraries REQUIRED
6161
DESCRIPTION "ff7tk libraries"
6262
)
6363

64+
set(CPACK_COMPONENT_FF7TK_I18N_DISPLAY_NAME "Translations")
65+
set(CPACK_COMPONENT_FF7TK_I18N_DESCRIPTION "ff7tk Translation files")
66+
set(CPACK_COMPONENT_FF7TK_I18N_DEPENDS ff7tk_libraries)
67+
set(CPACK_COMPONENT_FF7TK_I18N_DISABLED FALSE)
68+
69+
6470
set(CPACK_COMPONENT_FF7TK_HEADERS_DISPLAY_NAME "Headers")
6571
set(CPACK_COMPONENT_FF7TK_HEADERS_DESCRIPTION "ff7tk Headers and cmake files")
6672
set(CPACK_COMPONENT_FF7TK_HEADERS_DEPENDS ff7tk_libraries)
6773
set(CPACK_COMPONENT_FF7TK_HEADERS_DISABLED FALSE)
6874

75+
cpack_add_component(ff7tk_docs COMMON
76+
DISPLAY_NAME "Documentation"
77+
DESCRIPTION "Documentation for ff7tk"
78+
)
6979
cpack_add_component(ff7tk_docs COMMON
7080
DISPLAY_NAME "Documentation"
7181
DESCRIPTION "Documentation for ff7tk"
@@ -113,7 +123,8 @@ endif()
113123
set(CPACK_IFW_PACKAGE_WINDOW_ICON ${CMAKE_CURRENT_SOURCE_DIR}/ff7tk_installer.png)
114124

115125
cpack_ifw_configure_component(ff7tk_libraries FORCED_INSTALLATION SORTING_PRIORITY 100)
116-
cpack_ifw_configure_component_group(ff7tk_demos DEFAULT TRUE SORTING_PRIORITY 1)
126+
cpack_ifw_configure_component_group(ff7tk_i18n DEFAULT TRUE SORTING_PRIORITY 1)
127+
cpack_ifw_configure_component_group(ff7tk_demos DEFAULT TRUE SORTING_PRIORITY 2)
117128

118129
# DEBIAN
119130
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
@@ -127,37 +138,40 @@ if(SPLITPACKAGES)
127138
set(CPACK_DEBIAN_FF7TK_LIBRARIES_PACKAGE_PROVIDES libff7tk)
128139
set(CPACK_DEBIAN_FF7TK_LIBRARIES_PACKAGE_DEPENDS ${DEBIAN_DEPENDS_STRING})
129140
set(CPACK_DEBIAN_FF7TK_LIBRARIES_AUTO_PACKAGE_SHLIBDEPS ON)
141+
set(CPACK_DEBIAN_FF7TK_LIBRARIES_PACKAGE_CONFLICTS libff7tk-all)
142+
set(CPACK_DEBIAN_FF7TK_I18N_PACKAGE_NAME libff7tk-i18n)
143+
set(CPACK_DEBIAN_FF7TK_I18N_PACKAGE_PROVIDES libff7tk-i18n)
144+
set(CPACK_DEBIAN_FF7TK_I18N_PACKAGE_DEPENDS ${DEBIAN_DEPENDS_STRING})
145+
set(CPACK_DEBIAN_FF7TK_I18N_AUTO_PACKAGE_SHLIBDEPS ON)
146+
set(CPACK_DEBIAN_FF7TK_I18N_PACKAGE_ENHANCES libff7tk)
147+
set(CPACK_DEBIAN_FF7TK_I18N_PACKAGE_CONFLICTS libff7tk-all)
130148
set(CPACK_DEBIAN_FF7TK_HEADERS_PACKAGE_NAME libff7tk-dev)
131149
set(CPACK_DEBIAN_FF7TK_HEADERS_PACKAGE_PROVIDES libff7tk-dev)
132150
set(CPACK_DEBIAN_FF7TK_HEADERS_PACKAGE_ENHANCES libff7tk)
133151
set(CPACK_DEBIAN_FF7TK_HEADERS_PACKAGE_CONFLICTS libff7tk-all)
134-
set(CPACK_DEBIAN_FF7TK_HEADERS_PACKAGE_REPLACES libff7tk-all)
135152
set(CPACK_DEBIAN_FF7TK_HEADERS_AUTO_PACKAGE_SHLIBDEPS ON)
136153
set(CPACK_DEBIAN_FF7TK_DEBUG_PACKAGE_NAME libff7tk-dbg)
137154
set(CPACK_DEBIAN_FF7TK_DEBUG_PACKAGE_PROVIDES libff7tk-dbg)
138155
set(CPACK_DEBIAN_FF7TK_DEBUG_PACKAGE_ENHANCES libff7tk)
139156
set(CPACK_DEBIAN_FF7TK_DEBUG_PACKAGE_CONFLICTS libff7tk-all)
140-
set(CPACK_DEBIAN_FF7TK_DEBUG_PACKAGE_REPLACES libff7tk-all)
141157
set(CPACK_DEBIAN_FF7TK_DEBUG_AUTO_PACKAGE_SHLIBDEPS ON)
142158
set(CPACK_DEBIAN_FF7TK_DEMOS_PACKAGE_NAME libff7tk-demos)
143159
set(CPACK_DEBIAN_FF7TK_DEMOS_PACKAGE_PROVIDES libff7tk-demos)
144160
set(CPACK_DEBIAN_FF7TK_DEMOS_PACKAGE_DEPENDS "libff7tk (= ${CPACK_PACKAGE_VERSION})")
145161
set(CPACK_DEBIAN_FF7TK_DEMOS_PACKAGE_CONFLICTS libff7tk-all)
146-
set(CPACK_DEBIAN_FF7TK_DEMOS_PACKAGE_REPLACES libff7tk-all)
147162
set(CPACK_DEBIAN_FF7TK_DEMOS_AUTO_PACKAGE_SHLIBDEPS ON)
148163
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_NAME libff7tk-doc)
149164
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_PROVIDES libff7tk-doc)
150165
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_ENHANCES libff7tk)
151166
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_ARCHITECTURE all)
152167
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_CONFLICTS libff7tk-all)
153-
set(CPACK_DEBIAN_FF7TK_DOCS_PACKAGE_REPLACES libff7tk-all)
154168
else ()
155169
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${DEBIAN_DEPENDS_STRING})
156170
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
157171
set(CPACK_DEBIAN_PACKAGE_NAME libff7tk-all)
158172
set(CPACK_DEBIAN_PACKAGE_PROVIDES libff7tk-all)
159-
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "libff7tk, libff7tk-dev, libff7tk-demos, libff7tk-docs, libff7tk-dbg")
160-
set(CPACK_DEBIAN_PACKAGE_REPLACES "libff7tk, libff7tk-dev, libff7tk-demos, libff7tk-docs, libff7tk-dbg")
173+
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "libff7tk, libff7tk-dev, libff7tk-demos, libff7tk-docs, libff7tk-dbg libff7tk-i18n")
174+
set(CPACK_DEBIAN_PACKAGE_REPLACES "libff7tk, libff7tk-dev, libff7tk-demos, libff7tk-docs, libff7tk-dbg libff7tk-i18n")
161175
endif()
162176

163177
# RPM
@@ -166,6 +180,8 @@ set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
166180
if(SPLITPACKAGES)
167181
set(CPACK_RPM_COMPONENT_INSTALL TRUE)
168182
set(CPACK_RPM_FF7TK_LIBRARIES_PACKAGE_NAME libff7tk)
183+
set(CPACK_RPM_FF7TK_I18N_PACKAGE_NAME libff7tk-i18n)
184+
set(CPACK_RPM_FF7TK_I18N_PACKAGE_PROVIDES libff7tk-i18n)
169185
set(CPACK_RPM_FF7TK_HEADERS_PACKAGE_NAME libff7tk-dev)
170186
set(CPACK_RPM_FF7TK_HEADERS_PACKAGE_PROVIDES libff7tk-dev)
171187
set(CPACK_RPM_FF7TK_DEBUG_PACKAGE_NAME libff7tk-dbg)

translations/CMakeLists.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1)
2-
2+
option(CLEAN_TRS "Clean Obsolete translations from tr files" FALSE)
33
find_package(Qt6LinguistTools)
44

55
set(ff7tk_TRS
@@ -13,7 +13,13 @@ set(ff7tk_TRS
1313
ff7tk_pl.ts
1414
)
1515

16-
qt_create_translation(TRS ${CMAKE_SOURCE_DIR}/src ${ff7tk_TRS} OPTIONS -no-ui-lines -locations none)
16+
if(CLEAN_TRS)
17+
set(CLEAN_OPTION "-no-obsolete")
18+
else()
19+
set(CLEAN_OPTION "")
20+
endif()
21+
22+
qt_create_translation(TRS ${CMAKE_SOURCE_DIR}/src ${ff7tk_TRS} OPTIONS -no-ui-lines -locations none ${CLEAN_OPTION})
1723
add_custom_target(ff7tk_translations ALL DEPENDS ${TRS})
1824

19-
install(FILES ${TRS} DESTINATION ${CMAKE_INSTALL_DATADIR}/ff7tk/translations COMPONENT ff7tk_libraries)
25+
install(FILES ${TRS} DESTINATION ${CMAKE_INSTALL_DATADIR}/ff7tk/translations COMPONENT ff7tk_i18n)

0 commit comments

Comments
 (0)