Commit b5e46b9f authored by sgk@google.com's avatar sgk@google.com

Update Linux gyp build to import and propagate external environment

variables ($CC, $DISTCC_DIR, $HOME, etc.).
Accomodate spelling change ($CHROME_SRC_DIR => $SRC_DIR) that
makes the gyp SCons a little more generic.
Use the new $LIB_DIR variable the gyp SCons generator now defines for us.
Review URL: http://codereview.chromium.org/42650

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12583 0039d316-1c4b-4281-b951-d872f2087c98
parent 5228d56c
......@@ -26,7 +26,7 @@ deps = {
# TODO(mark): Remove once this has moved into depot_tools.
"src/tools/gyp":
"http://gyp.googlecode.com/svn/trunk@400",
"http://gyp.googlecode.com/svn/trunk@403",
"src/v8":
"http://v8.googlecode.com/svn/trunk@1603",
......
......@@ -86,6 +86,7 @@ root_env = Environment(
all_system_libs = [],
CHROME_SRC_DIR = '$MAIN_DIR/..',
SRC_DIR = '$MAIN_DIR/..',
DESTINATION_ROOT = '$MAIN_DIR/$BUILD_TARGET_DIR',
# Where ComponentTestProgram() will build test executables.
......@@ -775,6 +776,7 @@ for env in environment_list:
# resolving these over and over again.
env.Replace(
CHROME_SRC_DIR = str(env.Dir('$CHROME_SRC_DIR')),
SRC_DIR = str(env.Dir('$SRC_DIR')),
DESTINATION_ROOT = str(env.Dir('$DESTINATION_ROOT')),
TARGET_ROOT = str(env.Dir('$TARGET_ROOT')),
OBJ_ROOT = str(env.Dir('$OBJ_ROOT')),
......
......@@ -131,8 +131,8 @@
'-m32',
'-pthread',
],
'scons_settings': {
'LIBPATH': ['$DESTINATION_ROOT/lib'],
'scons_variable_settings': {
'LIBPATH': ['$LIB_DIR'],
# Linking of large files uses lots of RAM, so serialize links
# using the handy flock command from util-linux.
'FLOCK_LINK': ['flock', '$DESTINATION_ROOT/linker.lock', '$LINK'],
......@@ -155,6 +155,20 @@
'SHLINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$SHLINFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
'IMPLICIT_COMMAND_DEPENDENCIES': 0,
},
'scons_import_variables': [
'CC',
'CXX',
'LINK',
],
'scons_propagate_variables': [
'CC',
'CCACHE_DIR',
'CXX',
'DISTCC_DIR',
'DISTCC_HOSTS',
'HOME',
'LINK',
],
},
}],
['OS=="mac"', {
......
......@@ -146,7 +146,7 @@ def ChromeLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source)
if env.get('_GYP'):
lib = env.Library(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib)
result = env.Install('$LIB_DIR', lib)
else:
result = env.ComponentLibrary(target, source, *args, **kw)
return result
......@@ -164,7 +164,7 @@ def ChromeStaticLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source)
if env.get('_GYP'):
lib = env.StaticLibrary(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib)
result = env.Install('$LIB_DIR', lib)
else:
kw['COMPONENT_STATIC'] = True
result = env.ComponentLibrary(target, source, *args, **kw)
......@@ -174,7 +174,7 @@ def ChromeSharedLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source)
if env.get('_GYP'):
lib = env.SharedLibrary(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib)
result = env.Install('$LIB_DIR', lib)
else:
kw['COMPONENT_STATIC'] = False
result = [env.ComponentLibrary(target, source, *args, **kw)[0]]
......@@ -241,12 +241,12 @@ def generate(env):
env.AddMethod(FilterOut)
# Add the grit tool to the base environment because we use this a lot.
sys.path.append(env.Dir('$CHROME_SRC_DIR/tools/grit').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/grit/grit')])
sys.path.append(env.Dir('$SRC_DIR/tools/grit').abspath)
env.Tool('scons', toolpath=[env.Dir('$SRC_DIR/tools/grit/grit')])
# Add the repack python script tool that we use in multiple places.
sys.path.append(env.Dir('$CHROME_SRC_DIR/tools/data_pack').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/data_pack/')])
sys.path.append(env.Dir('$SRC_DIR/tools/data_pack').abspath)
env.Tool('scons', toolpath=[env.Dir('$SRC_DIR/tools/data_pack/')])
def exists(env):
return True
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment