diff options
author | José Fonseca <[email protected]> | 2010-01-01 22:35:28 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-01-02 00:01:43 +0000 |
commit | 8a318edd0838ee3343be0425019d93541b621567 (patch) | |
tree | 85ffd91339e8412c5c62f449d8c0a7a5762beaa4 /scons | |
parent | ee39dc20e6f055f131f21ca2d63ea0eada5a80a6 (diff) |
scons: Put glut and glew shared libraries into build/xxx/bin or lib.
Use bin subdir for windows dlls, lib for unices.
Diffstat (limited to 'scons')
-rw-r--r-- | scons/gallium.py | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/scons/gallium.py b/scons/gallium.py index 0133f9f0463..69a356908fb 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') |