17
17
#include " buildcc.h"
18
18
19
19
#include " buildexe/args_setup.h"
20
+ #include " buildexe/build_env_home.h"
20
21
#include " buildexe/build_env_setup.h"
21
22
#include " buildexe/toolchain_setup.h"
22
23
@@ -34,25 +35,15 @@ constexpr const char *const kTag = "BuildExe";
34
35
35
36
static void clean_cb ();
36
37
38
+ // TODO, Update BuildExeArgs with internal functions
37
39
int main (int argc, char **argv) {
38
- Args args;
40
+ //
41
+ BuildccHome::Init ();
39
42
40
- ArgToolchain host_toolchain_arg;
41
- args.AddToolchain (" host" , " Host Toolchain" , host_toolchain_arg);
42
-
43
- BuildExeMode out_mode;
44
- setup_arg_buildexe_mode (args, out_mode);
45
-
46
- ArgTargetInfo out_targetinfo;
47
- setup_arg_target_info (args, out_targetinfo);
48
-
49
- ArgTargetInputs out_targetinputs;
50
- setup_arg_target_inputs (args, out_targetinputs);
51
-
52
- ArgScriptInfo out_scriptinfo;
53
- setup_arg_script_mode (args, out_scriptinfo);
54
-
55
- args.Parse (argc, argv);
43
+ //
44
+ BuildExeArgs buildexe_args;
45
+ buildexe_args.Setup ();
46
+ buildexe_args.Parse (argc, argv);
56
47
57
48
// TODO, Add Verification subcommand here for OS, Compiler etc!
58
49
// os win, linux considerations
@@ -63,33 +54,24 @@ int main(int argc, char **argv) {
63
54
// TODO, Add libraries (git cloned)
64
55
// TODO, Add extension (git cloned)
65
56
66
- Register reg (args );
57
+ Register reg (buildexe_args. GetArgs () );
67
58
reg.Clean (clean_cb);
68
59
69
- // Build
70
- BaseToolchain toolchain = host_toolchain_arg.ConstructToolchain ();
60
+ // Host Toolchain
61
+ BaseToolchain toolchain =
62
+ buildexe_args.GetHostToolchainArg ().ConstructToolchain ();
71
63
find_toolchain_verify (toolchain);
72
- if (out_mode == BuildExeMode::Script) {
64
+ if (buildexe_args. GetBuildMode () == BuildExeMode::Script) {
73
65
host_toolchain_verify (toolchain);
74
66
}
75
67
76
- // Build environment
77
- BuildEnvSetup build_setup (reg, toolchain, out_targetinfo, out_targetinputs);
78
- if (out_mode == BuildExeMode::Script) {
79
- // buildcc and user target
80
- build_setup.ConstructUserTargetWithBuildcc ();
81
- } else {
82
- // user target
83
- build_setup.ConstructUserTarget ();
84
- }
85
- reg.RunBuild ();
86
-
87
- // Run
88
- if (out_mode == BuildExeMode::Script) {
89
- env::log_info (kTag ,
90
- fmt::format (" ************** Running '{}' **************" ,
91
- out_targetinfo.name ));
92
- build_setup.RunUserTarget (out_scriptinfo);
68
+ // Build Target
69
+ BuildEnvSetup build_setup (reg, toolchain, buildexe_args);
70
+ build_setup.ConstructTarget ();
71
+
72
+ // Run Target if script mode
73
+ if (buildexe_args.GetBuildMode () == BuildExeMode::Script) {
74
+ build_setup.RunUserTarget (buildexe_args.GetScriptInfo ());
93
75
}
94
76
95
77
// - Clang Compile Commands
0 commit comments