[483] | 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 | }; |
---|