Make the gcc_version macro conform with what node.js and v8 use. Important because node.js's common.gypi is going to export it soon.
74 lines
2.2 KiB
Python
Executable File
74 lines
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import glob
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
CC = os.environ.get('CC', 'cc')
|
|
script_dir = os.path.dirname(__file__)
|
|
uv_root = os.path.normpath(script_dir)
|
|
output_dir = os.path.join(os.path.abspath(uv_root), 'out')
|
|
|
|
sys.path.insert(0, os.path.join(uv_root, 'build', 'gyp', 'pylib'))
|
|
try:
|
|
import gyp
|
|
except ImportError:
|
|
print('You need to install gyp in build/gyp first. See the README.')
|
|
sys.exit(42)
|
|
|
|
|
|
def compiler_version():
|
|
proc = subprocess.Popen(CC.split() + ['--version'], stdout=subprocess.PIPE)
|
|
is_clang = 'clang' in proc.communicate()[0].split('\n')[0]
|
|
proc = subprocess.Popen(CC.split() + ['-dumpversion'], stdout=subprocess.PIPE)
|
|
version = tuple(map(int, proc.communicate()[0].split('.')))
|
|
return (version, is_clang)
|
|
|
|
|
|
def run_gyp(args):
|
|
rc = gyp.main(args)
|
|
if rc != 0:
|
|
print 'Error running GYP'
|
|
sys.exit(rc)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
args = sys.argv[1:]
|
|
|
|
# GYP bug.
|
|
# On msvs it will crash if it gets an absolute path.
|
|
# On Mac/make it will crash if it doesn't get an absolute path.
|
|
if sys.platform == 'win32':
|
|
args.append(os.path.join(uv_root, 'uv.gyp'))
|
|
common_fn = os.path.join(uv_root, 'common.gypi')
|
|
options_fn = os.path.join(uv_root, 'options.gypi')
|
|
else:
|
|
args.append(os.path.join(os.path.abspath(uv_root), 'uv.gyp'))
|
|
common_fn = os.path.join(os.path.abspath(uv_root), 'common.gypi')
|
|
options_fn = os.path.join(os.path.abspath(uv_root), 'options.gypi')
|
|
|
|
if os.path.exists(common_fn):
|
|
args.extend(['-I', common_fn])
|
|
|
|
if os.path.exists(options_fn):
|
|
args.extend(['-I', options_fn])
|
|
|
|
args.append('--depth=' + uv_root)
|
|
|
|
# There's a bug with windows which doesn't allow this feature.
|
|
if sys.platform != 'win32':
|
|
args.extend(['--generator-output', output_dir])
|
|
args.extend(['-Goutput_dir=' + output_dir])
|
|
args.extend('-f make'.split())
|
|
(major, minor), is_clang = compiler_version()
|
|
args.append('-Dgcc_version=%d' % (10 * major + minor))
|
|
args.append('-Dclang=%d' % int(is_clang))
|
|
|
|
args.append('-Dtarget_arch=ia32')
|
|
args.append('-Dcomponent=static_library')
|
|
args.append('-Dlibrary=static_library')
|
|
gyp_args = list(args)
|
|
print gyp_args
|
|
run_gyp(gyp_args)
|