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
220
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gaia Build System introduction
Yuren Ju
September 17, 2014
More Decks by Yuren Ju
See All by Yuren Ju
Taste Cucumber.js - JavaScript BDD Framework
yurenju
0
190
Code For America 見聞錄 - 社會安全網
yurenju
0
250
Impossible Election for recall in Taiwan
yurenju
1
530
物資管理系統與災民證
yurenju
0
1.1k
JavaScript 開發流程自動化懶人包
yurenju
38
6.1k
Code Coverage -- Javascript Frontend + Backend
yurenju
14
8.1k
Loopback + Angular.js
yurenju
3
620
bifrost 物資管理系統
yurenju
4
330
Open Data Initiatives for Taiwan
yurenju
0
390
Other Decks in Technology
See All in Technology
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
QAタスクをスキル化したいときに考えること
aomoriringo
0
170
Retriever と Reranker、結局どうする?
kazuaki
2
620
サイバー捜査員研修(後半)
nomizone
1
530
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
150
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
0
260
変化の早いClaude Codeを 書籍に落とし込む
oikon48
6
1.2k
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
200
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
AI時代の強いチームの作り方
yuukiyo
23
15k
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
200
事業価値と Engineering 2026年度版
recruitengineers
PRO
14
5.3k
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
200
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Google's AI Overviews - The New Search
badams
0
1.1k
Navigating Team Friction
lara
192
16k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Exploring anti-patterns in Rails
aemeredith
3
450
Are puppies a ranking factor?
jonoalderson
1
3.7k
A better future with KSS
kneath
240
18k
GitHub's CSS Performance
jonrohan
1033
470k
How to Ace a Technical Interview
jacobian
281
24k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
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