diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/build.py | 26 | 
1 files changed, 19 insertions, 7 deletions
| diff --git a/tools/build.py b/tools/build.py index ab7c1205..329e14e7 100644 --- a/tools/build.py +++ b/tools/build.py @@ -9,19 +9,31 @@ parser.add_argument('-a', '--arch', choices=['x86', 'x64'],                      required=True, help='specify target cpu architecture')  parser.add_argument('-c', '--config', choices=['Debug', 'Release'],                      required=True, help='specify build configuration') +parser.add_argument('-e', '--vs-edition', choices=['Community', 'Enterprise'], +                    default='Community', help='specify visual studio edition')  args = parser.parse_args()  project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) -os.chdir(project_root) -generater_vs_arch_map = { -    'x86': 'Win32', -    'x64': 'x64' -} +vs_path = 'C:/Program Files (x86)/Microsoft Visual Studio/2017/{edition}'.format( +    edition=args.vs_edition) + +def setup_vs_env(): +    old_dir = os.getcwd() +    os.chdir(os.path.join(vs_path, 'VC/Auxiliary/Build')) +    output = subprocess.check_output('vcvarsall.bat {arch} & set'.format(arch=args.arch), text=True) +    for line in output.splitlines(): +        e = line.find('=') +        os.environ[line[:e]] = line[e+1:] +    os.chdir(old_dir) + +setup_vs_env() + +os.chdir(project_root) -subprocess.run('cmake -S . -B build -G "Visual Studio 15 2017" -A {arch}'.format(arch=generater_vs_arch_map[args.arch]), +subprocess.run('cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE="{config}"'.format(config=args.config),                 stdout=sys.stdout, stderr=sys.stderr) -subprocess.run('cmake --build build --target ALL_BUILD --config {config}'.format(config=args.config), +subprocess.run('cmake --build build --target all',                 stdout=sys.stdout, stderr=sys.stderr) | 
