diff options
Diffstat (limited to 'include/NeBuildKit/IManifestBuilder.h')
| -rw-r--r-- | include/NeBuildKit/IManifestBuilder.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/NeBuildKit/IManifestBuilder.h b/include/NeBuildKit/IManifestBuilder.h new file mode 100644 index 0000000..96c80c3 --- /dev/null +++ b/include/NeBuildKit/IManifestBuilder.h @@ -0,0 +1,39 @@ +// ============================================================= // +// nebuild +// Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under BSD-3 license. +// ============================================================= // + +#pragma once + +#include <NeBuildKit/Defines.h> + +#define NEBUILD_MANIFEST_BUILDER : public ::NeBuild::IManifestBuilder + +namespace NeBuild { +/// =========================================================== /// +/// @brief Builder interface class. +/// @note This class is meant to be used as an interface. +/// =========================================================== /// +class IManifestBuilder { + public: + IManifestBuilder() = default; + virtual ~IManifestBuilder() = default; + + IManifestBuilder& operator=(const IManifestBuilder&) = default; + IManifestBuilder(const IManifestBuilder&) = default; + + /// =========================================================== /// + /// @brief Builds a TOML target from a file. + /// @param arg_sz filename size (must be 1 or greater). + /// @param arg_val filename path (must be a valid language file). + /// @retval true building has succeeded. + /// @retval false fail to build, see error message. + /// =========================================================== /// + virtual bool BuildTarget(const std::string& arg, const bool dry_run = false) = 0; + + /// =========================================================== /// + /// @brief Returns the build system name. + /// =========================================================== /// + virtual const char* BuildSystem() = 0; +}; +} // namespace NeBuild
\ No newline at end of file |
