From 8a318edd0838ee3343be0425019d93541b621567 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Fri, 1 Jan 2010 22:35:28 +0000 Subject: scons: Put glut and glew shared libraries into build/xxx/bin or lib. Use bin subdir for windows dlls, lib for unices. --- scons/gallium.py | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'scons') diff --git a/scons/gallium.py b/scons/gallium.py index 0133f9f046..69a356908f 100644 --- a/scons/gallium.py +++ b/scons/gallium.py @@ -46,27 +46,31 @@ def symlink(target, source, env): os.remove(target) os.symlink(os.path.basename(source), target) +def install(env, source, subdir): + target_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build'], subdir) + env.Install(target_dir, source) + def install_program(env, source): - source = str(source[0]) - target_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build'], 'bin') - target_name = str(source) - env.InstallAs(os.path.join(target_dir, target_name), source) + install(env, source, 'bin') -def install_shared_library(env, source, version = ()): - source = str(source[0]) +def install_shared_library(env, sources, version = ()): + install_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build']) version = tuple(map(str, version)) - target_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build'], 'lib') - if env['SHLIBSUFFIX'] == '.so': - target_name = '.'.join((str(source),) + version) - last = env.InstallAs(os.path.join(target_dir, target_name), source) - while len(version): - version = version[:-1] - target_name = '.'.join((str(source),) + version) - action = SCons.Action.Action(symlink, "$TARGET -> $SOURCE") - last = env.Command(os.path.join(target_dir, target_name), last, action) + if env['SHLIBSUFFIX'] == '.dll': + dlls = env.FindIxes(sources, 'SHLIBPREFIX', 'SHLIBSUFFIX') + install(env, dlls, 'bin') + libs = env.FindIxes(sources, 'LIBPREFIX', 'LIBSUFFIX') + install(env, libs, 'lib') else: - target_name = str(source) - env.InstallAs(os.path.join(target_dir, target_name), source) + for source in sources: + target_dir = os.path.join(install_dir, 'lib') + target_name = '.'.join((str(source),) + version) + last = env.InstallAs(os.path.join(target_dir, target_name), source) + while len(version): + version = version[:-1] + target_name = '.'.join((str(source),) + version) + action = SCons.Action.Action(symlink, "$TARGET -> $SOURCE") + last = env.Command(os.path.join(target_dir, target_name), last, action) def createInstallMethods(env): env.AddMethod(install_program, 'InstallProgram') -- cgit v1.2.3