Revamp how libraries are done

This commit is contained in:
Eryn Wells 2015-10-03 10:43:18 -07:00
parent b745019f39
commit 164d2944f6
2 changed files with 16 additions and 12 deletions

View file

@ -39,9 +39,17 @@ for mode in (MODE.split(',') if MODE else ['debug']):
env.Append(CPPPATH=['.'])
# Process all lib dirs.
env['AVAILABLE_LIBS'] = {}
for lib in os.listdir(LIB_DIR.abspath):
lib_dir = LIB_DIR.Dir(lib)
if not lib_dir.isdir():
print 'Skipping {} in lib directory: is not a directory'.format(lib)
continue
lib_out_dir = out_dir.Dir('lib').Dir(lib)
do_sconscript(env, LIB_DIR.Dir(lib), lib_out_dir)
output = do_sconscript(env, LIB_DIR.Dir(lib), lib_out_dir)
if not output:
print "Lib {} didn't return any object".format(lib)
env['AVAILABLE_LIBS'][lib] = output
env.Append(LIBPATH=[lib_out_dir])
# Get source files.

View file

@ -1,13 +1,16 @@
# SConscript
# vim: set ft=python:
#
# Build file for the gtest library. This file also serves as an example for how
# to build libraries for inclusion with my SCons environment. Libraries should
# return a build object.
#
# Eryn Wells <eryn@erynwells.me>
import os.path
Import('env')
Import('build_env')
env.Append(CPPPATH=[Dir('include').srcnode()])
files = [
'gtest-all.cc',
@ -20,12 +23,5 @@ files = [
'gtest.cc',
]
objs = []
for f in files:
objs.append(env.Object(f))
include_dir = Dir('include').srcnode()
env.Append(CPPPATH=[include_dir])
build_env.Append(CPPPATH=[include_dir])
gtest = env.Library('gtest', objs)
gtest = env.Library('gtest', files)
Return('gtest')