env.Default (libraries)
+# User environment variables
+env.Append (PROJECT_ROOT = current_directory)
+env.Append (VARIANT_DIR = variant_dir)
+
#
## Run 'scons dynamic' to compile dynamic libraries
#
Import ('env')
+# To avoid other libraries accumulation:
+localEnv = env.Clone()
+
# Process #################################################################
#pName = "example_<module>_<process>"
bnames = Dir('..').abspath.rsplit('/', 2)
pwd = str(Dir ('.').abspath);
anna_libpaths = []
anna_libs = []
-modules = [ 'core', 'io', 'xml', 'time', 'diameter' ];
+modules = [ 'core', 'io', 'xml', 'time' ];
for module in modules:
anna_libs.append ("anna_" + module)
#module = module.replace("_", ".")
anna_libpaths.append (pwd.replace (pPath, ("source/" + module + "/")))
+# http://scons.1086193.n5.nabble.com/How-to-force-the-use-of-a-static-library-when-the-dynamic-library-is-available-as-well-td28385.html
+# libdiameter static variant:
+project_root = localEnv['PROJECT_ROOT']
+variant_dir = localEnv['VARIANT_DIR']
+anna_libs.append (File (project_root + "/source/diameter/" + variant_dir + "/libanna_diameter.a"))
+
anna_rlibs = list(anna_libs)
anna_rlibs.reverse()
# Libraries ###############################################################
-# To avoid other libraries accumulation:
-localEnv = env.Clone()
-
anna_library = { 'LIBS' : anna_rlibs }
localEnv.MergeFlags (anna_library)
Import ('env')
+# To avoid other libraries accumulation:
+localEnv = env.Clone()
+
# Process #################################################################
#pName = "example_<module>_<process>"
bnames = Dir('..').abspath.rsplit('/', 2)
pwd = str(Dir ('.').abspath);
anna_libpaths = []
anna_libs = []
-modules = [ 'core', 'io', 'xml', 'time', 'diameter' ];
+modules = [ 'core', 'io', 'xml', 'time' ];
for module in modules:
anna_libs.append ("anna_" + module)
#module = module.replace("_", ".")
anna_libpaths.append (pwd.replace (pPath, ("source/" + module + "/")))
+# http://scons.1086193.n5.nabble.com/How-to-force-the-use-of-a-static-library-when-the-dynamic-library-is-available-as-well-td28385.html
+# libdiameter static variant:
+project_root = localEnv['PROJECT_ROOT']
+variant_dir = localEnv['VARIANT_DIR']
+anna_libs.append (File (project_root + "/source/diameter/" + variant_dir + "/libanna_diameter.a"))
+
anna_rlibs = list(anna_libs)
anna_rlibs.reverse()
# Libraries ###############################################################
-# To avoid other libraries accumulation:
-localEnv = env.Clone()
-
anna_library = { 'LIBS' : anna_rlibs }
localEnv.MergeFlags (anna_library)
sources_stack = Glob('stack/*.cpp')
-result = env.StaticLibrary ('anna_diameter', [
- sources,
- sources_internal,
- sources_app,
- sources_codec,
- sources_core,
- sources_helpers,
- sources_stack ]);
+result = env.SharedLibrary ('anna_diameter', [ sources, sources_internal, sources_app, sources_codec, sources_core, sources_helpers, sources_stack ]);
+result = env.StaticLibrary ('anna_diameter', [ sources, sources_internal, sources_app, sources_codec, sources_core, sources_helpers, sources_stack ]);
Return ('result')