44
45 '''
46 @brief Build Spices Solution with configuration.
47 '''
48
49 parser = argparse.ArgumentParser(description='Build Spices Solution')
50 parser.add_argument('--target' , type=str, required=True, help='target solution, e.g. C:/')
51 parser.add_argument('--configuration', type=str, required=True, help='target solution build configuration, e.g. C:/')
52 parser.add_argument('--platform' , type=str, required=True, help='target solution build platform, e.g. C:/')
53 args = parser.parse_args()
54
55 if not os.path.isfile(args.target):
56 raise Exception('Invalid argument for --target: {}'.format(args.target))
57
58 msbuild_path = find_msbuild()
59 solution_path = args.target
60
61
62 build_command = [
63 msbuild_path,
64 solution_path,
65 "/p:Configuration=" + args.configuration,
66 "/p:Platform=" + args.platform,
67 "/v:m"
68 ]
69
70
71 process = subprocess.Popen(build_command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)
72
73
74 try:
75 for line in process.stdout:
76 print(line, end='')
77 except KeyboardInterrupt:
78 print("\nBuild interrupted by user.")
79 process.terminate()
80 process.wait()
81 return
82
83
84 process.wait()
85
86 if process.returncode == 0:
87 print("Build Succeed")
88 else:
89 print("Build Failed, Error Code:", process.returncode)
90