| #!/usr/bin/python |
| |
| # Copyright (c) 2010 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. |
| |
| # This script is wrapper for ANGLE that adds some support for how GYP |
| # is invoked by ANGLE beyond what can be done in the gclient hooks. |
| |
| import os |
| import sys |
| |
| script_dir = os.path.dirname(__file__) |
| angle_dir = os.path.normpath(os.path.join(script_dir, os.pardir)) |
| |
| sys.path.insert(0, os.path.join(angle_dir, 'third_party', 'gyp', 'pylib')) |
| import gyp |
| |
| def appendCommonArgs(args): |
| # Set the depth to get the top-level Makefile generated into the |
| # correct directory. This only has an effect on Linux. |
| args.append('--depth'); |
| args.append('.'); |
| # Add standalone.gypi to the include path to set required |
| # variables that are otherwise picked up from Chromium's gyp |
| # files. |
| args.append('-I' + os.path.join(script_dir, 'standalone.gypi')) |
| # Add common.gypi to the include path. |
| args.append('-I' + os.path.join(script_dir, 'common.gypi')) |
| args.append('--no-parallel') |
| |
| def generateProjects(generate_args): |
| args = generate_args |
| appendCommonArgs(args) |
| # Add all.gyp as the main gyp file to be generated. |
| args.append(os.path.join(script_dir, 'ANGLE.gyp')) |
| |
| gyp.main(args) |
| |
| def generateWinRTProjects(generate_args, generation_dir, msvs_version, app_type_rev, |
| target_platform_ver): |
| args = generate_args |
| appendCommonArgs(args) |
| |
| args.append('--ignore-environment') |
| args.append('--generator-output=' + generation_dir) |
| args.append('--format=msvs') |
| args.append('-Gmsvs_version=' + msvs_version) |
| args.append('-Dangle_use_commit_id=1') |
| args.append('-Dangle_build_winrt=1') |
| args.append('-Dangle_build_winrt_app_type_revision=' + app_type_rev) |
| args.append('-Dangle_build_winrt_target_platform_ver=' + target_platform_ver) |
| args.append('-Dangle_enable_d3d9=0') |
| args.append('-Dangle_enable_gl=0') |
| args.append('-Dangle_enable_vulkan=0') |
| args.append('-Dangle_enable_null=0') |
| args.append('-Dangle_enable_essl=0') |
| args.append('-Dangle_enable_glsl=0') |
| # Add all.gyp as the main gyp file to be generated. |
| args.append(os.path.join(script_dir, 'ANGLE.gyp')) |
| |
| print 'Generating WinRT projects to ' + generation_dir + ' from gyp files...' |
| sys.stdout.flush() |
| |
| gyp.main(args) |
| |
| if __name__ == '__main__': |
| print 'Updating projects from gyp files...' |
| sys.stdout.flush() |
| |
| # Generate projects |
| args = sys.argv[1:] |
| generateProjects(args) |
| |
| # Generate WinRT projects only if configured |
| if 'GYP_GENERATE_WINRT' in os.environ: |
| # Generate Windows 10 projects |
| args = sys.argv[1:] |
| generateWinRTProjects(args, "winrt/10", "2015", "10.0", "10.0.10240.0"); |