aboutsummaryrefslogtreecommitdiff
path: root/lib/libUPnP/Neptune/Build/Build.scons
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libUPnP/Neptune/Build/Build.scons')
-rw-r--r--lib/libUPnP/Neptune/Build/Build.scons143
1 files changed, 78 insertions, 65 deletions
diff --git a/lib/libUPnP/Neptune/Build/Build.scons b/lib/libUPnP/Neptune/Build/Build.scons
index 9996e3d41a..ff5021deaf 100644
--- a/lib/libUPnP/Neptune/Build/Build.scons
+++ b/lib/libUPnP/Neptune/Build/Build.scons
@@ -11,9 +11,9 @@ def LoadTool(name, env, **kw):
file, path, desc = imp.find_module(name, [config_path])
module = imp.load_module(name, file, path, desc)
module.generate(env, **kw)
-
+
def MergeListUnique(item_list, items):
- for item in items:
+ for item in items:
if not item in item_list: item_list.append(item)
def MergeItemUnique(item_list, item):
@@ -28,10 +28,10 @@ def GlobSources(drct, patterns, excluded_files=[]):
def GetDirPath(dir):
return '#/'+dir
-
+
def DeclareBuildDir(dir):
env.VariantDir(dir, GetDirPath(dir), duplicate=0)
-
+
def GetIncludeDirs(modules, exclude=None):
dirs = []
for module in Split(modules):
@@ -69,18 +69,18 @@ class Module:
def GetLibraries(self):
return self.product+GetLibraries(self.linked_modules)
-
+
def GetIncludeDirs(self):
return GetIncludeDirs(self.included_modules+self.build_include_dirs, self.name)
-
+
class LibraryModule(Module):
- def __init__(self, name,
- build_source_dirs = ['.'],
+ def __init__(self, name,
+ build_source_dirs = ['.'],
build_source_files = {},
source_root = 'Source',
- build_source_pattern = ['*.c', '*.cpp'],
- build_include_dirs = [],
- included_modules = [],
+ build_source_pattern = ['*.c', '*.cpp'],
+ build_include_dirs = [],
+ included_modules = [],
included_only_modules = [],
linked_modules = [],
environment = None,
@@ -88,9 +88,9 @@ class LibraryModule(Module):
extra_cpp_defines = [],
shared = False) :
build_source_dirs = [source_root+'/'+drct for drct in build_source_dirs]
- Module.__init__(self,
- name,
- Split(included_modules)+Split(included_only_modules)+Split(build_source_dirs),
+ Module.__init__(self,
+ name,
+ Split(included_modules)+Split(included_only_modules)+Split(build_source_dirs),
Split(linked_modules)+Split(included_modules))
self.build_include_dirs = build_include_dirs
if environment is None:
@@ -98,10 +98,10 @@ class LibraryModule(Module):
else:
self.env = environment.Clone()
self.env.AppendUnique(CPPDEFINES = extra_cpp_defines)
-
+
# store this new object in the module dictionary
Modules[name] = self
-
+
# for each source drct to build, create a BuildDir
# to say where we want the object files to be built,
# and compute the list of source files to build
@@ -109,7 +109,7 @@ class LibraryModule(Module):
for drct in Split(build_source_dirs):
DeclareBuildDir(drct)
sources += GlobSources(drct, build_source_pattern, excluded_files)
-
+
# add cherry-picked files
for drct in build_source_files.keys():
pattern = build_source_files[drct]
@@ -128,20 +128,20 @@ class LibraryModule(Module):
libs = GetLibraries(Split(linked_modules))
self.product = self.env.SharedLibrary(target=name, LIBS=libs, source=sources)
self.env.Alias(name, self.product)
-
-
+
+
def Application(name, dir):
DeclareBuildDir(dir)
libs = GetLibraries('Neptune')
cpp_path = GetIncludeDirs('Neptune')
-
- prog = env.Program(name,
+
+ prog = env.Program(name,
GlobSources(dir, ['*.c', '*.cpp']) + env['NPT_EXTRA_EXECUTABLE_OBJECTS'],
LIBS=libs, CPPPATH=cpp_path)
#env.Alias(name, prog)
if env.has_key('NPT_EXECUTABLE_POST_PROCESSOR'):
env.AddPostAction(prog, env['NPT_EXECUTABLE_POST_PROCESSOR'])
-
+
#######################################################
# Main Build
#######################################################
@@ -159,66 +159,79 @@ else:
### try to read in any target specific configuration
target_config_file = env.GetBuildPath('#/Build/Targets/'+env['target']+'/Config.scons')
if os.path.exists(target_config_file):
- # Load the target-specific config file
+ # Load the target-specific config file
execfile(target_config_file)
#######################################################
# modules
#######################################################
-LibraryModule(name = 'Zlib',
- source_root = '.',
- build_source_dirs = ['ThirdParty/zlib-1.2.3'])
-
-LibraryModule(name = 'axTLS',
- source_root = '.',
- build_source_dirs = ['ThirdParty/axTLS/crypto', 'ThirdParty/axTLS/ssl', 'ThirdParty/axTLS/config/Generic'])
-
extra_cpp_flags = []
if not env.has_key('NPT_CONFIG_NO_ZIP'):
env.AppendUnique(CPPDEFINES=['NPT_CONFIG_ENABLE_ZIP'])
-
+ zlib_sources = ['../ThirdParty/zlib-1.2.8']
+else:
+ zlib_sources = []
+
if not env.has_key('NPT_CONFIG_NO_SSL'):
env.AppendUnique(CPPDEFINES=['NPT_CONFIG_ENABLE_TLS'])
+ axtls_sources = ['../ThirdParty/axTLS/crypto', '../ThirdParty/axTLS/ssl', '../ThirdParty/axTLS/config/Generic']
tls_data_dirs = ['Data/TLS']
tls_tests = ['Tls1']
else:
+ axtls_sources = []
tls_data_dirs = []
tls_tests = []
-
-LibraryModule(name = 'Neptune',
- build_source_dirs = ['Core']+tls_data_dirs,
- build_source_files = env['NPT_SYSTEM_SOURCES'],
- linked_modules = env['NPT_EXTRA_LIBS']+['Zlib']+['axTLS'])
-
+
+
+if env['shared']:
+ LibraryModule(name = 'Neptune',
+ build_source_dirs = ['Core']+tls_data_dirs+axtls_sources+zlib_sources,
+ build_source_files = env['NPT_SYSTEM_SOURCES'],
+ linked_modules = env['NPT_EXTRA_LIBS'],
+ shared = True)
+else:
+ LibraryModule(name = 'Zlib',
+ source_root = '.',
+ build_source_dirs = ['ThirdParty/zlib-1.2.3'])
+
+ LibraryModule(name = 'axTLS',
+ source_root = '.',
+ build_source_dirs = ['ThirdParty/axTLS/crypto', 'ThirdParty/axTLS/ssl', 'ThirdParty/axTLS/config/Generic'])
+
+ LibraryModule(name = 'Neptune',
+ build_source_dirs = ['Core']+tls_data_dirs,
+ build_source_files = env['NPT_SYSTEM_SOURCES'],
+ linked_modules = env['NPT_EXTRA_LIBS']+['Zlib']+['axTLS'])
+
for app in ['NetPump', 'NetConfig', 'NetPing', 'NetEcho', 'NetGet', 'NetResolve', 'NetBench', 'MiniHttpServer', 'ZipHttpServer']:
Application(app, 'Source/Apps/'+app)
-
-tests = ['Arrays1',
- 'BufferedStreams1',
- 'HttpClient1',
- 'HttpClient2',
- 'HttpServer1',
- 'Network1',
- 'Lists1',
- 'Maps1',
- 'Misc1',
- 'RingBuffer1',
- 'Strings1',
- 'Xml1',
- 'Udp1',
- 'Threads1',
- 'Queue1',
- 'Messages1',
- 'Messages2',
- 'Url1',
- 'Zip1',
- 'Zip2',
- 'Time1',
- 'Sockets1',
- 'FileTest1',
- 'FileTest2']+tls_tests
-
+
+tests = ['Arrays1',
+ 'BufferedStreams1',
+ 'HttpClient1',
+ 'HttpClient2',
+ 'HttpServer1',
+ 'Network1',
+ 'Lists1',
+ 'Maps1',
+ 'Misc1',
+ 'RingBuffer1',
+ 'Strings1',
+ 'Xml1',
+ 'Udp1',
+ 'Threads1',
+ 'Queue1',
+ 'Messages1',
+ 'Messages2',
+ 'Url1',
+ 'Zip1',
+ 'Zip2',
+ 'Time1',
+ 'Sockets1',
+ 'FileTest1',
+ 'FileTest2',
+ 'FileTest3']+tls_tests
+
for test in tests:
Application(test+'Test', 'Source/Tests/'+test)
-