usr/lib/*/pkgconfig/*.pc
usr/lib/*/cmake/*/*.cmake
usr/lib/*/qt5/*
-usr/lib/*/libdtk/modules/*
-TEMPLATE = subdirs
+include($$PWD/src/dtk_lib.prf)
-CONFIG += ordered
-
-SUBDIRS += \
- src \
- tests
-
-!mac:!win*: SUBDIRS += tools
DEFINES += DTK_STATIC_LIB
CONFIG += staticlib
}
+
+!isEmpty(DTK_STATIC_TRANSLATION) {
+ DEFINES += DTK_STATIC_TRANSLATION
+}
--- /dev/null
+exists($$_PRO_FILE_PWD_/src/dtk_translation.prf) {
+ include($$_PRO_FILE_PWD_/src/dtk_translation.prf)
+} else {
+ load(dtk_translation)
+}
+
+TEMPLATE = subdirs
+CONFIG += ordered
+
+exists($$_PRO_FILE_PWD_/src) SUBDIRS += src
+exists($$_PRO_FILE_PWD_/tools) SUBDIRS += tools
+exists($$_PRO_FILE_PWD_/tests) SUBDIRS += tests
+exists($$_PRO_FILE_PWD_/examples) SUBDIRS += examples
isEmpty(includes.path): error("includes.path must not empty, please load(dtk_build) first!")
isEmpty(target.path): error("target.path must not empty, , please load(dtk_build) first!")
-
-# -----------------------
-# Config pkg-config
-QMAKE_PKGCONFIG_VERSION = $$VERSION
-QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-QMAKE_PKGCONFIG_NAME = DTK_$$upper($$replace(TARGET, "dtk", ""))
-QMAKE_PKGCONFIG_DESCRIPTION = Deepin Tool Kit $$TARGET header files
-QMAKE_PKGCONFIG_INCDIR = $$includes.path
-QMAKE_PKGCONFIG_LIBDIR = $$target.path
-
-
# -----------------------
# Config Qt module
MODULE_ID=$$DTK_MODULE
MODULE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE_ID}.pri
module_libs = $$target.path
MODULE_INCLUDES = $$includes.path
+DTK_MODULE_DEPENDS=$$find(QT, dtk*)
message("config qt module: $$MODULE_ID")
message("write $$MODULE_PRI to: $$mod_inst_pfx")
qt_module.path = $${QT_HOST_DATA}/mkspecs/modules
INSTALLS += qt_module
+
+
+# -----------------------
+# Config pkg-config
+QMAKE_PKGCONFIG_VERSION = $$VERSION
+QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+QMAKE_PKGCONFIG_NAME = DTK_$$upper($$replace(TARGET, "dtk", ""))
+QMAKE_PKGCONFIG_DESCRIPTION = Deepin Tool Kit $$TARGET header files
+QMAKE_PKGCONFIG_REQUIRES += $$DTK_MODULE_DEPENDS
+QMAKE_PKGCONFIG_INCDIR = $$includes.path
+QMAKE_PKGCONFIG_LIBDIR = $$target.path
+
+
+# -----------------------
+# Config translations
+!isEmpty(DTK_STATIC_TRANSLATION) {
+ QRC_PATH = $$mod_inst_pfx/../translations/$${TARGET}_translations.qrc
+ RESOURCES += $$QRC_PATH
+}
+
+TRANSLATIONS += $$mod_inst_pfx/.../translations/*
+
+dtk_translations.path = $$PREFIX/share/$${TARGET}/translations
+dtk_translations.files = $$mod_inst_pfx/../translations/*.qm
+
+INSTALLS += dtk_translations
--- /dev/null
+message ("Process dtk translation")
+message ("Add DTK_NO_TRANSLATION=YES to qmake arguments skip this")
+message ("Add DTK_STATIC_TRANSLATION=YES to add support static translations")
+
+# TODO: check lrelease/lupdate exist
+
+ROOT_DIR = $$_PRO_FILE_PWD_
+
+BASENAME = $$basename(_PRO_FILE_)
+BASENAME = $$split(BASENAME, .)
+BASENAME = $$first(BASENAME)
+
+isEmpty(DTK_NO_TRANSLATION) {
+# system(lupdate $$_PRO_FILE_) | error("Failed to lupdate")
+
+ TRANSLATIONS = $$files($$ROOT_DIR/translations/*.ts)
+ for(tsfile, TRANSLATIONS) {
+ qmfile = $$replace(tsfile, .ts$, .qm)
+ system(lrelease $$tsfile -qm $$qmfile) | error("Failed to lrelease")
+ }
+
+ # create static translations qrc file
+ !isEmpty(DTK_STATIC_TRANSLATION) {
+ # qrc template
+ #<RCC>
+ # <qresource prefix="/dtk/translations">
+ # <file>dtkwidget2_am_ET.qm</file>
+ # <file>dtkwidget2_ar.qm</file>
+ # <file>dtkwidget2_ast.qm</file>
+ # </qresource>
+ #</RCC>
+ QRC_PATH = $$ROOT_DIR/translations/$${BASENAME}_translations.qrc
+ message ("Create static translations file $${QRC_PATH}")
+
+ QRC_CONTENT = "<RCC>"
+ QRC_CONTENT += " <qresource prefix=\"/dtk/translations\">"
+
+ QM_FILE_LIST = $$files($$ROOT_DIR/translations/*.qm)
+ for(qmfile, QM_FILE_LIST) {
+ QRC_CONTENT += " <file>$$basename(qmfile)</file>"
+ }
+ QRC_CONTENT += " </qresource>"
+ QRC_CONTENT += "</RCC>"
+ write_file($$QRC_PATH, QRC_CONTENT) | error("Aborting.")
+ }
+}
#cmake
include(dtk_cmake.prf)
+
#qt module
include(dtk_module.prf)
prf.files+= $$PWD/*.prf
prf.path = $${QT_HOST_DATA}/mkspecs/features
INSTALLS += prf
-
-# -----------------------------------------------
-# TODO: remove this, replace with dtk_build
-
-pri_dev.files += $$PWD/version.pri
-
-isEmpty(LIB_INSTALL_DIR) {
- pri_dev.path = $$PREFIX/lib/libdtk/modules
-} else {
- pri_dev.path = $$LIB_INSTALL_DIR/libdtk/modules
-}
-
-INSTALLS += pri_dev
TEMPLATE = subdirs
-CONFIG += ordered
-
-SUBDIRS += \
- settings \
+!mac:!win*: SUBDIRS += settings