Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Yuren Gaia Build System
Slide 2
Slide 2 text
• generate profile directory • run tests (integration, unit, build, lint) make
Slide 3
Slide 3 text
$ make
Slide 4
Slide 4 text
Make xpcshell ! Download xpcshell runtime
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
Xpcshell
Slide 7
Slide 7 text
:-(
Slide 8
Slide 8 text
Using CommonJs Just like ! var fs = require(‘fs’); fs.readFileSync(FILE, {encoding: ‘UTF-8’});
Slide 9
Slide 9 text
xpcshell -f xpcshell-commonjs.js -e “run(BUILD_SCRIPT);” initial script build script
Slide 10
Slide 10 text
• Initial require() function • Binding work directory for first argument of require() ! • utils => GAIA_DIR/build/utils.js • submodule => GAIA_DIR/apps/keyboard/build/submodule.js xpcshell-commonjs.js
Slide 11
Slide 11 text
pre-app.js
Slide 12
Slide 12 text
options Makefile - declare - export xpcshell-commonjs - get from env variable
Slide 13
Slide 13 text
utils utils-node utils-xpc
Slide 14
Slide 14 text
• getFile(); • ls(nsIFile) • getFileContent(nsIFile) • writeContent(nsIFile) • ensureFolderExists(nsIFile) utils • copyFileTo() • log() • Commander • scriptLoader.load()
Slide 15
Slide 15 text
build modules
Slide 16
Slide 16 text
src dirs stage dir profile dir
Slide 17
Slide 17 text
build modules
Slide 18
Slide 18 text
• make build-test-integration • make build-test-unit test