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 | |
---|
9 | var 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 | }; |
---|