Ticket #82: scons-addons-boost-py.2.diff

File scons-addons-boost-py.2.diff, 4.3 kB (added by jsd, 2 years ago)

update wrt. current SConstruct

  • Tools/scons-addons/src/SConsAddons/Options/Boost.py

    old new  
    3131# ############################################## 
    3232class Boost(SConsAddons.Options.PackageOption): 
    3333   def __init__(self, name, requiredVersion,  
    34                 useDebug=False, useMt=True, libs=[],  
     34                useDebug=False, useMt=True, libs=[], useSimpleLibnames=False, 
    3535                required=True, useCppPath=False,  
    3636                toolset="auto", useVersion=False, 
    3737                preferDynamic=True, autoLink = False): 
     
    4848         autoLink - If true and using msvc, then attempt to use boost's autolinking capabilies. 
    4949      """ 
    5050      help_text = ["Base directory for Boost. include, and lib should be under this directory.", 
    51                    "Include directory for boost (if not under base)."] 
     51                   "Include directory for boost (if not under base).", 
     52                   "Use simple Boost library names (as installed by fedora core rpms)"] 
    5253      self.baseDirKey = "BoostBaseDir" 
    5354      self.incDirKey = "BoostIncludeDir" 
    5455      self.requiredVersion = requiredVersion 
    5556      self.libVersionStr = None 
    5657      self.lib_names = libs 
     58      self.useSimpleLibnames = useSimpleLibnames 
     59      self.simpleLibnamesKey = "BoostSimpleLibnames" 
    5760      self.required = required 
    5861      self.useCppPath = useCppPath 
    5962      self.toolset = toolset 
     
    6265      if sca_util.GetPlatform() != "win32": 
    6366         self.autoLink = False 
    6467      SConsAddons.Options.PackageOption.__init__(self, name,  
    65                                                  [self.baseDirKey, self.incDirKey],  
     68                                                 [self.baseDirKey, self.incDirKey, 
     69                                                  self.simpleLibnamesKey],  
    6670                                                 help_text) 
    6771      self.available = False            # Track availability 
    6872       
     
    143147      debug_ext = "-d" 
    144148      if sca_util.GetPlatform() == "win32": 
    145149         debug_ext = "-gd"     # Hack for now assuming debug code and runtime 
    146       if sca_util.GetPlatform() != 'darwin'
     150      if sca_util.GetPlatform() != 'darwin' and not self.useSimpleLibnames
    147151         fullname = fullname + "-" + self.toolset 
    148152         if self.use_mt: 
    149153            fullname += "-mt" 
     
    158162         elif useDebug is True: 
    159163            fullname += debug_ext 
    160164 
     165         if self.use_ver and self.libVersionStr is not None: 
     166            fullname += "-" + self.libVersionStr 
    161167 
    162       if self.use_ver and self.libVersionStr is not None: 
    163          fullname += "-" + self.libVersionStr 
     168      return fullname 
    164169 
    165       return fullname 
    166           
    167170   def startProcess(self): 
    168171      """ Called at beginning of processing.  Perform any intialization or notification here. """ 
    169172      print "Updating ", self.name 
     
    177180      if optDict.has_key(self.incDirKey): 
    178181         self.incDir = optDict[self.incDirKey] 
    179182         print "   %s specified or cached. [%s]."% (self.incDirKey, self.incDir) 
    180  
     183      if optDict.has_key(self.simpleLibnamesKey): 
     184         self.useSimpleLibnames = optDict[self.simpleLibnamesKey] 
     185         print "   %s specified or cached. [%s]."% (self.simpleLibnamesKey, self.useSimpleLibnames) 
     186          
    181187   def find(self, env): 
    182188      """ If base dir was not specified, attempt to find boost 
    183189          using some very basic searches. 
     
    445451            env.AppendUnique(CXXFLAGS = ['-fvisibility=hidden', '-fvisibility-inlines-hidden']) 
    446452 
    447453   def getSettings(self): 
    448       return [(self.baseDirKey, self.baseDir), (self.incDirKey, self.incDir)] 
     454      return [(self.baseDirKey, self.baseDir), 
     455              (self.incDirKey, self.incDir), 
     456              (self.simpleLibnamesKey, self.useSimpleLibnames)] 
    449457    
    450458   def dumpSettings(self,env=None): 
    451459      "Write out the settings" 
    452460      print "BoostBaseDir:", self.baseDir 
    453461      print "BoostIncludeDir:", self.incDir 
     462      print "BoostSimpleLibnames:", self.useSimpleLibnames 
    454463      print "CPPPATH (as flags):", self.found_incs_as_flags 
    455464      print "CPPDEFINES:", self.found_defines 
    456465      print "LIBS:", self.lib_names