diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 02:34:07 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 02:37:30 +0100 |
| commit | facb3edec9fd275d5a8fcabaa87f768087255768 (patch) | |
| tree | 587c1fdd1e4b09a3c0f5243af46f7d09ac3722fd /src/CommandLine/pef-arm64-cdrv.cc | |
| parent | 37b8e34dc54f572fbfbd135742fa11c21c5e67c1 (diff) | |
chore! breaking API changes, rename project to Nectar, instead of NeCTI.v0.0.9
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/CommandLine/pef-arm64-cdrv.cc')
| -rw-r--r-- | src/CommandLine/pef-arm64-cdrv.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/CommandLine/pef-arm64-cdrv.cc b/src/CommandLine/pef-arm64-cdrv.cc new file mode 100644 index 0000000..f4be5d0 --- /dev/null +++ b/src/CommandLine/pef-arm64-cdrv.cc @@ -0,0 +1,38 @@ +/* ======================================== + + Copyright (C) 2024-2025 Amlal El Mahrouss, licensed under the Apache 2.0 license + +======================================== */ + +/// @file pef-arm-cdrv.cc +/// @brief Nectar ARm64 C frontend compiler. + +#include <CompilerKit/Detail/Config.h> +#include <CompilerKit/ErrorID.h> +#include <CompilerKit/Utilities/Compiler.h> +#include <CompilerKit/Utilities/DLL.h> + +#ifdef __APPLE__ +static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; +#else +static auto kPath = "/usr/lib/libCompilerKit.so"; +#endif + +static auto kSymbol = "CompilerCLangARM64"; + +Int32 main(Int32 argc, Char const* argv[]) { + CompilerKit::DLLLoader dylib; + dylib(kPath, kSymbol); + + CompilerKit::DLLLoader::EntryT entrypoint_c = + reinterpret_cast<CompilerKit::DLLLoader::EntryT>(dylib.fEntrypoint); + + if (!entrypoint_c) { + kStdOut; + std::printf("error: Could not find entrypoint in %s: %s\n", kPath, dlerror()); + + return EXIT_FAILURE; + } + + return (entrypoint_c(argc, argv) == NECTI_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE; +} |
