summaryrefslogtreecommitdiffstats
path: root/ui/ui.qbs
blob: 2ba02848a2a12c9cbe673796ca19f33ac3241dd5 (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
import qbs
import qbs.File
import qbs.FileInfo
import qbs.Utilities

Project {
    AndroidApk {
        condition: qbs.targetOS.contains("android")
        name: "qt-tv"
        packageName: "io.qt.stbdemo"
        targetName: "qt-tv"
        Depends {
            productTypes: ["android.nativelibrary"]
            limitToSubProject: true
        }

        manifestFile: sourceDirectory + "/android/AndroidManifest.xml"
    }

    QtGuiApplication {
        Depends { name: "Android.ndk"; required: false }

        Depends { name: "Qt.core"; versionAtLeast: project.minimumQtVersion }
        Depends { name: "Qt"; submodules: ["gui", "qml", "quick", "network", "multimedia"] }
        Depends { name: "openssl"; profiles: [] }

        Depends { name: "Qt.webengine"; required: false }
        Depends { name: "Qt.webview"; required: false }

        Properties {
            condition: qbs.targetOS.contains("android")
            architectures: ["x86", "armv7"]
            Android.ndk.appStl: "gnustl_shared"
        }

        architectures: undefined
        cpp.minimumIosVersion: "8.0"
        cpp.cxxLanguageVersion: "c++11"
        cpp.rpaths: qbs.targetOS.contains("darwin") ? ["@loader_path/../Frameworks"] : undefined
        bundle.isBundle: qbs.targetOS.contains("darwin")
        targetName: bundle.isBundle ? "Qt TV" : "qt-tv"

        files: [
            "Info.plist",
        ]

        Group {
            name: "C++"
            prefix: "cpp/"
            files: [
                "main.cpp",
                "processcontroller.cpp",
                "processcontroller.h",
                "cuterectangle.cpp",
                "cuterectangle.h",
                "webutils.cpp",
                "webutils.h",
            ]
        }

        Group {
            name: "Resources"
            files: [
                "../assets/assets.qrc",
                "../assets/shared.qrc",
            ]
        }

        QMLGroup {
            name: "API Keys"
            condition: files.every(function (f) {
                return File.exists(FileInfo.joinPaths(product.sourceDirectory, prefix, f));
            })
            prefix: "../secrets/"
            files: [
                "TMDb.qml",
                "YouTube.qml"
            ]

            Qt.core.resourceSourceBase: "../secrets"
            Qt.core.resourcePrefix: "/secrets"
        }

        QMLGroup {
            name: "QML"
            prefix: "qml/"
            files: [
                "main.qml",
            ]
        }

        QMLGroup {
            name: "QML - Components"
            prefix: "qml/components/"
            files: [
                "Colors.qml",
                "Fonts.qml",
                "JSONListModel.qml",
                "JSONQuery.qml",
                "Settings.qml",
            ]
        }

        QMLGroup {
            name: "QML - Controls"
            prefix: "qml/controls/"
            files: [
                "+webengine/WebView.qml",
                "+webview/WebView.qml",
                "AbstractButton.qml",
                "ApplicationButton.qml",
                "ApplicationWindow.qml",
                "BaseScreen.qml",
                "BusyIndicator.qml",
                "InvalidSettingsOverlay.qml",
                "Label.qml",
                "NavigationStack.qml",
                "RoundButton.qml",
                "TextButton.qml",
                "TextInputField.qml",
                "VideoPlayer.qml",
                "VerticalSpacer.qml",
                "UrlInputField.qml",
                "SeekSlider.qml",
                "VideoPlayerButton.qml",
                "HorizontalSpacer.qml",
                "WebView.qml",
                "VerticalDissolveEffect.qml",
                "OverlayItem.qml",
                "ToolBar.qml",
                "PageIndicator.qml",
            ]
        }

        QMLGroup {
            name: "QML - Screens"
            prefix: "qml/screens/"
            files: [
                "MainScreen.qml",
                "MoviesControls/AnimatedText.qml",
                "MoviesControls/BackgroundPoster.qml",
                "MoviesControls/MovieCatalogButton.qml",
                "MoviesControls/MoviePoster.qml",
                "MoviesControls/ImageButton.qml",
                "MoviesControls/MovieCatalogView.qml",
                "MoviesControls/ImagePreviewOverlay.qml",
                "MoviesControls/MovieImagesView.qml",
                "MoviesControls/WebViewOverlay.qml",
                "MoviesScreen.qml",
                "SettingsScreen.qml",
                "TrailerScreen.qml",
                "WebBrowserScreen.qml",
                "MovieDetailsScreen.qml",
            ]
        }

        QMLGroup {
            name: "Scripts"
            prefix: "qml/scripts/"
            files: [
                "datamodels.js",
                "3rdparty/YoutubeClientV3.js",
                "XMLHttpRequestCache.js",
            ]
        }

        Group {
            fileTagsFilter: ["application", "aggregate_infoplist", "pkginfo"]
            qbs.install: true
            qbs.installDir: bundle.isBundle ? "Applications" : "bin"
            qbs.installSourceBase: product.buildDirectory
        }
    }
}