#!/usr/bin/python

# Copyright (c) 2013 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 regenerates the canonical visual studio project files that
# are distributed with the ANGLE repository. It requires that depot_tools
# is installed and gclient sync has been run to download gyp. The project
# files are generated and then git added so they can be committed.

import os
import sys

script_dir = os.path.join(os.path.dirname(__file__), 'build')
angle_dir = os.path.normpath(os.path.join(script_dir, os.pardir))
gyp_dir = os.path.join(angle_dir, 'third_party', 'gyp')

generation_dir = "projects"
gyp_generators = "msvs"
msvs_version = "2010e"
build_samples = True
build_tests = False
release_symbols = False

if __name__ == '__main__':
    gyp_cmd = os.path.join(gyp_dir, 'gyp')
    gyp_cmd += ' --ignore-environment'
    gyp_cmd += ' --depth=.'
    gyp_cmd += ' --include=' + os.path.join(script_dir, 'common.gypi')
    gyp_cmd += ' --generator-output=' + generation_dir
    gyp_cmd += ' --format=' + gyp_generators
    gyp_cmd += ' -G msvs_version=' + msvs_version
    gyp_cmd += ' -D angle_build_tests=' + ('1' if build_tests else '0')
    gyp_cmd += ' -D angle_build_samples=' + ('1' if build_samples else '0')
    gyp_cmd += ' -D release_symbols=' + ('true' if release_symbols else 'false')
    gyp_cmd += ' ' + os.path.join(script_dir, 'all.gyp')

    print 'Generating projects to ' + generation_dir + ' from gyp files...'
    print gyp_cmd
    sys.stdout.flush()
    os.system(gyp_cmd)

    git_add_cmd = 'git add ' + generation_dir + ' -u'
    print '\nRunning git add on updated Visual Studio projects...'
    print git_add_cmd
    sys.stdout.flush()
    os.system(git_add_cmd)
