diff options
author | Steven Knight <knight@baldmt.com> | 2003-01-18 14:32:51 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-01-18 14:32:51 (GMT) |
commit | e7311129d841fe777bfe2d83c46033f34dac4709 (patch) | |
tree | a24fdcf4d185371398684f758fc74a3a856181fc /src/engine/SCons | |
parent | 9174c12d92d6a32c087bd5b891022ef5dc6f426f (diff) | |
download | SCons-e7311129d841fe777bfe2d83c46033f34dac4709.zip SCons-e7311129d841fe777bfe2d83c46033f34dac4709.tar.gz SCons-e7311129d841fe777bfe2d83c46033f34dac4709.tar.bz2 |
Make shared/static objects less irritating. (Anthony Roach)
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Defaults.py | 12 | ||||
-rw-r--r-- | src/engine/SCons/Tool/gcc.py | 3 | ||||
-rw-r--r-- | src/engine/SCons/Tool/mingw.py | 2 | ||||
-rw-r--r-- | src/engine/SCons/Tool/msvc.py | 1 |
4 files changed, 11 insertions, 7 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py index 364798c..461d770 100644 --- a/src/engine/SCons/Defaults.py +++ b/src/engine/SCons/Defaults.py @@ -102,12 +102,12 @@ class SharedFlagChecker: for tgt in target: tgt.attributes.shared = self.shared - for src in source: - if hasattr(src.attributes, 'shared'): - if self.shared and not src.attributes.shared: - raise SCons.Errors.UserError, "Source file: %s is static and is not compatible with shared target: %s" % (src, target[0]) - elif not self.shared and src.attributes.shared: - raise SCons.Errors.UserError, "Source file: %s is shared and is not compatible with static target: %s" % (src, target[0]) + same = env.subst('$STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME') + if same == '0' or same == '' or same == 'False': + for src in source: + if hasattr(src.attributes, 'shared'): + if self.shared and not src.attributes.shared: + raise SCons.Errors.UserError, "Source file: %s is static and is not compatible with shared target: %s" % (src, target[0]) SharedCheck = SCons.Action.Action(SharedFlagChecker(1, 0), None) StaticCheck = SCons.Action.Action(SharedFlagChecker(0, 0), None) diff --git a/src/engine/SCons/Tool/gcc.py b/src/engine/SCons/Tool/gcc.py index 8649707..677c322 100644 --- a/src/engine/SCons/Tool/gcc.py +++ b/src/engine/SCons/Tool/gcc.py @@ -59,9 +59,10 @@ def generate(env, platform): env['SHCC'] = '$CC' env['SHCCFLAGS'] = '$CCFLAGS -fPIC' env['SHCCCOM'] = '$SHCC $SHCCFLAGS $CPPFLAGS $_CPPINCFLAGS -c -o $TARGET $SOURCES' - + env['SHOBJSUFFIX'] = '.os' env['INCPREFIX'] = '-I' env['INCSUFFIX'] = '' + env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0 env['CFILESUFFIX'] = '.c' diff --git a/src/engine/SCons/Tool/mingw.py b/src/engine/SCons/Tool/mingw.py index d381910..2e2a2a5 100644 --- a/src/engine/SCons/Tool/mingw.py +++ b/src/engine/SCons/Tool/mingw.py @@ -128,6 +128,8 @@ def generate(env, platform): env['AS'] = 'as' env['WIN32DEFPREFIX'] = '' env['WIN32DEFSUFFIX'] = '.def' + env['SHOBJSUFFIX'] = '.o' + env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1 env['RC'] = 'windres' env['RCFLAGS'] = '' diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py index cc4411d..533d84e 100644 --- a/src/engine/SCons/Tool/msvc.py +++ b/src/engine/SCons/Tool/msvc.py @@ -270,6 +270,7 @@ def generate(env, platform): env['INCPREFIX'] = '/I' env['INCSUFFIX'] = '' env['OBJEMITTER'] = object_emitter + env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1 env['RC'] = 'rc' env['RCFLAGS'] = '' |