@@ -327,17 +327,14 @@ def apply_patch(patch, dir, depth):
327
327
cmd (["patch" , f"-p{ depth } " ], stdin = stdin )
328
328
329
329
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 ):
333
331
if webrtc_source_dir is None :
334
332
webrtc_source_dir = os .path .join (source_dir , "webrtc" )
335
- if force :
336
- rm_rf (webrtc_source_dir )
337
333
338
334
mkdir_p (webrtc_source_dir )
339
335
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 ):
341
338
with cd (webrtc_source_dir ):
342
339
cmd (["gclient" ])
343
340
cmd (["fetch" , "webrtc" ])
@@ -347,16 +344,10 @@ def get_webrtc(
347
344
if target == "ios" :
348
345
with open (".gclient" , "a" ) as f :
349
346
f .write ("target_os = [ 'ios' ]\n " )
350
- fetch = True
351
347
352
- src_dir = os .path .join (webrtc_source_dir , "src" )
353
- if fetch :
354
348
with cd (src_dir ):
355
349
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 ])
360
351
cmd (["git" , "clean" , "-df" ])
361
352
cmd (["gclient" , "sync" , "-D" , "--force" , "--reset" , "--with_branch_heads" ])
362
353
for patch in PATCHES [target ]:
@@ -365,6 +356,36 @@ def get_webrtc(
365
356
apply_patch (os .path .join (patch_dir , patch ), dir , depth )
366
357
367
358
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
+
368
389
def git_get_url_and_revision (dir ):
369
390
with cd (dir ):
370
391
rev = cmdcap (["git" , "rev-parse" , "HEAD" ])
@@ -1307,8 +1328,6 @@ def main():
1307
1328
bp .add_argument ("--build-dir" )
1308
1329
bp .add_argument ("--rootfs-fetch-force" , action = "store_true" )
1309
1330
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" )
1312
1331
bp .add_argument ("--webrtc-gen" , action = "store_true" )
1313
1332
bp .add_argument ("--webrtc-gen-force" , action = "store_true" )
1314
1333
bp .add_argument ("--webrtc-extra-gn-args" , default = "" )
@@ -1318,6 +1337,24 @@ def main():
1318
1337
bp .add_argument ("--webrtc-overlap-ios-build-dir" , action = "store_true" )
1319
1338
bp .add_argument ("--webrtc-build-dir" )
1320
1339
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" )
1321
1358
# 現在 build と package を分ける意味は無いのだけど、
1322
1359
# 今後複数のビルドを纏めてパッケージングする時に備えて別コマンドにしておく
1323
1360
pp = sp .add_parser ("package" )
@@ -1441,8 +1478,6 @@ def main():
1441
1478
version_info .webrtc_commit ,
1442
1479
args .target ,
1443
1480
webrtc_source_dir = webrtc_source_dir ,
1444
- fetch = args .webrtc_fetch ,
1445
- force = args .webrtc_fetch_force ,
1446
1481
)
1447
1482
1448
1483
# ビルド
@@ -1473,6 +1508,33 @@ def main():
1473
1508
else :
1474
1509
build_webrtc (** build_webrtc_args , target = args .target )
1475
1510
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
+
1476
1538
if args .op == "package" :
1477
1539
mkdir_p (package_dir )
1478
1540
with cd (BASE_DIR ):
0 commit comments