summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_android_deps.prf
blob: 7ec7bad0476db1608a0737e626357827342f970c (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
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

#  W A R N I N G
#  -------------
#
# This file is not part of the Qt API.  It exists purely as an
# implementation detail.  It may change from version to version
# without notice, or even be removed.
#
# We mean it.
#

# Generates an xml file to match the library in lib/ listing the dependencies
# of the module on JNI-based libraries etc. Used for deployment of an Android
# app.

ANDROID_DEPENDS_DIR = $$MODULE_BASE_OUTDIR/lib/
DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml

!build_pass {
    !isEmpty(MODULE_PLUGIN_TYPES) {
        for(PLUGIN_TYPE, MODULE_PLUGIN_TYPES) {
            ANDROID_BUNDLED_FILES += "plugins/$$PLUGIN_TYPE"
        }
    }

    !isEmpty(ANDROID_JAR_DEPENDENCIES) {
        for(JAR_FILE, ANDROID_JAR_DEPENDENCIES) {
            INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
            !isEmpty(INIT_CLASS): INIT_CLASS = "initClass=\"$$INIT_CLASS\""
            JAR_FILE = $$section(JAR_FILE, ":", 0, 0)
            FILE_CONTENT += "<jar file=\"$$JAR_FILE\" $$INIT_CLASS />"
        }
    }

    !isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES) {
        for(JAR_FILE, ANDROID_BUNDLED_JAR_DEPENDENCIES) {
            INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
            !isEmpty(INIT_CLASS): INIT_CLASS = "initClass=\"$$INIT_CLASS\""
            JAR_FILE = $$section(JAR_FILE, ":", 0, 0)
            FILE_CONTENT += "<jar bundling=\"1\" file=\"$$JAR_FILE\" $$INIT_CLASS />"
        }
    }

    !isEmpty(ANDROID_LIB_DEPENDENCIES) {
        for(LIB_FILE, ANDROID_LIB_DEPENDENCIES) {
            EXTENDS = $$section(LIB_FILE, ":", 1, 1)
            !isEmpty(EXTENDS): EXTENDS = "extends=\"$$EXTENDS\""
            LIB_FILE = $$section(LIB_FILE, ":", 0, 0)
            FILE_CONTENT += "<lib file=\"$$LIB_FILE\" $$EXTENDS />"
        }
    }

    !isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS) {
        for(REPLACEMENT, ANDROID_LIB_DEPENDENCY_REPLACEMENTS) {
            REPLACEMENT_FILE = $$section(REPLACEMENT, ":", 0, 0)
            LIB_FILE = $$section(REPLACEMENT, ":", 1, 1)
            FILE_CONTENT += "<lib file=\"$$LIB_FILE\" replaces=\"$$REPLACEMENT_FILE\" />"
        }
    }

    !isEmpty(ANDROID_BUNDLED_FILES) {
        for (BUNDLED_FILE, ANDROID_BUNDLED_FILES) {
            FILE_CONTENT += "<bundled file=\"$$BUNDLED_FILE\" />"
        }
    }

    !isEmpty(ANDROID_PERMISSIONS) {
        for (ANDROID_PERMISSION, ANDROID_PERMISSIONS) {
            FILE_CONTENT += "<permission name=\"$$ANDROID_PERMISSION\" />"
        }
    }

    !isEmpty(ANDROID_FEATURES) {
        for (ANDROID_FEATURE, ANDROID_FEATURES) {
            FILE_CONTENT += "<feature name=\"$$ANDROID_FEATURE\" />"
        }
    }


    !isEmpty(FILE_CONTENT) {
        FILE_CONTENT = "<rules><dependencies><lib name=\"$$TARGET\"><depends>" $$FILE_CONTENT "</depends></lib></dependencies></rules>"
        write_file($$DEPENDENCY_FILE, FILE_CONTENT) | error("Aborting.")
    }
}

!isEmpty(ANDROID_JAR_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS)|!isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES)|!isEmpty(ANDROID_BUNDLED_FILES) {
    install_dependencies_file.files = $$DEPENDENCY_FILE
    install_dependencies_file.path = $$[QT_INSTALL_LIBS]
    INSTALLS += install_dependencies_file
}