diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-28 03:19:14 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-28 03:19:14 +0200 |
| commit | b250a9858728ad9078e482ccf95f938ceb0ae24c (patch) | |
| tree | 7190d7c9312a99ac83faf03da53b0612c1ea4eba | |
| parent | 23f0a09cb5bb9a211358e613557ab60b3cbd7172 (diff) | |
fix: fix dylib build on POSIX targets.
feat: add libBTB example, and updated libBTB version.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | BTBKit/IManifestBuilder.h | 3 | ||||
| -rw-r--r-- | BTBKit/JSONManifestBuilder.h | 9 | ||||
| -rw-r--r-- | BTBKit/Macros.h | 4 | ||||
| -rw-r--r-- | examples/example_01_hello_world/hello_world.cc (renamed from examples/example_01/example.cc) | 0 | ||||
| -rw-r--r-- | examples/example_01_hello_world/posix.json (renamed from examples/example_01/posix.json) | 4 | ||||
| -rw-r--r-- | examples/example_01_hello_world/win64.json (renamed from examples/example_01/win64.json) | 4 | ||||
| -rw-r--r-- | examples/example_02_libbtb/README.md | 7 | ||||
| -rw-r--r-- | examples/example_02_libbtb/libbtb.cc | 12 | ||||
| -rw-r--r-- | examples/example_02_libbtb/posix.json | 20 | ||||
| -rw-r--r-- | examples/example_02_libbtb/win64.json | 19 |
10 files changed, 69 insertions, 13 deletions
diff --git a/BTBKit/IManifestBuilder.h b/BTBKit/IManifestBuilder.h index 41c62df..e11d431 100644 --- a/BTBKit/IManifestBuilder.h +++ b/BTBKit/IManifestBuilder.h @@ -15,7 +15,7 @@ namespace BTB { /// @note This class is meant to be used as an interface. class IManifestBuilder { public: - explicit IManifestBuilder() = default; + IManifestBuilder() = default; virtual ~IManifestBuilder() = default; IManifestBuilder& operator=(const IManifestBuilder&) = default; @@ -27,7 +27,6 @@ class IManifestBuilder { /// @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; }; } // namespace BTB
\ No newline at end of file diff --git a/BTBKit/JSONManifestBuilder.h b/BTBKit/JSONManifestBuilder.h index 6654a9b..f5d874c 100644 --- a/BTBKit/JSONManifestBuilder.h +++ b/BTBKit/JSONManifestBuilder.h @@ -12,8 +12,8 @@ namespace BTB { /// @brief JSON builder class JSONManifestBuilder final BTB_MANIFEST_BUILDER { public: - explicit JSONManifestBuilder() = default; - virtual ~JSONManifestBuilder() override = default; + JSONManifestBuilder() = default; + ~JSONManifestBuilder() override = default; JSONManifestBuilder& operator=(const JSONManifestBuilder&) = default; JSONManifestBuilder(const JSONManifestBuilder&) = default; @@ -24,8 +24,7 @@ class JSONManifestBuilder final BTB_MANIFEST_BUILDER { /// @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; + bool buildTarget(int arg_sz, const char* arg_val, const bool dry_run = false) override; + const char* buildSystem() override; }; } // namespace BTB
\ No newline at end of file diff --git a/BTBKit/Macros.h b/BTBKit/Macros.h index 8b83037..c2d6194 100644 --- a/BTBKit/Macros.h +++ b/BTBKit/Macros.h @@ -14,9 +14,9 @@ extern "C" { #define LIKELY(ARG) ((ARG) ? assert(false) : ((void) 0)) #define UNLIKELY(ARG) LIKELY(!(ARG)) -#define LIBBTB_VERSION "1.1.0" +#define LIBBTB_VERSION "v0.0.1-libBTB" -#define LIBBTB_VERSION_BCD 0x0110 +#define LIBBTB_VERSION_BCD 0x0001 #define LIBBTB_VERSION_MAJOR 1 #define LIBBTB_VERSION_MINOR 1 diff --git a/examples/example_01/example.cc b/examples/example_01_hello_world/hello_world.cc index ae47ce8..ae47ce8 100644 --- a/examples/example_01/example.cc +++ b/examples/example_01_hello_world/hello_world.cc diff --git a/examples/example_01/posix.json b/examples/example_01_hello_world/posix.json index 17a6022..c3c8151 100644 --- a/examples/example_01/posix.json +++ b/examples/example_01_hello_world/posix.json @@ -2,8 +2,8 @@ "compiler_path": "g++", "compiler_std": "c++20", "headers_path": ["lib"], - "sources_path": ["example.cc"], - "output_name": "example.elf", + "sources_path": ["hello_world.cc"], + "output_name": "hello_world.elf", "compiler_flags": ["-fPIC"], "cpp_macros": ["FOO_MACRO"], "run_after_build": true diff --git a/examples/example_01/win64.json b/examples/example_01_hello_world/win64.json index 1712d8b..4af5bdd 100644 --- a/examples/example_01/win64.json +++ b/examples/example_01_hello_world/win64.json @@ -2,8 +2,8 @@ "compiler_path": "x86_64-w64-mingw32-g++", "compiler_std": "c++20", "headers_path": ["lib"], - "sources_path": ["example.cc"], - "output_name": "example.elf", + "sources_path": ["hello_world.cc"], + "output_name": "hello_world.elf", "compiler_flags": ["-fPIC"], "cpp_macros": ["FOO_MACRO"], "run_after_build": true diff --git a/examples/example_02_libbtb/README.md b/examples/example_02_libbtb/README.md new file mode 100644 index 0000000..50488a4 --- /dev/null +++ b/examples/example_02_libbtb/README.md @@ -0,0 +1,7 @@ +# Notice for Deployment. + +In order to use libBTB, it shall live on the same directory, +<br/> +or within a directory recognized in the `$PATH` variable. + +## Thanks in advance.
\ No newline at end of file diff --git a/examples/example_02_libbtb/libbtb.cc b/examples/example_02_libbtb/libbtb.cc new file mode 100644 index 0000000..f3d45b8 --- /dev/null +++ b/examples/example_02_libbtb/libbtb.cc @@ -0,0 +1,12 @@ +#include <BTBKit/JSONManifestBuilder.h> + +#ifndef _WIN32 +static auto kPath = "./posix.json"; +#else +static auto kPath = ".\win64.json"; +#endif + +int main(int argc, char** argv) { + auto builder = new BTB::JSONManifestBuilder(); + return builder->buildTarget(strlen(kPath), kPath); +} diff --git a/examples/example_02_libbtb/posix.json b/examples/example_02_libbtb/posix.json new file mode 100644 index 0000000..871712e --- /dev/null +++ b/examples/example_02_libbtb/posix.json @@ -0,0 +1,20 @@ +{ + "compiler_path": "g++", + "compiler_std": "c++20", + "headers_path": [ + "../../", + "../../vendor" + ], + "sources_path": [ + "libbtb.cc" + ], + "output_name": "libbtb.elf", + "compiler_flags": [ + "-L/usr/local/lib", + "-lBTB" + ], + "cpp_macros": [ + "FOO_MACRO" + ], + "run_after_build": true +}
\ No newline at end of file diff --git a/examples/example_02_libbtb/win64.json b/examples/example_02_libbtb/win64.json new file mode 100644 index 0000000..658ee0f --- /dev/null +++ b/examples/example_02_libbtb/win64.json @@ -0,0 +1,19 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": [ + "../../", + "../../vendor" + ], + "sources_path": [ + "libbtb.cc" + ], + "output_name": "libbtb.exe", + "compiler_flags": [ + "-lBTB" + ], + "cpp_macros": [ + "FOO_MACRO" + ], + "run_after_build": true +}
\ No newline at end of file |
