diff options
Diffstat (limited to 'tools/build.py')
-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) |