Changeset 014bfa9 in rtems-source-builder


Ignore:
Timestamp:
Apr 13, 2013, 12:34:04 AM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
5c7b1ef
Parents:
9bd29bb
Message:

Add --macros option to load macro files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/options.py

    r9bd29bb r014bfa9  
    5252            '--log'            : ('_logfile',        self._lo_string,   True,  None,  False),
    5353            '--url'            : ('_url_base',       self._lo_string,   True,  None,  False),
     54            '--macros'         : ('_macros',         self._lo_string,   True,  None,  False),
    5455            '--targetcflags'   : ('_targetcflags',   self._lo_string,   True,  None,  False),
    5556            '--targetcxxflags' : ('_targetcxxflags', self._lo_string,   True,  None,  False),
     
    197198        print '--sourcedir path       : Path to the source directory, default: ./source'
    198199        print '--tmppath path         : Path to the temp directory, default: ./tmp'
     200        print '--macros file[,[file]  : Macro format files to load after the defaults'
    199201        print '--log file             : Log file where all build out is written too'
    200         print '--url url              : URL to look for source'
     202        print '--url url[,url]        : URL to look for source'
    201203        print '--targetcflags flags   : List of C flags for the target code'
    202204        print '--targetcxxflags flags : List of C++ flags for the target code'
     
    245247        else:
    246248            self.defaults['_smp_mflags'] = self.defaults['nil']
     249        um = self.user_macros()
     250        if um:
     251            checked = path.exists(um)
     252            if False in checked:
     253                raise general.error('macro file not found: %s' % (um[um.index(False)]))
     254            for m in um:
     255                self.defaults.load(m)
    247256
    248257    def command(self):
     
    275284    def always_clean(self):
    276285        return self.opts['always-clean'] != '0'
     286
     287    def user_macros(self):
     288        #
     289        # Return something even if it does not exist.
     290        #
     291        if self.opts['macros'] is None:
     292            return None
     293        um = []
     294        configs = self.defaults.expand('%{_configdir}').split(':')
     295        for m in self.opts['macros'].split(','):
     296            if path.exists(m):
     297                um += [m]
     298            else:
     299                # Get the expanded config macros then check them.
     300                cm = path.expand(m, configs)
     301                ccm = path.exists(cm)
     302                if True in ccm:
     303                    # Pick the first found
     304                    um += [cm[ccm.index(True)]]
     305                else:
     306                    um += [m]
     307        return um if len(um) else None
    277308
    278309    def jobs(self, cpus):
Note: See TracChangeset for help on using the changeset viewer.