зеркало из https://github.com/AvaloniaUI/angle.git
88 строки
3.2 KiB
Python
Executable File
88 строки
3.2 KiB
Python
Executable File
#!/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')
|
|
# Indicate ANGLE is being built standalone (as opposed to within
|
|
# a Chromium workspace).
|
|
args.append('-Dangle_standalone=1')
|
|
|
|
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, build_winphone, 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_build_winphone=' + ('1' if build_winphone else '0'))
|
|
args.append('-Dangle_enable_d3d9=0')
|
|
args.append('-Dangle_enable_gl=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 8.1 projects
|
|
args = sys.argv[1:]
|
|
generateWinRTProjects(args, "winrt/8.1/windows", False, "2013e", "8.1", "");
|
|
args = sys.argv[1:]
|
|
generateWinRTProjects(args, "winrt/8.1/windowsphone", True, "2013e", "8.1", "");
|
|
|
|
# Generate Windows 10 projects
|
|
args = sys.argv[1:]
|
|
generateWinRTProjects(args, "winrt/10", False, "2015", "10.0", "10.0.10240.0");
|