[cig-commits] commit: Some fixes for problems naming plugins.

Mercurial hg at geodynamics.org
Mon Nov 24 11:22:40 PST 2008


changeset:   15:e3258565f076
user:        LukeHodkinson
date:        Thu Feb 07 23:31:34 2008 +0000
files:       StgSCons
description:
Some fixes for problems naming plugins.


diff -r 8868b2a3c2e3 -r e3258565f076 StgSCons
--- a/StgSCons	Thu Feb 07 05:59:29 2008 +0000
+++ b/StgSCons	Thu Feb 07 23:31:34 2008 +0000
@@ -7,12 +7,12 @@ from SCons.Script.SConscript import SCon
 
 def copy_includes(env, files, dst, inc_nodes, force=False):
     files = files if isinstance(files, list) else [files]
-    dst = os.path.join('#build', 'include', dst)
+    dst = os.path.join('#build', dst)
     for i in files:
         node = env.Install(dst, i)
         inc_nodes.append(node)
-        dst_path = os.path.join(dst, os.path.basename(i))
         if force:
+            dst_path = os.path.join(dst, os.path.basename(i))
             env.copy_file(dst_path, i)
 
 #
@@ -20,10 +20,12 @@ def copy_includes(env, files, dst, inc_n
 #
 
 def build_defines(env, files, dst):
-    copy_includes(env, files, dst, env.def_nodes, True)
+    copy_includes(env, files, os.path.join('include', dst), 
+                  env.def_nodes, True)
 
 def build_headers(env, files, dst, force_copy=False):
-    copy_includes(env, files, dst, env.hdr_nodes, force_copy)
+    copy_includes(env, files, os.path.join('include', dst),
+                  env.hdr_nodes, force_copy)
 
 def build_xmls(env, files, dst, force_copy=False):
     copy_includes(env, files, os.path.join('lib', dst),
@@ -50,14 +52,15 @@ def build_metadata(env, files, hpath):
         nodes.append(cur_node)
     return nodes
 
-def build_library(env, objs, name, force_name=False):
+def build_library(env, objs, name, libs=[], force_name=False):
     objs = objs if isinstance(objs, list) else [objs]
     dst = os.path.join('#build', 'lib', name)
     if force_name:
         cur_node = env.LoadableModule(
             dst, objs,
             SHLIBPREFIX='',
-            LIBPREFIXES=[env['LIBPREFIXES']] + [''])
+            LIBPREFIXES=[env['LIBPREFIXES']] + [''],
+	    LIBS=env['LIBS'] + libs)
     else:
         cur_node = env.LoadableModule(dst, objs)
     env.lib_nodes.append(cur_node)
@@ -107,13 +110,13 @@ def build_directory(env, dir, extra_objs
 
 def build_plugin(env, dir, hpath):
     name = [env.proj] + hpath.split(os.path.sep)
-    name = '_'.join(name)
+    name = '_'.join(name) + 'module'
     hdr_dir = os.path.join(env.proj, hpath.split(os.path.sep)[-1])
 
     env.build_headers(env.glob(os.path.join(dir, '*.h')), hdr_dir)
     objs = env.build_objects(env.glob(os.path.join(dir, '*.c')),
                          hpath, False)
-    env.build_library(objs, name, True)
+    env.build_library(objs, name, [env.proj], True)
 
 def clear_all(env):
     env.hclear()



More information about the CIG-COMMITS mailing list