summaryrefslogtreecommitdiffhomepage
path: root/include/NeBuildKit/JSONManifestBuilder.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-23 20:34:55 -0500
committerGitHub <noreply@github.com>2025-11-23 20:34:55 -0500
commit85765f403b957d40fea92d3bc271eed3911187e4 (patch)
tree0fdeb080c08113558b6550cf06b81ba67d9c9348 /include/NeBuildKit/JSONManifestBuilder.h
parent28e3d9b250a11cc1167683e6388d8cca715bb593 (diff)
parent64b8a6bf04095d80b1ca52415ea954b933f47098 (diff)
Merge pull request #10 from nekernel-org/dev
feat! breaking changes, merging to stable.
Diffstat (limited to 'include/NeBuildKit/JSONManifestBuilder.h')
-rw-r--r--include/NeBuildKit/JSONManifestBuilder.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/NeBuildKit/JSONManifestBuilder.h b/include/NeBuildKit/JSONManifestBuilder.h
new file mode 100644
index 0000000..ccd5f6e
--- /dev/null
+++ b/include/NeBuildKit/JSONManifestBuilder.h
@@ -0,0 +1,39 @@
+// ============================================================= //
+// nebuild
+// Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under BSD-3 license.
+// ============================================================= //
+
+#pragma once
+
+#include <NeBuildKit/IManifestBuilder.h>
+#include <json/json.h>
+
+/// @file JSONManifestBuilder.h
+/// @brief JSON manifest builder header file.
+
+namespace NeBuild {
+/// @brief JSON builder
+class JSONManifestBuilder final NEBUILD_MANIFEST_BUILDER {
+ public:
+ JSONManifestBuilder() = default;
+ ~JSONManifestBuilder() override = default;
+
+ JSONManifestBuilder& operator=(const JSONManifestBuilder&) = default;
+ JSONManifestBuilder(const JSONManifestBuilder&) = default;
+
+ public:
+ /// =========================================================== ///
+ /// @brief Builds a JSON target from a JSON file.
+ /// @param arg_sz filename size (must be 1 or greater).
+ /// @param arg_val filename path (must be a valid JSON file).
+ /// @retval true building has succeeded.
+ /// @retval false fail to build, see error message.
+ /// =========================================================== ///
+ bool BuildTarget(const std::string& arg_val, const bool dry_run = false) override;
+
+ /// =========================================================== ///
+ /// @brief Returns the build system name.
+ /// =========================================================== ///
+ const char* BuildSystem() override;
+};
+} // namespace NeBuild \ No newline at end of file