diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-19 07:49:30 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-19 07:49:30 +0100 |
| commit | e1d5089d237a34c4977cdf5dfa65c9f58b351d11 (patch) | |
| tree | 4a93b3cbe86dfdef46400d0e029e1ecdf6edd0d0 /src/cli/main.cc | |
| parent | f772ad47f6021b3ae7899244ea1e1c38e090b1ce (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.cc | 84 |
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; -} |
