Left: | ||
Right: |
OLD | NEW |
---|---|
1 from __future__ import print_function | |
2 | |
1 import sys | 3 import sys |
2 import os | 4 import os |
3 import shutil | 5 import shutil |
4 | 6 |
7 | |
5 def duplicate(src, dst, symlink=False): | 8 def duplicate(src, dst, symlink=False): |
sergei
2018/01/22 10:08:59
It seems that symlink parameter is not passed, sho
sergei
2018/01/22 10:10:32
BTW, what about moving this function into common f
anton
2018/01/22 10:18:41
Since it's not used anywhere else (and will not be
anton
2018/01/22 10:18:41
Vasily noted it too.
Please ready my answer https:
sergei
2018/01/22 12:04:02
Acknowledged, maybe it makes sense.
| |
6 if (os.path.exists(dst)): | 9 if os.path.exists(dst): |
7 if (os.path.isdir(dst)): | 10 if os.path.isdir(dst): |
8 print('Deleting %s' % dst) | 11 print('Deleting {}'.format(dst)) |
9 shutil.rmtree(dst); | 12 shutil.rmtree(dst) |
13 else: | |
14 # symlink | |
15 os.unlink(dst) | |
sergei
2018/01/22 12:04:02
Actually, according to the documentation "This fol
| |
16 | |
17 dst_parent = os.path.abspath(os.path.join(dst, os.pardir)) | |
18 if not os.path.exists(dst_parent): | |
19 print('Creating parent directory {} for {}'.format(dst_parent, dst)) | |
20 os.makedirs(dst_parent) | |
21 | |
22 if symlink: | |
23 print('Symlinking {} to {}'.format(src, dst)) | |
24 os.symlink(src, dst) | |
10 else: | 25 else: |
11 # symlink | 26 print('Copying {} to {}'.format(src, dst)) |
12 os.unlink(dst) | 27 shutil.copytree(src, dst) |
13 | |
14 dst_parent = os.path.abspath(os.path.join(dst, os.pardir)) | |
15 if not os.path.exists(dst_parent): | |
16 print('Creating parent directory %s for %s' % (dst_parent, dst)) | |
17 os.makedirs(dst_parent) | |
18 | 28 |
19 if symlink: | |
20 print('Symlinking %s to %s' % (src, dst)) | |
21 os.symlink(src, dst) | |
22 else: | |
23 print('Copying %s to %s' % (src, dst)) | |
24 shutil.copytree(src, dst) | |
25 | 29 |
26 def prepare_deps(): | 30 def prepare_deps(): |
27 cwd = os.getcwd() | 31 cwd = os.getcwd() |
28 libadblockplus_root = os.path.join(cwd, 'src', 'third_party', 'libadblockplus' , 'third_party') | 32 libadblockplus_third_party = os.path.join(cwd, |
29 | 33 'src', 'third_party', |
30 # googletest | 34 'libadblockplus', 'third_party') |
31 # Chromium's googletest has a bit different directories structure ('src' as su bdirectory) | |
32 #googletest_src = os.path.join(cwd, 'src', 'third_party', 'googletest') | |
33 #googletest_dst = os.path.join(libadblockplus_root, 'googletest') | |
34 #duplicate(googletest_src, googletest_dst) | |
35 | 35 |
36 # gyp | 36 # googletest |
37 # Chromium's gyp can't be used because of compile error: | 37 # |
38 # *** No rule to make target `shell/src/Main.cpp', needed by `local/armeabi-v7 a/objs/abpshell/shell/src/Main.o'. Stop. | 38 # Chromium's googletest has a bit different directories structure |
39 # See. https://hg.adblockplus.org/gyp/rev/fix-issue-339 | 39 # ('src' as subdirectory) |
40 #gyp_src = os.path.join(cwd, 'src', 'tools', 'gyp') | |
41 #gyp_dst = os.path.join(libadblockplus_root, 'gyp') | |
42 #duplicate(gyp_src, gyp_dst) | |
43 | 40 |
44 # back-up /v8/testing/gtest as it will be deleted while preparing v8 | 41 # gyp |
45 gtest_bak_src = os.path.join(libadblockplus_root, 'v8', 'testing', 'gtest') | 42 # |
46 gtest_bak_dst = os.path.join(libadblockplus_root, 'gtest.bak') | 43 # Chromium's gyp can't be used because of compile error: |
47 shutil.move(gtest_bak_src, gtest_bak_dst) | 44 # *** No rule to make target `shell/src/Main.cpp', |
45 # needed by `local/armeabi-v7a/objs/abpshell/shell/src/Main.o'. Stop. | |
46 # See. https://hg.adblockplus.org/gyp/rev/fix-issue-339 | |
48 | 47 |
49 # v8 | 48 # back-up /v8/testing/gtest as it will be deleted while preparing v8 |
50 v8_src = os.path.join(cwd, 'src', 'v8') | 49 gtest_bak_src = os.path.join(libadblockplus_third_party, |
51 v8_dst = os.path.join(libadblockplus_root, 'v8') | 50 'v8', 'testing', 'gtest') |
52 duplicate(v8_src, v8_dst) | 51 gtest_bak_dst = os.path.join(libadblockplus_third_party, 'gtest.bak') |
52 shutil.move(gtest_bak_src, gtest_bak_dst) | |
53 | 53 |
54 # restore /v8/testing/gtest from backup | 54 # v8 |
55 shutil.move(gtest_bak_dst, gtest_bak_src) | 55 v8_src = os.path.join(cwd, 'src', 'v8') |
56 v8_dst = os.path.join(libadblockplus_third_party, 'v8') | |
57 duplicate(v8_src, v8_dst) | |
56 | 58 |
57 # v8/base/trace_event/common | 59 # restore /v8/testing/gtest from backup |
58 trace_common_src = os.path.join(cwd, 'src', 'base', 'trace_event', 'common') | 60 shutil.move(gtest_bak_dst, gtest_bak_src) |
59 trace_common_dst = os.path.join(libadblockplus_root, 'v8', 'base', 'trace_even t', 'common') | |
60 duplicate(trace_common_src, trace_common_dst) | |
61 | 61 |
62 # v8/build | 62 # v8/testing/gtest |
sergei
2018/01/22 10:08:59
I thought that v8/testing/gtest is not used in lib
anton
2018/01/22 10:18:41
then why it's listed in dependencies https://githu
| |
63 build_src = os.path.join(cwd, 'src', 'build') | 63 # |
64 build_dst = os.path.join(libadblockplus_root, 'v8', 'build') | 64 # Chromium's gtest can't be used becuase of compile error: |
65 duplicate(build_src, build_dst) | 65 # fatal error: third_party/googletest/src/googletest/include/gtest/gtest_pro d.h: No such file or directory |
66 # #include "third_party/googletest/src/googletest/include/gtest/gtest_prod.h " | |
67 # so we have to back-up gtest above and restore it | |
68 # after prepring of 'v8' directory | |
66 | 69 |
67 # v8/testing/gtest | 70 for path in [ |
sergei
2018/01/22 10:08:59
Will it stop working if we remove this for loop? A
anton
2018/01/22 10:18:41
They are copied not from v8_src but from different
sergei
2018/01/22 12:04:02
Acknowledged. I think the comments should be diffe
sergei
2018/01/24 17:23:40
No objections, could you please file an issue for
| |
68 # Chromium's gtest can't be used becuase of compile error: | 71 ('base', 'trace_event', 'common'), |
69 # fatal error: third_party/googletest/src/googletest/include/gtest/gtest_prod. h: No such file or directory | 72 ('build',), |
70 # #include "third_party/googletest/src/googletest/include/gtest/gtest_prod.h" | 73 ('tools', 'gyp'), |
71 # so we have to back-up gtest above and restore it after prepring of 'v8' dire ctory | 74 ('tools', 'clang'), |
72 #gtest_src = os.path.join(cwd, 'src', 'testing', 'gtest') | 75 ('third_party', 'icu'), |
73 #gtest_dst = os.path.join(libadblockplus_root, 'v8', 'testing', 'gtest') | 76 ('third_party' , 'jinja2'), |
74 #duplicate(gtest_src, gtest_dst) | 77 ('third_party', 'markupsafe') |
78 ]: | |
79 src = os.path.join(cwd, 'src', *path) | |
80 dst = os.path.join(libadblockplus_third_party, 'v8', *path) | |
81 duplicate(src, dst) | |
75 | 82 |
76 # v8/tools/gyp | 83 return 0 |
77 tools_gyp_src = os.path.join(cwd, 'src', 'tools', 'gyp') | |
78 tools_gyp_dst = os.path.join(libadblockplus_root, 'v8', 'tools', 'gyp') | |
79 duplicate(tools_gyp_src, tools_gyp_dst) | |
80 | 84 |
81 # v8/tools/clang | |
82 clang_src = os.path.join(cwd, 'src', 'tools', 'clang') | |
83 clang_dst = os.path.join(libadblockplus_root, 'v8', 'tools', 'clang') | |
84 duplicate(clang_src, clang_dst) | |
85 | 85 |
86 # v8/third_party/icu | 86 if __name__ == '__main__': |
87 icu_src = os.path.join(cwd, 'src', 'third_party', 'icu') | 87 try: |
88 icu_dst = os.path.join(libadblockplus_root, 'v8', 'third_party', 'icu') | 88 sys.exit(prepare_deps()) |
Vasily Kuznetsov
2018/01/29 12:39:12
As I wrote before, you don't really need `sys.exit
anton
2018/01/29 12:52:53
Acknowledged.
See patch set #3 (thought i've left
| |
89 duplicate(icu_src, icu_dst) | 89 except KeyboardInterrupt: |
90 | 90 sys.exit('interrupted') |
91 # v8/third_party/jinja2 | |
92 jinja2_src = os.path.join(cwd, 'src', 'third_party', 'jinja2') | |
93 jinja2_dst = os.path.join(libadblockplus_root, 'v8', 'third_party', 'jinja2') | |
94 duplicate(jinja2_src, jinja2_dst) | |
95 | |
96 # v8/third_party/markupsafe | |
97 markupsafe_src = os.path.join(cwd, 'src', 'third_party', 'markupsafe') | |
98 markupsafe_dst = os.path.join(libadblockplus_root, 'v8', 'third_party', 'marku psafe') | |
99 duplicate(markupsafe_src, markupsafe_dst) | |
100 | |
101 return 0 | |
102 | |
103 def main(argv): | |
104 return prepare_deps(); | |
105 | |
106 if '__main__' == __name__: | |
107 try: | |
108 sys.exit(main(sys.argv[1:])) | |
109 except KeyboardInterrupt: | |
110 sys.stderr.write('interrupted\n') | |
111 sys.exit(1) | |
OLD | NEW |