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 = { ...@@ -26,7 +26,7 @@ deps = {
# TODO(mark): Remove once this has moved into depot_tools. # TODO(mark): Remove once this has moved into depot_tools.
"src/tools/gyp": "src/tools/gyp":
"http://gyp.googlecode.com/svn/trunk@400", "http://gyp.googlecode.com/svn/trunk@403",
"src/v8": "src/v8":
"http://v8.googlecode.com/svn/trunk@1603", "http://v8.googlecode.com/svn/trunk@1603",
......
...@@ -86,6 +86,7 @@ root_env = Environment( ...@@ -86,6 +86,7 @@ root_env = Environment(
all_system_libs = [], all_system_libs = [],
CHROME_SRC_DIR = '$MAIN_DIR/..', CHROME_SRC_DIR = '$MAIN_DIR/..',
SRC_DIR = '$MAIN_DIR/..',
DESTINATION_ROOT = '$MAIN_DIR/$BUILD_TARGET_DIR', DESTINATION_ROOT = '$MAIN_DIR/$BUILD_TARGET_DIR',
# Where ComponentTestProgram() will build test executables. # Where ComponentTestProgram() will build test executables.
...@@ -775,6 +776,7 @@ for env in environment_list: ...@@ -775,6 +776,7 @@ for env in environment_list:
# resolving these over and over again. # resolving these over and over again.
env.Replace( env.Replace(
CHROME_SRC_DIR = str(env.Dir('$CHROME_SRC_DIR')), CHROME_SRC_DIR = str(env.Dir('$CHROME_SRC_DIR')),
SRC_DIR = str(env.Dir('$SRC_DIR')),
DESTINATION_ROOT = str(env.Dir('$DESTINATION_ROOT')), DESTINATION_ROOT = str(env.Dir('$DESTINATION_ROOT')),
TARGET_ROOT = str(env.Dir('$TARGET_ROOT')), TARGET_ROOT = str(env.Dir('$TARGET_ROOT')),
OBJ_ROOT = str(env.Dir('$OBJ_ROOT')), OBJ_ROOT = str(env.Dir('$OBJ_ROOT')),
......
...@@ -131,8 +131,8 @@ ...@@ -131,8 +131,8 @@
'-m32', '-m32',
'-pthread', '-pthread',
], ],
'scons_settings': { 'scons_variable_settings': {
'LIBPATH': ['$DESTINATION_ROOT/lib'], 'LIBPATH': ['$LIB_DIR'],
# Linking of large files uses lots of RAM, so serialize links # Linking of large files uses lots of RAM, so serialize links
# using the handy flock command from util-linux. # using the handy flock command from util-linux.
'FLOCK_LINK': ['flock', '$DESTINATION_ROOT/linker.lock', '$LINK'], 'FLOCK_LINK': ['flock', '$DESTINATION_ROOT/linker.lock', '$LINK'],
...@@ -155,6 +155,20 @@ ...@@ -155,6 +155,20 @@
'SHLINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$SHLINFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], 'SHLINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', '$SHLINFLAGS', '$SOURCES', '$_LIBDIRFLAGS', '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']],
'IMPLICIT_COMMAND_DEPENDENCIES': 0, '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"', { ['OS=="mac"', {
......
...@@ -146,7 +146,7 @@ def ChromeLibrary(env, target, source, *args, **kw): ...@@ -146,7 +146,7 @@ def ChromeLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source) source = compilable_files(env, source)
if env.get('_GYP'): if env.get('_GYP'):
lib = env.Library(target, source, *args, **kw) lib = env.Library(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib) result = env.Install('$LIB_DIR', lib)
else: else:
result = env.ComponentLibrary(target, source, *args, **kw) result = env.ComponentLibrary(target, source, *args, **kw)
return result return result
...@@ -164,7 +164,7 @@ def ChromeStaticLibrary(env, target, source, *args, **kw): ...@@ -164,7 +164,7 @@ def ChromeStaticLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source) source = compilable_files(env, source)
if env.get('_GYP'): if env.get('_GYP'):
lib = env.StaticLibrary(target, source, *args, **kw) lib = env.StaticLibrary(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib) result = env.Install('$LIB_DIR', lib)
else: else:
kw['COMPONENT_STATIC'] = True kw['COMPONENT_STATIC'] = True
result = env.ComponentLibrary(target, source, *args, **kw) result = env.ComponentLibrary(target, source, *args, **kw)
...@@ -174,7 +174,7 @@ def ChromeSharedLibrary(env, target, source, *args, **kw): ...@@ -174,7 +174,7 @@ def ChromeSharedLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source) source = compilable_files(env, source)
if env.get('_GYP'): if env.get('_GYP'):
lib = env.SharedLibrary(target, source, *args, **kw) lib = env.SharedLibrary(target, source, *args, **kw)
result = env.Install('$DESTINATION_ROOT/$BUILD_TYPE/lib', lib) result = env.Install('$LIB_DIR', lib)
else: else:
kw['COMPONENT_STATIC'] = False kw['COMPONENT_STATIC'] = False
result = [env.ComponentLibrary(target, source, *args, **kw)[0]] result = [env.ComponentLibrary(target, source, *args, **kw)[0]]
...@@ -241,12 +241,12 @@ def generate(env): ...@@ -241,12 +241,12 @@ def generate(env):
env.AddMethod(FilterOut) env.AddMethod(FilterOut)
# Add the grit tool to the base environment because we use this a lot. # 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) sys.path.append(env.Dir('$SRC_DIR/tools/grit').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/grit/grit')]) env.Tool('scons', toolpath=[env.Dir('$SRC_DIR/tools/grit/grit')])
# Add the repack python script tool that we use in multiple places. # Add the repack python script tool that we use in multiple places.
sys.path.append(env.Dir('$CHROME_SRC_DIR/tools/data_pack').abspath) sys.path.append(env.Dir('$SRC_DIR/tools/data_pack').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/data_pack/')]) env.Tool('scons', toolpath=[env.Dir('$SRC_DIR/tools/data_pack/')])
def exists(env): def exists(env):
return True 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