Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(292)

Unified Diff: SConstruct

Issue 245733002: Added arguments to NaCl scons to allow custom toolchain directories. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Use abspath of environment instead of cwd since cwd can change per test Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | buildbot/buildbot_pnacl.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: SConstruct
diff --git a/SConstruct b/SConstruct
index 4fc4a19e3b8adbe19300b94b9ca12c07a0c24b10..871b2be9ec8feb5d6c6fac4105a04db6d88e5218 100755
--- a/SConstruct
+++ b/SConstruct
@@ -148,8 +148,6 @@ ACCEPTABLE_ARGUMENTS = set([
# colon-separated list of pnacl bcld flags, e.g. "-lfoo:-Wl,-u,bar".
# Not using nacl_linkflags since that gets clobbered in some tests.
'pnacl_bcldflags',
- 'naclsdk_mode',
- 'pnaclsdk_mode',
'platform',
# Run tests under this tool (e.g. valgrind, tsan, strace, etc).
# If the tool has options, pass them after comma: 'tool,--opt1,--opt2'.
@@ -186,12 +184,12 @@ ACCEPTABLE_ARGUMENTS = set([
'bindir',
# Where a Breakpad build output directory is for optional Breakpad testing.
'breakpad_tools_dir',
- # Allows overriding the toolchain to use. The default toolchain will be
- # a combination of the other arguments. Example toolchains:
- # NaCl (newlib): nacl_PLATFORM_newlib
- # NaCl (glibc): nacl_PLATFORM_glibc
- # pnacl: pnacl_PLATFORM
- 'toolchain',
+ # Allows overriding of the nacl newlib toolchain directory.
+ 'nacl_newlib_dir',
+ # Allows override of the nacl glibc toolchain directory.
+ 'nacl_glibc_dir',
+ # Allows override of the pnacl newlib toolchain directory.
+ 'pnacl_newlib_dir',
# Allows overriding the version number in the toolchain's
# FEATURE_VERSION file. This is used for PNaCl ABI compatibility
# testing.
@@ -1171,18 +1169,21 @@ def GetPlatformBuildTargetDir(env):
pre_base_env.AddMethod(GetPlatformBuildTargetDir)
-def GetToolchainName(env, target_arch=None, is_pnacl=None, lib_name=None):
- toolchain = ARGUMENTS.get('toolchain', None)
- if toolchain is None:
+def GetToolchainDir(env, platform_build_dir=None, toolchain_name=None,
+ target_arch=None, is_pnacl=None, lib_name=None):
+ if platform_build_dir is None:
+ platform_build_dir = env.GetPlatformBuildTargetDir()
+
+ if toolchain_name is None:
+ # Fill in default arguments based on environment.
if is_pnacl is None:
is_pnacl = env.Bit('bitcode')
- if lib_name is None:
- if is_pnacl or not env.Bit('nacl_glibc'):
- lib_name = 'newlib'
- else:
- lib_name = 'glibc'
+ if lib_name is None:
+ if is_pnacl or not env.Bit('nacl_glibc'):
+ lib_name = 'newlib'
+ else:
+ lib_name = 'glibc'
- build_arch = pynacl.platform.GetArch(GetBuildPlatform())
if target_arch is None:
target_arch = pynacl.platform.GetArch(GetTargetPlatform())
@@ -1191,24 +1192,27 @@ def GetToolchainName(env, target_arch=None, is_pnacl=None, lib_name=None):
else:
target_env = 'nacl_%s' % target_arch
- toolchain = '%s_%s' % (target_env, lib_name)
-
- return toolchain
-
-pre_base_env.AddMethod(GetToolchainName)
+ # See if we have a custom toolchain directory set.
+ if is_pnacl:
+ toolchain_arg = 'pnacl_%s_dir' % lib_name
+ else:
+ toolchain_arg = 'nacl_%s_dir' % lib_name
+ custom_toolchain_dir = ARGUMENTS.get(toolchain_arg, None)
+ if custom_toolchain_dir:
+ return env.SConstructAbsPath(custom_toolchain_dir)
-def GetToolchainDir(env, platform_build_dir=None, toolchain_name=None):
- if platform_build_dir is None:
- platform_build_dir = env.GetPlatformBuildTargetDir()
- if toolchain_name is None:
- toolchain_name = env.GetToolchainName()
+ # Get the standard toolchain name since no directory custom was found.
+ if is_pnacl:
+ target_env = 'pnacl'
+ else:
+ target_env = 'nacl_%s' % target_arch
+ toolchain_name = '%s_%s' % (target_env, lib_name)
- toolchain_sub_dir = os.path.join(
- 'toolchain',
- platform_build_dir,
- toolchain_name
- )
+ # Get the absolute path for the platform build directory and toolchain.
+ toolchain_sub_dir = os.path.join('toolchain',
+ platform_build_dir,
+ toolchain_name)
return env.SConstructAbsPath(toolchain_sub_dir)
pre_base_env.AddMethod(GetToolchainDir)
@@ -2242,17 +2246,6 @@ Targets to build untrusted code destined for the SDK:
Options:
--------
-naclsdk_mode=<mode> where <mode>:
-
- 'local': use locally installed sdk kit
- 'download': use the download copy (default)
- 'custom:<path>': use kit at <path>
- 'manual': use settings from env vars NACL_SDK_xxx
-
-pnaclsdk_mode=<mode> where <mode:
- 'default': use the default (typically the downloaded copy)
- 'custom:<path>': use kit from <path>
-
--prebuilt Do not build things, just do install steps
--verbose Full command line logging before command execution
« no previous file with comments | « no previous file | buildbot/buildbot_pnacl.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698