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