def load(opts): """ Copy the defaults, get the host specific values and merge them overriding any matching defaults, then create an options object to handle the command line merging in any command line overrides. Finally post process the command line. """ if not isinstance(opts, command_line): raise error.general('invalid options type passed to options loader') global host_windows overrides = None if os.name == 'nt': try: import windows overrides = windows.load() host_windows = True except: raise error.general('failed to load Windows host support') elif os.name == 'posix': uname = os.uname() try: if uname[0].startswith('CYGWIN_NT'): try: from . import windows except: import windows overrides = windows.load() elif uname[0] == 'Darwin': try: from . import darwin except: import darwin overrides = darwin.load() elif uname[0] == 'FreeBSD': try: from . import freebsd except: import freebsd overrides = freebsd.load() elif uname[0] == 'NetBSD': try: from . import netbsd except: import netbsd overrides = netbsd.load() elif uname[0] == 'Linux': try: from . import linux except: import linux overrides = linux.load() elif uname[0] == 'SunOS': try: from . import solaris except: import solaris overrides = solaris.load() except: raise error.general('failed to load %s host support' % (uname[0])) else: raise error.general('unsupported host type; please add') if overrides is None: raise error.general('no hosts defaults found; please add') for k in overrides: opts.defaults[k] = overrides[k] opts.local_git() opts.process() opts.post_process()
def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc'): """ Copy the defaults, get the host specific values and merge them overriding any matching defaults, then create an options object to handle the command line merging in any command line overrides. Finally post process the command line. """ global host_windows # # The path to this command. # command_path = path.dirname(args[0]) if len(command_path) == 0: command_path = '.' # # The command line contains the base defaults object all build objects copy # and modify by loading a configuration. # o = command_line(args, optargs, macros.macros(name = defaults, sbdir = command_path), command_path) overrides = None if os.name == 'nt': try: import windows overrides = windows.load() host_windows = True except: raise error.general('failed to load Windows host support') elif os.name == 'posix': uname = os.uname() try: if uname[0].startswith('CYGWIN_NT'): import windows overrides = windows.load() elif uname[0] == 'Darwin': import darwin overrides = darwin.load() elif uname[0] == 'FreeBSD': import freebsd overrides = freebsd.load() elif uname[0] == 'NetBSD': import netbsd overrides = netbsd.load() elif uname[0] == 'Linux': import linux overrides = linux.load() elif uname[0] == 'SunOS': import solaris overrides = solaris.load() except: raise error.general('failed to load %s host support' % (uname[0])) else: raise error.general('unsupported host type; please add') if overrides is None: raise error.general('no hosts defaults found; please add') for k in overrides: o.defaults[k] = overrides[k] o.sb_git() o.process() o.post_process() return o
def load(args, optargs=None, defaults='%{_sbdir}/defaults.mc', logfile=True): """ Copy the defaults, get the host specific values and merge them overriding any matching defaults, then create an options object to handle the command line merging in any command line overrides. Finally post process the command line. """ global host_windows global host_posix # # The path to this command. # command_path = path.dirname(args[0]) if len(command_path) == 0: command_path = '.' # # The command line contains the base defaults object all build objects copy # and modify by loading a configuration. # o = command_line(args, optargs, macros.macros(name=defaults, sbdir=command_path), command_path) overrides = None if os.name == 'nt': try: import windows overrides = windows.load() host_windows = True host_posix = False except: raise error.general('failed to load Windows host support') elif os.name == 'posix': uname = os.uname() try: if uname[0].startswith('MINGW64_NT'): import windows overrides = windows.load() host_windows = True elif uname[0].startswith('CYGWIN_NT'): import windows overrides = windows.load() elif uname[0] == 'Darwin': import darwin overrides = darwin.load() elif uname[0] == 'FreeBSD': import freebsd overrides = freebsd.load() elif uname[0] == 'NetBSD': import netbsd overrides = netbsd.load() elif uname[0] == 'Linux': import linux overrides = linux.load() elif uname[0] == 'SunOS': import solaris overrides = solaris.load() except error.general as ge: raise error.general('failed to load %s host support: %s' % (uname[0], ge)) except: raise error.general('failed to load %s host support' % (uname[0])) else: raise error.general('unsupported host type; please add') if overrides is None: raise error.general('no hosts defaults found; please add') for k in overrides: o.defaults[k] = overrides[k] o.sb_released() o.sb_git() o.rtems_options() o.pre_process() o.process() o.post_process(logfile) # # Load the release settings # version.load_release_settings(o.defaults) return o
def load(args, optargs=None, defaults='%{_sbdir}/defaults.mc', logfile=True): """ Copy the defaults, get the host specific values and merge them overriding any matching defaults, then create an options object to handle the command line merging in any command line overrides. Finally post process the command line. """ global host_windows global host_posix # # Adjust the args to remove the wrapper. # args = args[1:] # # The path to this command. # command_path = path.dirname(path.abspath(args[0])) if len(command_path) == 0: command_path = '.' # # The command line contains the base defaults object all build objects copy # and modify by loading a configuration. # o = command_line(args, optargs, macros.macros(name=defaults, sbdir=command_path), command_path) overrides = None if os.name == 'nt': try: import windows overrides = windows.load() host_windows = True host_posix = False except: raise error.general('failed to load Windows host support') elif os.name == 'posix': uname = os.uname() try: if uname[0].startswith('MINGW64_NT'): import windows overrides = windows.load() host_windows = True elif uname[0].startswith('CYGWIN_NT'): import windows overrides = windows.load() elif uname[0] == 'Darwin': import darwin overrides = darwin.load() elif uname[0] == 'FreeBSD': import freebsd overrides = freebsd.load() elif uname[0] == 'NetBSD': import netbsd overrides = netbsd.load() elif uname[0] == 'Linux': import linux overrides = linux.load() elif uname[0] == 'SunOS': import solaris overrides = solaris.load() except error.general as ge: raise error.general('failed to load %s host support: %s' % (uname[0], ge)) except: raise error.general('failed to load %s host support' % (uname[0])) else: raise error.general('unsupported host type; please add') if overrides is None: raise error.general('no hosts defaults found; please add') for k in overrides: o.defaults[k] = overrides[k] o.sb_released() o.sb_git() o.rtems_options() o.pre_process() o.process() o.post_process(logfile) # # Load the release settings # def setting_error(msg): raise error.general(msg) hashes = version.load_release_settings('hashes') for hash in hashes: hs = hash[1].split() if len(hs) != 2: raise error.general('invalid release hash in VERSION') sources.hash((hs[0], hash[0], hs[1]), o.defaults, setting_error) release_path = version.load_release_setting('version', 'release_path', raw=True) if release_path is not None: try: release_path = ','.join( [rp.strip() for rp in release_path.split(',')]) except: raise error.general('invalid release path in VERSION') download.set_release_path(release_path, o.defaults) return o