summaryrefslogtreecommitdiffhomepage
path: root/src/cli/main.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-02-19 07:49:30 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-02-19 07:49:30 +0100
commite1d5089d237a34c4977cdf5dfa65c9f58b351d11 (patch)
tree4a93b3cbe86dfdef46400d0e029e1ecdf6edd0d0 /src/cli/main.cc
parentf772ad47f6021b3ae7899244ea1e1c38e090b1ce (diff)
chore: build: project infra tweaks.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/cli/main.cc')
-rw-r--r--src/cli/main.cc84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/cli/main.cc b/src/cli/main.cc
deleted file mode 100644
index 61ab3c7..0000000
--- a/src/cli/main.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// ============================================================= //
-// NeBuild
-// FILE: main.cc
-// PURPOSE: Main Tool Entrypoint.
-// Copyright (C) 2024-2025, Amlal El Mahrouss and NeKernel Authors, licensed under BSD-3 license.
-// ============================================================= //
-
-#include <NeBuildKit/JSONManifestBuilder.h>
-#include <NeBuildKit/TOMLManifestBuilder.h>
-#include <memory>
-#include <thread>
-
-int main(int argc, char** argv) {
- if (argc < 1) return EXIT_FAILURE;
-
- NeBuild::BuildConfig config;
-
- for (size_t index = 1; index < argc; ++index) {
- std::string index_path = argv[index];
-
- if (index_path == "-v" || index_path == "-version") {
- NeBuild::Logger::info() << "NeBuild (" << NEBUILD_VERSION << ")\n";
- return EXIT_SUCCESS;
- } else if (index_path == "-dry-run" || index_path == "-n") {
- config.dry_run(true);
- continue;
- } else if (index_path == "-h" || index_path == "-help") {
- NeBuild::Logger::info() << "usage: nebuild <options> <file>.\n";
-
- return EXIT_SUCCESS;
- }
-
- auto index_cpy = index;
-
- std::thread job_build_thread([&index_path, &index, &index_cpy, &argc, &argv, &config]() -> void {
- std::unique_ptr<NeBuild::IManifestBuilder> builder;
-
- constexpr auto kJsonExtension = ".json";
-
- if (index_path.ends_with(kJsonExtension)) {
- builder = std::make_unique<NeBuild::JSONManifestBuilder>();
-
- /// report failed build to config.
- if (!builder) {
- config.has_failed(true);
- return;
- }
- } else {
- constexpr auto kTomlExtension = ".toml";
- builder = std::make_unique<NeBuild::TOMLManifestBuilder>();
-
- if (!index_path.ends_with(kTomlExtension)) {
- NeBuild::Logger::info() << "error: file '" << index_path << "' is not a manifest file!"
- << std::endl;
- config.has_failed(true);
- return;
- }
- }
-
- std::string next_path;
-
- if ((index_cpy + 1) < argc && argv[index_cpy + 1]) next_path = argv[index_cpy + 1];
-
- if (next_path == "-build-system") {
- NeBuild::Logger::info() << builder->BuildSystem() << std::endl;
- std::exit(EXIT_SUCCESS);
- }
-
- NeBuild::Logger::info() << "building manifest: " << index_path << std::endl;
-
- config.path(index_path);
-
- if (builder && !builder->BuildTarget(config)) {
- config.has_failed(true);
- }
- });
-
- job_build_thread.join();
- }
-
- // check for whether config is valid. if so return failure, or success.
- return !config ? EXIT_FAILURE : EXIT_SUCCESS;
-}