summaryrefslogtreecommitdiffhomepage
path: root/include/NeBuildKit/TOMLManifestBuilder.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/NeBuildKit/TOMLManifestBuilder.h')
-rw-r--r--include/NeBuildKit/TOMLManifestBuilder.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/NeBuildKit/TOMLManifestBuilder.h b/include/NeBuildKit/TOMLManifestBuilder.h
new file mode 100644
index 0000000..c6a12bc
--- /dev/null
+++ b/include/NeBuildKit/TOMLManifestBuilder.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 <toml++/toml.hpp>
+
+/// @file TOMLManifestBuilder.h
+/// @brief TOML manifest builder header file.
+
+namespace NeBuild {
+/// @brief TOML builder
+class TOMLManifestBuilder final NEBUILD_MANIFEST_BUILDER {
+ public:
+ TOMLManifestBuilder() = default;
+ ~TOMLManifestBuilder() override = default;
+
+ TOMLManifestBuilder& operator=(const TOMLManifestBuilder&) = default;
+ TOMLManifestBuilder(const TOMLManifestBuilder&) = default;
+
+ public:
+ /// =========================================================== ///
+ /// @brief Builds a TOML target from a TOML file.
+ /// @param arg_sz filename size (must be 1 or greater).
+ /// @param arg_val filename path (must be a valid TOML 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