-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathgyp_library.py
More file actions
51 lines (42 loc) · 1.31 KB
/
gyp_library.py
File metadata and controls
51 lines (42 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
from __future__ import print_function
import ast
import os
import pprint
import sys
root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root, 'node-gyp', 'gyp', 'pylib'))
import gyp
def edit_config_gypi(arch):
config_gypi = os.path.join(root, 'config.gypi')
with open(config_gypi, 'r') as f:
content = f.read()
config = ast.literal_eval(content)
v = config['variables']
v['target_arch'] = arch
with open(config_gypi, 'w+') as f:
f.write(pprint.pformat(config, indent=2))
def edit_main_gyp(arch):
main_gyp = os.path.join(root, 'main.gyp')
with open(main_gyp, 'r') as f:
content = f.read()
config = ast.literal_eval(content)
v = config['target_defaults']
v['msvs_configuration_platform'] = 'ARM64'
with open(main_gyp, 'w+') as f:
f.write(pprint.pformat(config, indent=2))
def run_gyp(arch, args):
edit_config_gypi(arch)
if arch == 'arm64':
edit_main_gyp(arch)
args.append('main.gyp')
args.extend(['-I', 'config.gypi'])
args.append('--depth=.')
args.append('--generator-output=out')
args.append('-Dlibrary=shared_library')
rc = gyp.main(args)
if rc != 0:
print('Error running GYP')
sys.exit(rc)
if __name__ == '__main__':
run_gyp(sys.argv[1], sys.argv[2:])