| Index: native_client_sdk/src/tools/create_nmf.py
|
| diff --git a/native_client_sdk/src/tools/create_nmf.py b/native_client_sdk/src/tools/create_nmf.py
|
| index dc7e552a615cfac4705d00180f69bfa658fa01e2..de72408c4df141bbcac49f8255d724aa5f18beae 100755
|
| --- a/native_client_sdk/src/tools/create_nmf.py
|
| +++ b/native_client_sdk/src/tools/create_nmf.py
|
| @@ -466,16 +466,15 @@
|
|
|
|
|
| def GetSDKRoot():
|
| - """Returns the root directory of the NaCl SDK.
|
| - """
|
| - # This script should be installed in NACL_SDK_ROOT/tools. Assert that
|
| - # the 'toolchain' folder exists within this directory in case, for
|
| - # example, this script is moved to a different location.
|
| - # During the Chrome build this script is sometimes run outside of
|
| - # of an SDK but in these cases it should always be run with --objdump=
|
| - # and --no-default-libpath which avoids the need to call this function.
|
| - sdk_root = os.path.dirname(SCRIPT_DIR)
|
| - assert(os.path.exists(os.path.join(sdk_root, 'toolchain')))
|
| + """Determine current NACL_SDK_ROOT, either via the environment variable
|
| + itself, or by attempting to derive it from the location of this script.
|
| + """
|
| + sdk_root = os.environ.get('NACL_SDK_ROOT')
|
| + if not sdk_root:
|
| + sdk_root = os.path.dirname(SCRIPT_DIR)
|
| + if not os.path.exists(os.path.join(sdk_root, 'toolchain')):
|
| + return None
|
| +
|
| return sdk_root
|
|
|
|
|
| @@ -483,8 +482,12 @@
|
| """Derive path to objdump executable to use for determining shared
|
| object dependencies.
|
| """
|
| + sdk_root = GetSDKRoot()
|
| + if not sdk_root:
|
| + return None
|
| +
|
| osname = getos.GetPlatform()
|
| - toolchain = os.path.join(GetSDKRoot(), 'toolchain', '%s_x86_glibc' % osname)
|
| + toolchain = os.path.join(sdk_root, 'toolchain', '%s_x86_glibc' % osname)
|
| objdump = os.path.join(toolchain, 'bin', 'x86_64-nacl-objdump')
|
| if osname == 'win':
|
| objdump += '.exe'
|
| @@ -505,6 +508,10 @@
|
| """
|
| assert(config in ('Debug', 'Release'))
|
| sdk_root = GetSDKRoot()
|
| + if not sdk_root:
|
| + # TOOD(sbc): output a warning here? We would also need to suppress
|
| + # the warning when run from the chromium build.
|
| + return []
|
|
|
| osname = getos.GetPlatform()
|
| libpath = [
|
| @@ -573,8 +580,8 @@
|
| help='Rename FOO as BAR',
|
| action='append', default=[], metavar='FOO,BAR')
|
| parser.add_argument('-x', '--extra-files',
|
| - help='Add extra key:file tuple to the "files"'
|
| - ' section of the .nmf',
|
| + help=('Add extra key:file tuple to the "files"' +
|
| + ' section of the .nmf'),
|
| action='append', default=[], metavar='FILE')
|
| parser.add_argument('-O', '--pnacl-optlevel',
|
| help='Set the optimization level to N in PNaCl manifests',
|
| @@ -662,7 +669,7 @@
|
| pnacl_debug_optlevel=pnacl_debug_optlevel,
|
| nmf_root=nmf_root)
|
|
|
| - if options.output is None:
|
| + if not options.output:
|
| sys.stdout.write(nmf.GetJson())
|
| else:
|
| with open(options.output, 'w') as output:
|
|
|