Edit

kc3-lang/angle/scripts/update_canary_angle.py

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2019-05-06 13:15:35
    Hash : d7d42395
    Message : Format all of ANGLE's python code. BUG=angleproject:3421 Change-Id: I1d7282ac513c046de5d8ed87f7789290780d30a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595440 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>

  • scripts/update_canary_angle.py
  • #!/usr/bin/python2
    #
    # Copyright 2016 The ANGLE Project Authors. All rights reserved.
    # Use of this source code is governed by a BSD-style license that can be
    # found in the LICENSE file.
    #
    # update_canary_angle.py:
    #   Helper script that copies Windows ANGLE DLLs into the Canary
    #   application directory. Much faster than compiling Chrome from
    #   source. The script checks for the most recent DLLs in a set of
    #   search paths, and copies that into the most recent Canary
    #   binary folder. Only works on Windows.
    
    import glob, sys, os, shutil
    
    # Set of search paths.
    script_dir = os.path.dirname(sys.argv[0])
    os.chdir(os.path.join(script_dir, ".."))
    
    source_paths = glob.glob('out/*')
    
    # Default Canary installation path.
    chrome_folder = os.path.join(os.environ['LOCALAPPDATA'], 'Google', 'Chrome SxS', 'Application')
    
    # Find the most recent ANGLE DLLs
    binary_name = 'libGLESv2.dll'
    newest_folder = None
    newest_mtime = None
    for path in source_paths:
        binary_path = os.path.join(path, binary_name)
        if os.path.exists(binary_path):
            binary_mtime = os.path.getmtime(binary_path)
            if (newest_folder is None) or (binary_mtime > newest_mtime):
                newest_folder = path
                newest_mtime = binary_mtime
    
    if newest_folder is None:
        sys.exit("Could not find ANGLE DLLs!")
    
    source_folder = newest_folder
    
    
    # Is a folder a chrome binary directory?
    def is_chrome_bin(str):
        chrome_file = os.path.join(chrome_folder, str)
        return os.path.isdir(chrome_file) and all([char.isdigit() or char == '.' for char in str])
    
    
    sorted_chrome_bins = sorted(
        [folder for folder in os.listdir(chrome_folder) if is_chrome_bin(folder)], reverse=True)
    
    dest_folder = os.path.join(chrome_folder, sorted_chrome_bins[0])
    
    print('Copying DLLs from ' + source_folder + ' to ' + dest_folder + '.')
    
    for dll in ['libGLESv2.dll', 'libEGL.dll']:
        src = os.path.join(source_folder, dll)
        if os.path.exists(src):
            # Make a backup of the original unmodified DLLs if they are present.
            backup = os.path.join(source_folder, dll + '.backup')
            if not os.path.exists(backup):
                shutil.copyfile(src, backup)
            shutil.copyfile(src, os.path.join(dest_folder, dll))
            shutil.copyfile(src + ".pdb", os.path.join(dest_folder, dll + ".pdb"))