scons: Install libGL.so and respective symlinks.

This commit is contained in:
José Fonseca 2008-09-08 07:54:15 +09:00
parent 8af4794afc
commit 52c2dd1f73
2 changed files with 28 additions and 1 deletions

View File

@ -140,6 +140,30 @@ def createCodeGenerateMethod(env):
env.AddMethod(code_generate, 'CodeGenerate')
def symlink(target, source, env):
target = str(target[0])
source = str(source[0])
if os.path.islink(target) or os.path.exists(target):
os.remove(target)
os.symlink(os.path.basename(source), target)
def install_shared_library(env, source, version = ()):
source = str(source[0])
version = tuple(map(str, version))
target_dir = os.path.join(env['build'], '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")
print os.path.join(target_dir, target_name), last
last = env.Command(os.path.join(target_dir, target_name), last, action)
def createInstallMethods(env):
env.AddMethod(install_shared_library, 'InstallSharedLibrary')
def generate(env):
"""Common environment generation code"""
@ -426,6 +450,7 @@ def generate(env):
# Custom builders and methods
createConvenienceLibBuilder(env)
createCodeGenerateMethod(env)
createInstallMethods(env)
# for debugging
#print env.Dump()

View File

@ -36,8 +36,10 @@ if env['platform'] == 'linux' \
drivers += [trace]
# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
env.SharedLibrary(
libgl = env.SharedLibrary(
target ='GL',
source = sources,
LIBS = glapi + mesa + drivers + auxiliaries + env['LIBS'],
)
env.InstallSharedLibrary(libgl, version=(1, 5))