NSIS/Source/Tests/SConscript

85 lines
1.4 KiB
Text
Raw Normal View History

target = 'test'
tests = Split("""
DialogTemplate.cpp
endian.cpp
mmap.cpp
ResourceEditor.cpp
specmatch.cpp
textrunner.cpp
""")
required = Split("""
DialogTemplate.cpp
dirreader.cpp
growbuf.cpp
mmap.cpp
ResourceEditor.cpp
""")
cppunitlibs = Split("""
cppunit
""")
extralibs = Split("""
dl
gdi32
iconv
user32
""")
scripts = Split("""
preprocessor.nsi
""")
Import('env AddAvailableLibs')
# Test scripts
env.TestScript(scripts)
# Use available libraries
AddAvailableLibs(env, extralibs)
# compile using msvcrt (that's how cppunit.lib is built)
if 'msvc' in env['TOOLS'] or 'mstoolkit' in env['TOOLS']:
env.Append(CCFLAGS = ['/MD'])
# uses exceptions
env.Append(CCFLAGS = ['$EXCEPTION_FLAG'])
# test for CppUnit
conf = env.Configure()
cppunit = conf.CheckLibWithHeader(cppunitlibs, 'cppunit/extensions/HelperMacros.h', 'C++')
conf.Finish()
if cppunit:
# compile files from parent directory
required_obj = []
for i in required:
b = 'required/%s' % i[:-4]
s = '#Source/%s' % i
o = env.Object(b, s)
required_obj.append(o)
# build test program
tests = env.Program(target, tests + required_obj)
# alias running the test to 'test'
test = env.Alias('test-code', [tests], tests[0].abspath)
# always test when asked to
AlwaysBuild(test)
else:
# no CppUnit
def err(target, source, env):
print '*** error: CppUnit must be installed for testing!'
return 1
cmd = env.Command(target, [tests], Action(err, ''))
env.Alias('test-code', cmd)