Revamp build system: build src and test into libs and link to make binaries
This commit is contained in:
parent
926247002b
commit
f81e403b16
3 changed files with 27 additions and 14 deletions
28
SConstruct
28
SConstruct
|
@ -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)
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue