[cig-commits] commit: Some updates to how HDF5 configures.
Mercurial
hg at geodynamics.org
Mon Nov 24 11:22:58 PST 2008
changeset: 64:676d90f8b0e8
user: LukeHodkinson
date: Fri Mar 28 02:52:23 2008 +0000
files: StgSCons config/SConfig/Node.py config/SConfig/Package.py config/SConfig/SConscript config/SConfig/packages/HDF5.py config/packages/stgMagma.py
description:
Some updates to how HDF5 configures.
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 StgSCons
--- a/StgSCons Fri Mar 28 01:21:04 2008 +0000
+++ b/StgSCons Fri Mar 28 02:52:23 2008 +0000
@@ -274,9 +274,9 @@ int main( int argc, char* argv[] ) {
""" % (hdrs, suites)
src_filename = os.path.join(env["buildPath"], env.project_name,
"test" + env.project_name + ".c")
- if not os.path.exists(os.path.dirname(File(src_filename).path)):
- os.makedirs(os.path.dirname(File(src_filename).path))
- f = open(File(src_filename).path, "w")
+ if not os.path.exists(os.path.dirname(File(src_filename).abspath)):
+ os.makedirs(os.path.dirname(File(src_filename).abspath))
+ f = open(File(src_filename).abspath, "w")
f.write(src)
f.close()
bin_filename = os.path.join(env["buildPath"], "bin", "test" + env.project_name)
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 config/SConfig/Node.py
--- a/config/SConfig/Node.py Fri Mar 28 01:21:04 2008 +0000
+++ b/config/SConfig/Node.py Fri Mar 28 02:52:23 2008 +0000
@@ -31,14 +31,14 @@ class Node(object):
"""Setup all the options for this package."""
pass
- def dependency(self, package_module, required=True):
+ def dependency(self, package_module, required=True, **kw):
"""Add another package as a dependency of this package. If required is False, the
dependent package is not required, and thus will not cause this package to fail if
it cannot be found."""
if self.configured:
print 'Error: Cannot add a dependency during configuration.'
self.env.Exit()
- pkg = self.env.Package(package_module, self.opts)
+ pkg = self.env.Package(package_module, self.opts, **kw)
if pkg not in [d[0] for d in self.deps]:
self.deps += [(pkg, required)]
return pkg
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 config/SConfig/Package.py
--- a/config/SConfig/Package.py Fri Mar 28 01:21:04 2008 +0000
+++ b/config/SConfig/Package.py Fri Mar 28 02:52:23 2008 +0000
@@ -248,6 +248,8 @@ int main(int argc, char* argv[]) {
for l in libraries:
if self.shared_libraries and l not in self.shared_libraries:
continue
+ if l in self.extra_libraries:
+ continue
offs = ''
for p in self.generate_library_paths(location, l):
offs += ' '
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 config/SConfig/SConscript
--- a/config/SConfig/SConscript Fri Mar 28 01:21:04 2008 +0000
+++ b/config/SConfig/SConscript Fri Mar 28 02:52:23 2008 +0000
@@ -1,4 +1,4 @@ import os
-import os
+import os, sys
import SConfig
from SCons.Script.SConscript import SConsEnvironment
@@ -6,14 +6,20 @@ from SCons.Script.SConscript import SCon
# Setup the Package system.
#
-def Package(env, pkg_module, options, required=False):
+def Package(env, pkg_module, options, required=False, **kw):
"""Create a new package to be configured."""
if not hasattr(env, 'packages'):
env.packages = {}
env.package_list = []
if not pkg_module in env.packages:
- env.packages[pkg_module] = pkg_module(env, options, required)
- env.package_list += [env.packages[pkg_module]]
+ pkg = pkg_module(env, options, required)
+ for attr, val in kw.iteritems():
+ if not hasattr(pkg, attr):
+ print 'Package does not have attribute!'
+ sys.exit()
+ setattr(pkg, attr, val)
+ env.packages[pkg_module] = pkg
+ env.package_list += [pkg]
return env.packages[pkg_module]
def CheckPackages(ctx, pkg_list):
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 config/SConfig/packages/HDF5.py
--- a/config/SConfig/packages/HDF5.py Fri Mar 28 01:21:04 2008 +0000
+++ b/config/SConfig/packages/HDF5.py Fri Mar 28 02:52:23 2008 +0000
@@ -35,7 +35,6 @@ MPI_Finalize();
if line.find("Extra libraries") != -1:
dict = self.env.ParseFlags(line.split(":")[1])
extra_libs = dict.get('LIBS', [])
- break
old_libs = self.extra_libraries
self.extra_libraries += extra_libs
yield loc
diff -r 9a5fcf16bce3 -r 676d90f8b0e8 config/packages/stgMagma.py
--- a/config/packages/stgMagma.py Fri Mar 28 01:21:04 2008 +0000
+++ b/config/packages/stgMagma.py Fri Mar 28 02:52:23 2008 +0000
@@ -5,24 +5,25 @@ class stgMagma(SConfig.Node):
class stgMagma(SConfig.Node):
def __init__(self, scons_env, scons_opts, required=False):
SConfig.Node.__init__(self, scons_env, scons_opts, required)
- self.dependency(SConfig.packages.cmath)
- self.dependency(SConfig.packages.libXML2)
- self.dependency(SConfig.packages.MPI)
+ shared = self.env['shared_libraries']
+ self.dependency(SConfig.packages.cmath, require_shared=shared)
+ self.dependency(SConfig.packages.libXML2, require_shared=shared)
+ self.dependency(SConfig.packages.MPI, require_shared=shared)
self.svnrevision = self.dependency(SConfig.packages.SVNRevision)
- self.dependency(SConfig.packages.BlasLapack)
- self.dependency(SConfig.packages.PETSc)
- self.dependency(SConfig.packages.PETScExt)
- self.dependency(SConfig.packages.HDF5).require_parallel = True
+ self.dependency(SConfig.packages.BlasLapack, require_shared=shared)
+ self.dependency(SConfig.packages.PETSc, require_shared=shared)
+ self.dependency(SConfig.packages.PETScExt, require_shared=shared)
+ self.dependency(SConfig.packages.HDF5, require_shared=shared, require_parallel=True)
if self.env['with_glucifer']:
- self.dependency(SConfig.packages.OpenGL)
- self.dependency(SConfig.packages.OSMesa, False)
- self.dependency(SConfig.packages.X11, False)
- self.dependency(SConfig.packages.SDL, False)
- self.dependency(SConfig.packages.libavcodec, False)
- self.dependency(SConfig.packages.libFAME, False)
- self.dependency(SConfig.packages.libPNG, False)
- self.dependency(SConfig.packages.libJPEG, False)
- self.dependency(SConfig.packages.libTIFF, False)
+ self.dependency(SConfig.packages.OpenGL, require_shared=shared)
+ self.dependency(SConfig.packages.OSMesa, False, require_shared=shared)
+ self.dependency(SConfig.packages.X11, False, require_shared=shared)
+ self.dependency(SConfig.packages.SDL, False, require_shared=shared)
+ self.dependency(SConfig.packages.libavcodec, False, require_shared=shared)
+ self.dependency(SConfig.packages.libFAME, False, require_shared=shared)
+ self.dependency(SConfig.packages.libPNG, False, require_shared=shared)
+ self.dependency(SConfig.packages.libJPEG, False, require_shared=shared)
+ self.dependency(SConfig.packages.libTIFF, False, require_shared=shared)
def setup_options(self):
SConfig.Node.setup_options(self)
More information about the CIG-COMMITS
mailing list