From 6d68e11eda90826cfee2a48539e9367664a36ae7 Mon Sep 17 00:00:00 2001 From: William Deegan Date: Sat, 14 Jan 2017 18:04:19 -0800 Subject: changes to force SCons to respect RANLIB when initializing ar tools --- src/engine/SCons/Tool/__init__.py | 2 +- src/engine/SCons/Tool/ar.py | 4 ++-- test/AR/ARCOM.py | 2 ++ test/AR/ARCOMSTR.py | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py index cc5a508..0e5f364 100644 --- a/src/engine/SCons/Tool/__init__.py +++ b/src/engine/SCons/Tool/__init__.py @@ -263,7 +263,7 @@ def createStaticLibBuilder(env): static_lib = env['BUILDERS']['StaticLibrary'] except KeyError: action_list = [ SCons.Action.Action("$ARCOM", "$ARCOMSTR") ] - if env.Detect('ranlib'): + if env.get('RANLIB',False) or env.Detect('ranlib'): ranlib_action = SCons.Action.Action("$RANLIBCOM", "$RANLIBCOMSTR") action_list.append(ranlib_action) diff --git a/src/engine/SCons/Tool/ar.py b/src/engine/SCons/Tool/ar.py index 0c3ac09..e9b5922 100644 --- a/src/engine/SCons/Tool/ar.py +++ b/src/engine/SCons/Tool/ar.py @@ -48,8 +48,8 @@ def generate(env): env['LIBPREFIX'] = 'lib' env['LIBSUFFIX'] = '.a' - if env.Detect('ranlib'): - env['RANLIB'] = 'ranlib' + if env.get('RANLIB',False) or env.Detect('ranlib'): + env['RANLIB'] = env.get('RANLIB','ranlib') env['RANLIBFLAGS'] = SCons.Util.CLVar('') env['RANLIBCOM'] = '$RANLIB $RANLIBFLAGS $TARGET' diff --git a/test/AR/ARCOM.py b/test/AR/ARCOM.py index f9d0038..9ae5b9f 100644 --- a/test/AR/ARCOM.py +++ b/test/AR/ARCOM.py @@ -40,6 +40,7 @@ test.file_fixture('myrewrite.py') test.write('SConstruct', """ env = Environment(tools=['default', 'ar'], ARCOM = r'%(_python_)s mycompile.py ar $TARGET $SOURCES', + RANLIB = True, RANLIBCOM = r'%(_python_)s myrewrite.py ranlib $TARGET', LIBPREFIX = '', LIBSUFFIX = '.lib') @@ -49,6 +50,7 @@ env.Library(target = 'output', source = ['file.1', 'file.2']) test.write('file.1', "file.1\n/*ar*/\n/*ranlib*/\n") test.write('file.2', "file.2\n/*ar*/\n/*ranlib*/\n") + test.run(arguments = '.') test.must_match('output.lib', "file.1\nfile.2\n") diff --git a/test/AR/ARCOMSTR.py b/test/AR/ARCOMSTR.py index 3235f12..a3a9c8e 100644 --- a/test/AR/ARCOMSTR.py +++ b/test/AR/ARCOMSTR.py @@ -42,6 +42,7 @@ test.write('SConstruct', """ env = Environment(tools=['default', 'ar'], ARCOM = r'%(_python_)s mycompile.py ar $TARGET $SOURCES', ARCOMSTR = 'Archiving $TARGET from $SOURCES', + RANLIB = True, RANLIBCOM = r'%(_python_)s myrewrite.py ranlib $TARGET', LIBPREFIX = '', LIBSUFFIX = '.lib') -- cgit v0.12