diff options
Diffstat (limited to 'lib/libUPnP/Neptune/Build/Build.scons')
-rw-r--r-- | lib/libUPnP/Neptune/Build/Build.scons | 143 |
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) - |