[M4] cargoxx build invokes nix+cmake

This commit is contained in:
2026-05-10 00:04:18 +00:00
parent 807158b8cc
commit f6e8699a72
6 changed files with 121 additions and 29 deletions

View File

@@ -23,9 +23,12 @@ auto run(int argc, char** argv) -> int {
"build", "Generate flake.nix and build/CMakeLists.txt; build with nix+cmake");
bool build_no_build = false;
bool build_release = false;
std::string build_target;
build_cmd->add_flag("--no-build", build_no_build,
"Generate files only; do not invoke nix/cmake");
build_cmd->add_flag("--release", build_release, "Build the release profile");
build_cmd->add_option("--target", build_target,
"Build a specific target (passed to cmake --build)");
try {
app.parse(argc, argv);
@@ -52,12 +55,20 @@ auto run(int argc, char** argv) -> int {
}
if (*build_cmd) {
auto r = cmd_build(cwd, build_no_build, build_release);
std::optional<std::string> target;
if (!build_target.empty()) {
target = build_target;
}
auto r = cmd_build(cwd, build_no_build, build_release, target);
if (!r) {
std::cerr << util::format(r.error());
return 1;
}
std::cout << " Generated flake.nix, build/CMakeLists.txt, Cargoxx.lock\n";
if (build_no_build) {
std::cout << " Generated flake.nix, build/CMakeLists.txt, Cargoxx.lock\n";
} else {
std::cout << " Built\n";
}
return 0;
}