source: Dev/trunk/src/client/util/buildscripts/profiles/webkitMobile.profile.js @ 483

Last change on this file since 483 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

  • Property svn:executable set to *
File size: 5.8 KB
Line 
1// Profile for mobile builds on WebKit.
2//
3// Use when:
4//              - target to webkit platforms (iOS and Android)
5//              - document is in standards mode (i.e., with <!DOCTYPE html>)
6// Usage:
7//              ./build.sh releaseDir=... action=release optimize=closure profile=webkitMobile
8
9var profile = {
10        // relative to this file
11        basePath: "../../..",
12
13        // relative to base path
14        releaseDir: "../webkitMobile",
15
16        stripConsole: "normal",
17
18        // Use closure to optimize, to remove code branches for has("ie") etc.
19        optimize: "closure",
20        layerOptimize: "closure",
21
22        packages: [
23                {
24                        name: "dojo",
25                        location: "./dojo"
26                },
27                {
28                        name: "dijit",
29                        location: "./dijit"
30                },
31                {
32                        name: "dojox",
33                        location: "./dojox"
34                }
35        ],
36
37        // this is a "new-version" profile since is sets the variable "profile" rather than "dependencies"; therefore
38        // the layers property is a map from AMD module id to layer properties...
39        layers: {
40                "dojo/dojo": {
41                        // the module dojo/dojo is the default loader (you can make multiple bootstraps with the new builder)
42                        include: [
43                                // the include vector gives the modules to include in this layer
44                                // note: unless the dojo/dojo layer has the property "customBase" set to truthy, then module
45                                // dojo/main will be automatically added...and conversely
46                                "dijit/_WidgetBase",
47                                "dijit/_Container",
48                                "dijit/_Contained",
49                                "dijit/registry"
50                        ],
51                        customBase: true
52                },
53                "dojo/main": {
54                        include: ["dojo/selector/lite"]
55                },
56                "dojox/mobile": {
57                        include: [
58                                "dojox/mobile"
59                        ],
60                        exclude: [
61                                // exclude gives a dependency forrest to exclude; i tend to put is second since the algorithm is...
62                                //
63                                // The modules to include in a particular layer are computed as follows:
64                                //
65                                // 1. The layer module itself.
66                                //
67                                // 2. Plus the dependency graph implied by the AMD dependencies of the layer module. This is given
68                                //      by the dependency vector found in the define application associated with the target module,
69                                //      the modules found in the dependency vectors of those modules, and so on until all modules in
70                                //      the graph have been found (remember, though not desirable, there may be cycles, so the graph
71                                //      is not necessarily a tree).
72                                //
73                                // 3. Plus all modules given in the include array, along with all of those modules' dependency graphs.
74                                //
75                                // 4. Less all modules given in the exclude array, along with all of those modules' dependency graphs.
76
77                                "dojo/dojo"
78                        ]
79                },
80                "dojox/mobile/app": {
81                        include: [
82                                "dojox/mobile/app"
83                        ],
84                        exclude: [
85                                "dojo/dojo",
86                                "dojox/mobile"
87                        ]
88
89
90                }
91        },
92
93        staticHasFeatures: {
94                // Default settings for a browser, from dojo.js; apparently these get modified in special cases
95                // like when running under node, or against RequireJS, but nothing we need to worry about.
96                "host-browser": true,
97                "host-node": false,
98                "host-rhino": false,
99                "dom": true,
100                "dojo-amd-factory-scan": true,
101                "dojo-loader": true,
102                "dojo-has-api": true,
103                "dojo-inject-api": true,
104                "dojo-timeout-api": true,
105                "dojo-trace-api": true,
106                "dojo-log-api": true,
107                "dojo-dom-ready-api": true,
108                "dojo-publish-privates": true,
109                "dojo-config-api": true,
110                "dojo-sniff": true,
111                "dojo-sync-loader": true,
112                "dojo-test-sniff": true,
113                "config-tlmSiblingOfDojo": true,
114
115                // Other configuration switches that are hardcoded in the source.
116                // Setting some of these to false may reduce code size, but unclear what they all mean.
117                "config-publishRequireResult": true,
118                "dojo-config-addOnLoad": 1,             // hardcoded to 1 in the source
119                "dojo-config-require": true,
120                "dojo-debug-messages": true,
121                "dojo-gettext-api": true,                       // apparently unused
122                "dojo-guarantee-console": true,
123                "dojo-loader-eval-hint-url": true,
124                "dojo-modulePaths": true,
125                "dojo-moduleUrl": true,
126                "dojo-v1x-i18n-Api": true,
127                "dojo-xhr-factory": true,       // if require.getXhr() exists (true for dojo's AMD loader, false for requireJS?)
128                "extend-dojo": true,            // add functions to global dojo object
129
130                // Browser flags
131                "webkit": true, // this is actually a number like 525 but I don't think anyone is using it
132                "air": false,
133                "ff": undefined,
134                "mozilla": undefined,
135                "ie": undefined,
136
137                // Configuration settings
138                "config-selectorEngine": "lite",
139                "dijit-legacy-requires": false,         // don't load unrequested modules for back-compat
140                "dom-quirks": false,                            // we assume/require that the app is in strict mode
141                "quirks": false,                                        // we assume/require that the app is in strict mode
142
143                // Flags for old IE browser bugs / non-standard behavior
144                "array-extensible": true,               // false for old IE
145                "bug-for-in-skips-shadowed": 0, // false for old IE
146                "dom-attributes-explicit": true,        // everyone except IE6, 7
147                "dom-attributes-specified-flag": true,  //everyone except IE6-8
148                "dom-addeventlistener": true,           // everyone except IE
149                "native-xhr": true,                     // has XMLHTTPRequest
150                "ie-event-behavior": undefined,
151                "dojo-force-activex-xhr": false,        // true is for IE path
152
153                // Flags for features
154                "dom-matches-selector": true,
155                "dom-qsa": true,
156                "dom-qsa2.1": true,
157                "dom-qsa3": true,
158                "json-parse": true,
159                "json-stringify": true,
160
161                // Behavior that varies by browser, but is constant across webkit mobile browsers
162                "events-keypress-typed": true,          // whether printable characters generate keypress event?
163                "events-mouseenter": false,             // this is set by mouse.html but never used
164                "touch": true,
165                "highcontrast": false,                  // safari always displays background images, even when device in high-contrast mode
166                "textarea-needs-help-shrinking": true,
167                "css-user-select": "'WebkitUserSelect'"
168
169                // Values which can be different across mobile devices, so intentionally not specified in this list.
170                // "event-orientationchange": true,
171                // "safari": true,
172                // "android": true
173                // "wii": true
174        },
175
176        selectorEngine: "lite",
177
178        defaultConfig: {
179                hasCache: {
180                        // default
181                        "config-selectorEngine": "lite"
182                },
183                async: true
184        }
185};
Note: See TracBrowser for help on using the repository browser.