Removed SCons.
This commit is contained in:
176
SConstruct
176
SConstruct
@@ -1,176 +0,0 @@
|
|||||||
# -*- Mode: python -*-
|
|
||||||
# SCons build specification
|
|
||||||
# see http://www.scons.org if you do not have this tool
|
|
||||||
#
|
|
||||||
# Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
|
|
||||||
#
|
|
||||||
# This software is provided AS-IS with no warranty, either express or
|
|
||||||
# implied.
|
|
||||||
#
|
|
||||||
# This software is distributed under license and may not be copied,
|
|
||||||
# modified or distributed except as expressly authorized under the
|
|
||||||
# terms of the license contained in the file LICENSE.txt in this
|
|
||||||
# distribution.
|
|
||||||
|
|
||||||
# This source code is distributed under specific license
|
|
||||||
# terms. See LICENSE.txt for details.
|
|
||||||
|
|
||||||
# invoke with 'scons' to build the library
|
|
||||||
|
|
||||||
# change this to one of openssl or schannel if you want TLS support
|
|
||||||
TLS_PLUGIN = 'dummy'
|
|
||||||
|
|
||||||
LIBSTROPHE_VERSION_MAJOR=0
|
|
||||||
LIBSTROPHE_VERSION_MINOR=7
|
|
||||||
|
|
||||||
from os.path import join
|
|
||||||
|
|
||||||
# TODO: should use lamda and map to work on python 1.5
|
|
||||||
def path(prefix, list): return [join(prefix, x) for x in list]
|
|
||||||
|
|
||||||
ExpatSources = Split("""
|
|
||||||
xmlparse.c
|
|
||||||
xmltok.c
|
|
||||||
xmlrole.c
|
|
||||||
""")
|
|
||||||
|
|
||||||
Sources = Split("""
|
|
||||||
ctx.c
|
|
||||||
conn.c
|
|
||||||
parser.c
|
|
||||||
handler.c
|
|
||||||
auth.c
|
|
||||||
event.c
|
|
||||||
stanza.c
|
|
||||||
jid.c
|
|
||||||
sock.c
|
|
||||||
hash.c
|
|
||||||
sasl.c
|
|
||||||
sha1.c
|
|
||||||
md5.c
|
|
||||||
util.c
|
|
||||||
thread.c
|
|
||||||
snprintf.c
|
|
||||||
""")
|
|
||||||
|
|
||||||
Sources.append('tls_%s.c' % TLS_PLUGIN)
|
|
||||||
|
|
||||||
Headers = Split("""
|
|
||||||
strophe.h
|
|
||||||
common.h
|
|
||||||
sock.h
|
|
||||||
hash.h
|
|
||||||
sha1.h
|
|
||||||
md5.h
|
|
||||||
util.h
|
|
||||||
thread.h
|
|
||||||
""")
|
|
||||||
|
|
||||||
Examples = Split("""
|
|
||||||
basic.c
|
|
||||||
active.c
|
|
||||||
roster.c
|
|
||||||
""")
|
|
||||||
|
|
||||||
env = Environment()
|
|
||||||
if env['CC'] == 'gcc':
|
|
||||||
env.Append(CCFLAGS=["-g", "-Wall"])
|
|
||||||
if env['CC'] == 'cl':
|
|
||||||
env.Append(CCFLAGS=["/MDd", "/ZI"])
|
|
||||||
|
|
||||||
expatenv = env.Clone()
|
|
||||||
# feature defs
|
|
||||||
expatenv.Append(CCFLAGS=" -DXML_DTD")
|
|
||||||
expatenv.Append(CCFLAGS=" -DXML_NS")
|
|
||||||
expatenv.Append(CCFLAGS=" -DXML_CONTEXT_BYTES=1024")
|
|
||||||
# sys config defs (these should be autodetected)
|
|
||||||
expatenv.Append(CCFLAGS=" -DBYTEORDER=4321")
|
|
||||||
expatenv.Append(CCFLAGS=" -DHAVE_MEMMOVE")
|
|
||||||
expatenv.Append(CCFLAGS=" -DHAVE_UNISTD")
|
|
||||||
|
|
||||||
expat = expatenv.Library('expat', path(join('expat', 'lib'), ExpatSources))
|
|
||||||
Default(expat)
|
|
||||||
|
|
||||||
stropheenv = env.Clone()
|
|
||||||
stropheenv.Append(CCFLAGS=" -DXML_STATIC")
|
|
||||||
stropheenv.Append(CPPPATH=['.', 'src', join('expat','lib')])
|
|
||||||
|
|
||||||
strophe = stropheenv.Library('strophe', path("src", Sources))
|
|
||||||
Default(strophe)
|
|
||||||
|
|
||||||
exenv = env.Clone()
|
|
||||||
exenv.Append(CPPPATH=['.'])
|
|
||||||
exenv.Append(LIBS=["strophe", "expat"])
|
|
||||||
if TLS_PLUGIN == 'openssl':
|
|
||||||
exenv.Append(LIBS=["ssl"])
|
|
||||||
exenv.Append(LIBPATH=["."])
|
|
||||||
if exenv["PLATFORM"] == "win32":
|
|
||||||
exenv.Append(LIBS=["ws2_32", "winmm"])
|
|
||||||
if exenv["PLATFORM"] != "win32":
|
|
||||||
exenv.Append(LIBS=["resolv"])
|
|
||||||
for e in path("examples", Examples):
|
|
||||||
example = exenv.Program(e)
|
|
||||||
Default(example)
|
|
||||||
|
|
||||||
# generate a MSVC project for convenience
|
|
||||||
# TODO: this doesn't seem to be implemented?
|
|
||||||
#env.MSVSProject(target = 'strophe' + env['MSVSPROJECTSUFFIX'],
|
|
||||||
# srcs = path("src", Sources), incs = path("src", Headers),
|
|
||||||
# variant = 'Release', buildtarget = strophe)
|
|
||||||
|
|
||||||
### unit and regression tests
|
|
||||||
|
|
||||||
import unittest
|
|
||||||
from os import popen
|
|
||||||
|
|
||||||
class RunnableTestCase(unittest.TestCase):
|
|
||||||
def __init__(self, file):
|
|
||||||
self.file = str(file)
|
|
||||||
unittest.TestCase.__init__(self)
|
|
||||||
def shortDescription(self):
|
|
||||||
return "Running '%s'" % self.file
|
|
||||||
def runTest(self):
|
|
||||||
'''C tests should return '0' on exit'''
|
|
||||||
test = popen(self.file)
|
|
||||||
self.failIf(test.close(), "unit '%s' did not exit normally" % self.file)
|
|
||||||
|
|
||||||
def testcase_runner(target, source, env):
|
|
||||||
suite = unittest.TestSuite()
|
|
||||||
for test in source:
|
|
||||||
#suite.addTest(RunnableTestCase(test[0]))
|
|
||||||
suite.addTest(RunnableTestCase(test))
|
|
||||||
result = unittest.TextTestRunner(verbosity=2).run(suite)
|
|
||||||
env.Execute(Touch(str(target[0])))
|
|
||||||
|
|
||||||
testenv = env.Clone()
|
|
||||||
testenv.Append(CPPPATH=['.', 'src', join('expat','lib')])
|
|
||||||
testenv.Append(LIBS=["strophe", "expat"])
|
|
||||||
if TLS_PLUGIN == 'openssl':
|
|
||||||
testenv.Append(LIBS=["ssl"])
|
|
||||||
if testenv["PLATFORM"] == "win32":
|
|
||||||
testenv.Append(LIBS=["winmm", "ws2_32"])
|
|
||||||
if testenv["PLATFORM"] != "win32":
|
|
||||||
testenv.Append(LIBS=["resolv"])
|
|
||||||
testenv.Append(LIBPATH=['.'])
|
|
||||||
|
|
||||||
import SCons.Node
|
|
||||||
test_builder = Builder(action = testcase_runner,
|
|
||||||
multi = 1)
|
|
||||||
|
|
||||||
testenv.Append(BUILDERS = {'TestCase' : test_builder})
|
|
||||||
|
|
||||||
# application source files for unit tests
|
|
||||||
tests = Split("""
|
|
||||||
test_ctx.c
|
|
||||||
test_sock.c
|
|
||||||
test_hash.c
|
|
||||||
test_base64.c
|
|
||||||
test_sasl.c
|
|
||||||
test_jid.c
|
|
||||||
""")
|
|
||||||
|
|
||||||
# build each test and add it to the 'test' pseudo target
|
|
||||||
for test in path("tests", tests):
|
|
||||||
tests = testenv.TestCase('test_stamp', testenv.Program(test))
|
|
||||||
testenv.AlwaysBuild(tests)
|
|
||||||
testenv.Alias('test', tests)
|
|
||||||
Reference in New Issue
Block a user