'INCLUDE', 'LIB', 'PATH', ] for var in required_vars: if not var in os.environ.keys(): raise Exception('%s environment variable must be set' % var) # Windows custom toolchain requirements. See comments in gn_args.py. gn_args['visual_studio_path'] = os.environ['GYP_MSVS_OVERRIDE_PATH'] gn_args['visual_studio_version'] = os.environ['GYP_MSVS_VERSION'] gn_args['visual_studio_runtime_dirs'] = os.environ['VS_CRT_ROOT'] gn_args['windows_sdk_path'] = os.environ['SDK_ROOT'] configs = GetAllPlatformConfigs(gn_args) for dir, config in configs.items(): # Create out directories and write the args.gn file. out_path = os.path.join(src_dir, 'out', dir) make_dir(out_path, False) args_gn_path = os.path.join(out_path, 'args.gn') args_gn_contents = GetConfigFileContents(config) write_file(args_gn_path, args_gn_contents) # Generate the Ninja config. cmd = ['gn', 'gen', os.path.join('out', dir)] if 'GN_ARGUMENTS' in os.environ.keys(): cmd.extend(os.environ['GN_ARGUMENTS'].split(' ')) RunAction(src_dir, cmd) if platform == 'windows': issue_1999.apply(out_path)