Skip to content

Commit e3421f8

Browse files
committed
build コマンドから --webrtc-fetch 引数を削除して fetch, revert コマンドを追加
1 parent 0ab51ed commit e3421f8

File tree

2 files changed

+92
-17
lines changed

2 files changed

+92
-17
lines changed

CHANGES.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@
1212
VERSION ファイルを上げただけの場合は変更履歴記録は不要。
1313
パッチやビルドの変更のみ記録すること。
1414

15+
## 2024-05-20
16+
17+
- [CHANGE] --webrtc-fetch, --webrtc-fetch-force オプションを削除
18+
- 代わりに run.py fetch コマンドを利用する
19+
- @melpon
20+
- [ADD] run.py に fetch コマンドと revert コマンドを追加
21+
- @melpon
22+
23+
## 2024-05-06
24+
25+
- [ADD] run.py にバージョン操作系のコマンド `version_list``version_update` を追加
26+
- @melpon
27+
1528
## m124.6367.0.0
1629

1730
- [CHANGE] ios / macos_arm64 向けに `revert_asm_changes.patch` を追加

run.py

Lines changed: 79 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -327,17 +327,14 @@ def apply_patch(patch, dir, depth):
327327
cmd(["patch", f"-p{depth}"], stdin=stdin)
328328

329329

330-
def get_webrtc(
331-
source_dir, patch_dir, version, target, webrtc_source_dir=None, force=False, fetch=False
332-
):
330+
def get_webrtc(source_dir, patch_dir, version, target, webrtc_source_dir=None):
333331
if webrtc_source_dir is None:
334332
webrtc_source_dir = os.path.join(source_dir, "webrtc")
335-
if force:
336-
rm_rf(webrtc_source_dir)
337333

338334
mkdir_p(webrtc_source_dir)
339335

340-
if not os.path.exists(os.path.join(webrtc_source_dir, "src")):
336+
src_dir = os.path.join(webrtc_source_dir, "src")
337+
if not os.path.exists(src_dir):
341338
with cd(webrtc_source_dir):
342339
cmd(["gclient"])
343340
cmd(["fetch", "webrtc"])
@@ -347,16 +344,10 @@ def get_webrtc(
347344
if target == "ios":
348345
with open(".gclient", "a") as f:
349346
f.write("target_os = [ 'ios' ]\n")
350-
fetch = True
351347

352-
src_dir = os.path.join(webrtc_source_dir, "src")
353-
if fetch:
354348
with cd(src_dir):
355349
cmd(["git", "fetch"])
356-
if version == "HEAD":
357-
cmd(["git", "checkout", "-f", "origin/HEAD"])
358-
else:
359-
cmd(["git", "checkout", "-f", version])
350+
cmd(["git", "checkout", "-f", version])
360351
cmd(["git", "clean", "-df"])
361352
cmd(["gclient", "sync", "-D", "--force", "--reset", "--with_branch_heads"])
362353
for patch in PATCHES[target]:
@@ -365,6 +356,36 @@ def get_webrtc(
365356
apply_patch(os.path.join(patch_dir, patch), dir, depth)
366357

367358

359+
def fetch_webrtc(source_dir, patch_dir, version, target, webrtc_source_dir=None):
360+
if webrtc_source_dir is None:
361+
webrtc_source_dir = os.path.join(source_dir, "webrtc")
362+
363+
src_dir = os.path.join(webrtc_source_dir, "src")
364+
with cd(src_dir):
365+
cmd(["git", "fetch"])
366+
cmd(["git", "checkout", "-f", version])
367+
cmd(["git", "clean", "-df"])
368+
cmd(["gclient", "sync", "-D", "--force", "--reset", "--with_branch_heads"])
369+
for patch in PATCHES[target]:
370+
depth, dirs = PATCH_INFO.get(patch, (1, ["."]))
371+
dir = os.path.join(src_dir, *dirs)
372+
apply_patch(os.path.join(patch_dir, patch), dir, depth)
373+
374+
375+
def revert_webrtc(source_dir, patch_dir, target, webrtc_source_dir=None):
376+
if webrtc_source_dir is None:
377+
webrtc_source_dir = os.path.join(source_dir, "webrtc")
378+
379+
src_dir = os.path.join(webrtc_source_dir, "src")
380+
with cd(src_dir):
381+
cmd(["gclient", "recurse", "git", "reset", "--hard"])
382+
cmd(["gclient", "recurse", "git", "clean", "-df"])
383+
for patch in PATCHES[target]:
384+
depth, dirs = PATCH_INFO.get(patch, (1, ["."]))
385+
dir = os.path.join(src_dir, *dirs)
386+
apply_patch(os.path.join(patch_dir, patch), dir, depth)
387+
388+
368389
def git_get_url_and_revision(dir):
369390
with cd(dir):
370391
rev = cmdcap(["git", "rev-parse", "HEAD"])
@@ -1307,8 +1328,6 @@ def main():
13071328
bp.add_argument("--build-dir")
13081329
bp.add_argument("--rootfs-fetch-force", action="store_true")
13091330
bp.add_argument("--depottools-fetch", action="store_true")
1310-
bp.add_argument("--webrtc-fetch", action="store_true")
1311-
bp.add_argument("--webrtc-fetch-force", action="store_true")
13121331
bp.add_argument("--webrtc-gen", action="store_true")
13131332
bp.add_argument("--webrtc-gen-force", action="store_true")
13141333
bp.add_argument("--webrtc-extra-gn-args", default="")
@@ -1318,6 +1337,24 @@ def main():
13181337
bp.add_argument("--webrtc-overlap-ios-build-dir", action="store_true")
13191338
bp.add_argument("--webrtc-build-dir")
13201339
bp.add_argument("--webrtc-source-dir")
1340+
# VERSION で指定されたバージョンのソースを取得する
1341+
fp = sp.add_parser("fetch")
1342+
fp.set_defaults(op="fetch")
1343+
fp.add_argument("target", choices=TARGETS)
1344+
fp.add_argument("--debug", action="store_true")
1345+
fp.add_argument("--source-dir")
1346+
fp.add_argument("--build-dir")
1347+
fp.add_argument("--webrtc-source-dir")
1348+
fp.add_argument("--webrtc-build-dir")
1349+
# ソースコードの状態を現在のバージョンに戻す
1350+
rp = sp.add_parser("revert")
1351+
rp.set_defaults(op="revert")
1352+
rp.add_argument("target", choices=TARGETS)
1353+
rp.add_argument("--debug", action="store_true")
1354+
rp.add_argument("--source-dir")
1355+
rp.add_argument("--build-dir")
1356+
rp.add_argument("--webrtc-source-dir")
1357+
rp.add_argument("--webrtc-build-dir")
13211358
# 現在 build と package を分ける意味は無いのだけど、
13221359
# 今後複数のビルドを纏めてパッケージングする時に備えて別コマンドにしておく
13231360
pp = sp.add_parser("package")
@@ -1441,8 +1478,6 @@ def main():
14411478
version_info.webrtc_commit,
14421479
args.target,
14431480
webrtc_source_dir=webrtc_source_dir,
1444-
fetch=args.webrtc_fetch,
1445-
force=args.webrtc_fetch_force,
14461481
)
14471482

14481483
# ビルド
@@ -1473,6 +1508,33 @@ def main():
14731508
else:
14741509
build_webrtc(**build_webrtc_args, target=args.target)
14751510

1511+
if args.op == "fetch":
1512+
mkdir_p(source_dir)
1513+
1514+
with cd(BASE_DIR):
1515+
dir = get_depot_tools(source_dir, fetch=False)
1516+
add_path(dir)
1517+
fetch_webrtc(
1518+
source_dir,
1519+
patch_dir,
1520+
version_info.webrtc_commit,
1521+
args.target,
1522+
webrtc_source_dir=webrtc_source_dir,
1523+
)
1524+
1525+
if args.op == "revert":
1526+
mkdir_p(source_dir)
1527+
1528+
with cd(BASE_DIR):
1529+
dir = get_depot_tools(source_dir, fetch=False)
1530+
add_path(dir)
1531+
revert_webrtc(
1532+
source_dir,
1533+
patch_dir,
1534+
args.target,
1535+
webrtc_source_dir=webrtc_source_dir,
1536+
)
1537+
14761538
if args.op == "package":
14771539
mkdir_p(package_dir)
14781540
with cd(BASE_DIR):

0 commit comments

Comments
 (0)