
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6030 212acab6-be3b-0410-9dea-997c60f758d6
164 lines
3.1 KiB
Python
164 lines
3.1 KiB
Python
target = 'test'
|
|
|
|
tests = Split("""
|
|
compression.cpp
|
|
decompress.cpp
|
|
DialogTemplate.cpp
|
|
endian.cpp
|
|
mmap.cpp
|
|
ResourceEditor.cpp
|
|
specmatch.cpp
|
|
textrunner.cpp
|
|
winchar.cpp
|
|
""")
|
|
|
|
required = Split("""
|
|
DialogTemplate.cpp
|
|
dirreader.cpp
|
|
growbuf.cpp
|
|
mmap.cpp
|
|
ResourceEditor.cpp
|
|
util.cpp
|
|
winchar.cpp
|
|
""")
|
|
|
|
required_exehead = Split("""
|
|
Tests/memcpy.c
|
|
""")
|
|
|
|
lzma_files = Split("""
|
|
clzma.cpp
|
|
7zip/7zGuids.cpp
|
|
7zip/7zip/Common/OutBuffer.cpp
|
|
7zip/7zip/Common/StreamUtils.cpp
|
|
7zip/7zip/Compress/LZ/LZInWindow.cpp
|
|
7zip/7zip/Compress/LZMA/LZMAEncoder.cpp
|
|
7zip/7zip/Compress/RangeCoder/RangeCoderBit.cpp
|
|
7zip/Common/Alloc.cpp
|
|
7zip/Common/CRC.cpp
|
|
7zip/LZMADecode.c
|
|
""")
|
|
|
|
required += lzma_files
|
|
|
|
bzip2_files = Split("""
|
|
bzip2/blocksort.c
|
|
bzip2/bzlib.c
|
|
bzip2/compress.c
|
|
bzip2/huffman.c
|
|
""")
|
|
|
|
bzip2_exehead_files = Split("""
|
|
bzip2/bzlib.c
|
|
bzip2/decompress.c
|
|
""")
|
|
|
|
required += bzip2_files
|
|
required_exehead += bzip2_exehead_files
|
|
|
|
zlib_exehead_files = Split("""
|
|
zlib/INFBLOCK.C
|
|
""")
|
|
|
|
required_exehead += zlib_exehead_files
|
|
|
|
cppunitlibs = Split("""
|
|
cppunit
|
|
""")
|
|
|
|
extralibs = Split("""
|
|
dl
|
|
gdi32
|
|
iconv
|
|
pthread
|
|
user32
|
|
""")
|
|
|
|
scripts = Split("""
|
|
icon1.nsi
|
|
icon2.nsi
|
|
preprocessor.nsi
|
|
winver.nsi
|
|
""")
|
|
|
|
Import('env AddAvailableLibs AddZLib')
|
|
|
|
# Test scripts
|
|
env.TestScript(scripts)
|
|
|
|
# Use available libraries
|
|
if env['PLATFORM'] == 'win32':
|
|
# XXX will cause problems if tests are cross compiled
|
|
# on freebsd, libversion.a exists and gives trouble if linked
|
|
extralibs += ['version']
|
|
|
|
AddAvailableLibs(env, extralibs)
|
|
AddZLib(env, env['PLATFORM'])
|
|
|
|
# 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'])
|
|
|
|
# for lzma
|
|
env.Append(CPPDEFINES = ['COMPRESS_MF_BT'])
|
|
|
|
# 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.split('.')[0]
|
|
s = '#Source/%s' % i
|
|
o = env.Object(b, s)
|
|
|
|
required_obj.append(o)
|
|
|
|
# exehead files special treatment
|
|
exehead_env = env.Clone()
|
|
exehead_env.Append(CCFLAGS = ['$C_FLAG'])
|
|
exehead_env.Append(
|
|
CPPDEFINES = [
|
|
'EXEHEAD',
|
|
'NSIS_COMPRESS_USE_ZLIB' # just so config.h won't complain
|
|
]
|
|
)
|
|
|
|
for i in required_exehead:
|
|
b = 'required/exehead/%s' % i.split('.')[0]
|
|
s = '#Source/%s' % i
|
|
o = exehead_env.Object(b, s)
|
|
|
|
required_obj.append(o)
|
|
|
|
# build test program
|
|
tests = env.Program(target, tests + required_obj)
|
|
if env['PLATFORM'] == 'win32' and 'ZLIB_W32_DLL' in env:
|
|
import os.path
|
|
env.Depends(tests, env.InstallAs(
|
|
os.path.basename(str(env['ZLIB_W32_DLL'])),
|
|
env['ZLIB_W32_DLL']))
|
|
|
|
# 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)
|