From 164d2944f608f94b05b0568e96a8098abf934b2a Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 3 Oct 2015 10:43:18 -0700 Subject: [PATCH] Revamp how libraries are done --- SConstruct | 10 +++++++++- lib/gtest/SConscript | 18 +++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/SConstruct b/SConstruct index d44a6d5..841f14c 100644 --- a/SConstruct +++ b/SConstruct @@ -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. diff --git a/lib/gtest/SConscript b/lib/gtest/SConscript index 814a72e..07126f5 100644 --- a/lib/gtest/SConscript +++ b/lib/gtest/SConscript @@ -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 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')