diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-20 05:04:26 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-20 15:49:00 +0100 |
| commit | e1fd8b63b079d72d31bd7e0ea30fb7695891bc98 (patch) | |
| tree | 56e5feb361683a98527ba92705cd049275252713 /lib | |
| parent | 271ebdc52e0b9e90381154a29b370bf0be59a611 (diff) | |
META: A bunch of repository update for btb's relevancy.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/IManifestBuilder.h | 30 | ||||
| -rw-r--r-- | lib/Includes.h | 12 | ||||
| -rw-r--r-- | lib/JSONManifestBuilder.h | 30 | ||||
| -rw-r--r-- | lib/Macros.h | 21 |
4 files changed, 93 insertions, 0 deletions
diff --git a/lib/IManifestBuilder.h b/lib/IManifestBuilder.h new file mode 100644 index 0000000..2aa45db --- /dev/null +++ b/lib/IManifestBuilder.h @@ -0,0 +1,30 @@ +// ============================================================= // +// btb +// Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. +// ============================================================= // + +#pragma once + +#include <Macros.h> +#include <Includes.h> + +/// @brief Builder interface class. +/// @note This class is meant to be used as an interface. +class IManifestBuilder +{ +public: + explicit IManifestBuilder() = default; + virtual ~IManifestBuilder() = default; + + IManifestBuilder& operator=(const IManifestBuilder&) = default; + IManifestBuilder(const IManifestBuilder&) = default; + + /// @brief Builds a target using the implemented laguage. + /// @param arg_sz filename size + /// @param arg_val filename path. + /// @retval true succeeded. + /// @retval false failed. + virtual bool buildTarget(int arg_sz, const char* arg_val, const bool dry_run = false) = 0; + + virtual const char* buildSystem() = 0; +}; diff --git a/lib/Includes.h b/lib/Includes.h new file mode 100644 index 0000000..070f80b --- /dev/null +++ b/lib/Includes.h @@ -0,0 +1,12 @@ +#ifndef BTB_INCLUDES_H +#define BTB_INCLUDES_H + +#include <cstdio> +#include <cstddef> +#include <string> +#include <iostream> +#include <thread> +#include <sstream> +#include <fstream> + +#endif // BTB_INCLUDES_H diff --git a/lib/JSONManifestBuilder.h b/lib/JSONManifestBuilder.h new file mode 100644 index 0000000..ae2d482 --- /dev/null +++ b/lib/JSONManifestBuilder.h @@ -0,0 +1,30 @@ +// ============================================================= // +// btb +// Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. +// ============================================================= // + +#pragma once + +#include <IManifestBuilder.h> +#include <json.h> + +/// @brief JSON builder +class JSONManifestBuilder final : public IManifestBuilder +{ +public: + explicit JSONManifestBuilder() = default; + virtual ~JSONManifestBuilder() override = default; + + JSONManifestBuilder& operator=(const JSONManifestBuilder&) = default; + JSONManifestBuilder(const JSONManifestBuilder&) = default; + +public: + /// @brief Builds a JSON target. + /// @param arg_sz filename size + /// @param arg_val filename path. + /// @retval true build succeeded. + /// @retval false failed to build. + virtual bool buildTarget(int arg_sz, const char* arg_val, const bool dry_run = false) override; + + virtual const char* buildSystem() override; +}; diff --git a/lib/Macros.h b/lib/Macros.h new file mode 100644 index 0000000..e9adddb --- /dev/null +++ b/lib/Macros.h @@ -0,0 +1,21 @@ +// ============================================================= // +// btb +// Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. +// ============================================================= // + +#pragma once + +#include <cassert> + +#define LIKELY(ARG) (ARG) ? assert(false) : ((void)0) +#define UNLIKELY(ARG) LIKELY(!(ARG)) + +#define BTBKIT_VERSION "1.2.0" + +#define BTBKIT_VERSION_BCD 0x0120 + +#define BTBKIT_VERSION_MAJOR 1 +#define BTBKIT_VERSION_MINOR 0 +#define BTBKIT_VERSION_PATCH 0 + +#define BTB_UNUSED(X) ((void)X) |
