-
-#######################################################################
-# Convenience Library Builder
-# based on the stock StaticLibrary and SharedLibrary builders
-
-import SCons.Action
-import SCons.Builder
-
-def createConvenienceLibBuilder(env):
- """This is a utility function that creates the ConvenienceLibrary
- Builder in an Environment if it is not there already.
-
- If it is already there, we return the existing one.
- """
-
- try:
- convenience_lib = env['BUILDERS']['ConvenienceLibrary']
- except KeyError:
- action_list = [ SCons.Action.Action("$ARCOM", "$ARCOMSTR") ]
- if env.Detect('ranlib'):
- ranlib_action = SCons.Action.Action("$RANLIBCOM", "$RANLIBCOMSTR")
- action_list.append(ranlib_action)
-
- convenience_lib = SCons.Builder.Builder(action = action_list,
- emitter = '$LIBEMITTER',
- prefix = '$LIBPREFIX',
- suffix = '$LIBSUFFIX',
- src_suffix = '$SHOBJSUFFIX',
- src_builder = 'SharedObject')
- env['BUILDERS']['ConvenienceLibrary'] = convenience_lib
- env['BUILDERS']['Library'] = convenience_lib
-
- return convenience_lib
-
-
-#######################################################################
-# Build
-
-def make_build_dir(env):
- # Put build output in a separate dir, which depends on the current configuration
- # See also http://www.scons.org/wiki/AdvancedBuildExample
- build_topdir = 'build'
- build_subdir = env['platform']
- if env['dri']:
- build_subdir += "-dri"
- if env['llvm']:
- build_subdir += "-llvm"
- if env['machine'] != 'generic':
- build_subdir += '-' + env['machine']
- if env['debug']:
- build_subdir += "-debug"
- build_dir = os.path.join(build_topdir, build_subdir)
- # Place the .sconsign file on the builddir too, to avoid issues with different scons
- # versions building the same source file
- env.SConsignFile(os.path.join(build_dir, '.sconsign'))
- return build_dir
-