Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gaia Build System introduction
Search
Yuren Ju
September 17, 2014
Technology
2
180
Gaia Build System introduction
Yuren Ju
September 17, 2014
Tweet
Share
More Decks by Yuren Ju
See All by Yuren Ju
Taste Cucumber.js - JavaScript BDD Framework
yurenju
0
95
Code For America 見聞錄 - 社會安全網
yurenju
0
110
Impossible Election for recall in Taiwan
yurenju
1
380
物資管理系統與災民證
yurenju
0
810
JavaScript 開發流程自動化懶人包
yurenju
38
5.9k
Code Coverage -- Javascript Frontend + Backend
yurenju
14
7.9k
Loopback + Angular.js
yurenju
3
480
bifrost 物資管理系統
yurenju
4
250
Open Data Initiatives for Taiwan
yurenju
0
230
Other Decks in Technology
See All in Technology
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.3k
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
630
Janus
bkuhlmann
1
490
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
240
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
0
330
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
2
480
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
380
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
0
2.7k
競技としてのKaggle、役に立つKaggle
yu4u
3
1.7k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
How STYLIGHT went responsive
nonsquared
92
4.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
In The Pink: A Labor of Love
frogandcode
138
21k
Building Applications with DynamoDB
mza
88
5.6k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Building Adaptive Systems
keathley
31
1.9k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Documentation Writing (for coders)
carmenintech
60
3.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Into the Great Unknown - MozCon
thekraken
10
990
Transcript
Yuren Gaia Build System
• generate profile directory • run tests (integration, unit, build,
lint) make
$ make
Make xpcshell ! Download xpcshell runtime
None
Xpcshell
:-(
Using CommonJs Just like ! var fs = require(‘fs’); fs.readFileSync(FILE,
{encoding: ‘UTF-8’});
xpcshell -f xpcshell-commonjs.js -e “run(BUILD_SCRIPT);” initial script build script
• 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
pre-app.js
options Makefile - declare - export xpcshell-commonjs - get from
env variable
utils utils-node utils-xpc
• getFile(); • ls(nsIFile) • getFileContent(nsIFile) • writeContent(nsIFile) • ensureFolderExists(nsIFile)
utils • copyFileTo() • log() • Commander • scriptLoader.load()
build modules
src dirs stage dir profile dir
build modules
• make build-test-integration • make build-test-unit test