Revamp build system: build src and test into libs and link to make binaries

This commit is contained in:
Eryn Wells 2013-09-08 13:57:05 -07:00
parent 926247002b
commit f81e403b16
3 changed files with 27 additions and 14 deletions

View file

@ -48,7 +48,7 @@ import os.path
env = Environment(CC='clang', env = Environment(CC='clang',
CFLAGS='-Wall -fcolor-diagnostics', CFLAGS='-Wall -fcolor-diagnostics',
CPPPATH=include_directories, CPPPATH=include_directories,
LINKFLAGS='-lpng', LIBS='png',
LIBPATH=lib_directories) LIBPATH=lib_directories)
@ -70,12 +70,22 @@ if not BUILD_CMDS:
env['RANLIBCOMSTR'] = generate_comstr('Indexing') env['RANLIBCOMSTR'] = generate_comstr('Indexing')
# Build source subdirectories # Build charles
for sdir in source_directories: src_dir = Dir('#src')
out_dir = os.path.join('build', Dir(sdir).path) charles_lib = env.SConscript(os.path.join(src_dir.path, 'SConscript'),
env.SConscript(os.path.join(sdir, 'SConscript'), exports='env',
exports='env', variant_dir=os.path.join('build', src_dir.path),
variant_dir=out_dir, duplicate=0)
duplicate=0) charles = env.Program(os.path.join('build', 'charles'), charles_lib)
Default('charles') # Build test
test_dir = Dir('#test')
test_lib = env.SConscript(os.path.join(test_dir.path, 'SConscript'),
exports='env',
variant_dir=os.path.join('build', test_dir.path),
duplicate=0)
test_charles = env.Program(os.path.join('build', 'test_charles'), [charles_lib, test_lib])
env.Alias('charles', charles)
env.Alias('test', test_charles)
env.Default(charles)

View file

@ -14,5 +14,5 @@ files = Split("""
writer_png.c writer_png.c
""") """)
prog = env.Program('charles', files) lib = env.Library('charles', files)
env.Alias('charles', prog) Return('lib')

View file

@ -8,8 +8,11 @@
Import('env') Import('env')
files = Split(""" files = Split("""
test_basics.c
test_charles.c
""") """)
test = env.Program('test_charles', files) test_env = env.Clone()
env.Alias('test', test) test_env.Append(LIBS=['check'])
lib = test_env.Library('test_charles', files, libs=['check'])
Return('lib')