Skip to content
Snippets Groups Projects
Select Git revision
  • a827aea0bbc9f24fe040896957a0424e525c7fe9
  • develop default
  • Blockage
  • GuidoBasten
  • Anticipation_Model
  • tgf19ts
  • 313-waiting-behaviour
  • tgf19mc
  • wa_testing
  • trajectories
  • 287-waitingarea
  • 320-one-sided-closed-doors
  • kapakrit-anna
  • 311-improve-ff
  • 306-schedule-for-was
  • 294-events
  • 307-temp-close
  • 302-external-files
  • split_files
  • 298-sources
  • 293-statistics-crossings
  • v0.8.4
  • v0.8.3
  • v0.8.2
  • v0.8.1
  • v0.8
  • v0.7
  • v0.6
  • v0.5-alpha
  • v0.5-alpha1
  • v0.4
31 results

ffRouter.cpp

Blame
  • gcc11ize.py 4.96 KiB
    #!/usr/bin/env python3
    """Try to change from GCC10 to GCC11
    
    For it, you need
    
    - Python3
    """
    
    import argparse
    
    releases = {
        'GCC':              ['10.3.0',      '11.2.0'],
        'CMake':            ['3.18.0',      '3.21.1'],
        'imkl':              ['2021.2.0',    '2021.4.0'],
        'gomkl':            ['2021',        '2022'],
        'gpsmpi':           ['2021',        '2022'],
        'binutils':         ['2.36.1',      '2.37'],
        'Bison':            ['3.7.6',       '3.7.6'],
        'libdrm':           ['2.4.106',     '2.4.107'],
        'Java':             ['15',          '15'],
        'CUDA':             ['11.3',        '11.5'],
        'cuDNN':            ['8.2.1.32',    '8.2.2.26'],
        'Scikit':           ['2021',        '2022'],
        'SciPy':            ['2021',        '2022'],
        'protobuf':         ['3.14.0',      '3.17.3'],
        'libxc':            ['5.1.5',       '5.1.6'],
        'Python':           ['3.8.5',       '3.9.6'],
        'cURL':             ['7.71.1',      '7.78.0'],
        'PCRE':             ['8.44',        '8.45'],
        'PCRE2':            ['10.34',       '10.37'],
        'Qt5':              ['5.14.2',      '5.15.2'],
        'Ninja':            ['1.10.0',      '1.10.2'],
        're2c':             ['1.3',         '2.2'],
        'GLib':             ['2.64.4',      '2.69.1'],
        'X11':              ['20200222',    '20210802'],
        'fontconfig':       ['2.13.92',     '2.13.94'],
        'DBus':             ['1.12.20',     '1.13.18'],
        'libjpeg-turbo':    ['2.0.5',       '2.0.6'],
        'NSS':              ['3.51',        '3.69'],
        'JasPer':           ['2.0.19',      '2.0.33'],
        'snappy':           ['1.1.8',       '1.1.9'],
        'PROJ':             ['7.1.0',       '8.1.0'],
        'SQLite':           ['3.32.3',      '3.36'],
        'LibTIFF':          ['4.1.0',       '4.3.0'],
        'libgd':            ['2.3.0',       '2.3.1'],
    }
    
    
    def parse_arguments():
        """Receives command line input"""
        parser = argparse.ArgumentParser(description='Command line options.')
        parser.add_argument('-i', metavar='INPUT', default="", type=str,
                            help='Input File')
        parser.add_argument('-o', metavar='OLDRELEASE', default="", type=str,
                            help='Current version of given software to be replaced')
        parser.add_argument('-n', metavar='LATESTRELEASE', default="", type=str,
                            help='Most recent version of given software')
    
        return parser.parse_args()
    
    
    def updateFileName(fileName, current, latest):
        """Tries to bring filename automatically to the latest toolchain"""
        if current and latest:
            fileName = fileName.replace(current, latest, 1)
        if fileName:
            fileName = fileName.replace(releases['GCC'][0], releases['GCC'][1], 1)
            fileName = fileName.replace(
                releases['imkl'][0], releases['imkl'][1], 1)
            fileName = fileName.replace(
                releases['gomkl'][0], releases['gomkl'][1], 1)
            fileName = fileName.replace(
                releases['gpsmpi'][0], releases['gpsmpi'][1], 1)
            fileName = fileName.replace(
                releases['Python'][0], releases['Python'][1], 1)
        return fileName
    
    
    def updateFile(oldName, newName, current, latest):
        """Replaces toolchain, cleans up site_contacts and goes through the list of releases with the new one"""
        if newName is not oldName:
            newFile = open(newName, 'w')
            with open(oldName) as file:
                for line in file:
                    if current and latest:
                        if line.startswith('version'):
                            print("Changing package version...")
                            line = line.replace(current, latest, 1)
                    if line.startswith('toolchain'):
                        print("Fixing toolchain...")
                        line = line.replace(
                            releases['GCC'][0], releases['GCC'][1], 1)
                        line = line.replace(
                            releases['imkl'][0], releases['imkl'][1], 1)
                        line = line.replace(
                            releases['gomkl'][0], releases['gomkl'][1], 1)
                        line = line.replace(
                            releases['gpsmpi'][0], releases['gpsmpi'][1], 1)
                    if line.startswith('site_contacts'):
                        print("Removing site_contacts")
                        line = ""
                    for key in releases:
                        if key in line:
                            print("Changing", key, "from",
                                  releases[key][0], "to", releases[key][1])
                            line = line.replace(
                                releases[key][0], releases[key][1], 1)
                    newFile.write(line)
            newFile.close()
            return True
        else:
            print("Files are the same")
            return False
    
    
    if __name__ == "__main__":
        args = parse_arguments()
        newFile = updateFileName(args.i, args.o, args.n)
        if updateFile(args.i, newFile, args.o, args.n):
            print("Updated", args.i, ' to GCC',
                  releases['GCC'][1], 'and to version', args.n)
            print("Run: \n\neb -l %s" % newFile)