summaryrefslogtreecommitdiffhomepage
path: root/src/CommandLine
diff options
context:
space:
mode:
Diffstat (limited to 'src/CommandLine')
-rw-r--r--src/CommandLine/ptx-drv.cpp37
-rw-r--r--src/CommandLine/ptx-drv.json21
2 files changed, 58 insertions, 0 deletions
diff --git a/src/CommandLine/ptx-drv.cpp b/src/CommandLine/ptx-drv.cpp
new file mode 100644
index 0000000..2e5a72f
--- /dev/null
+++ b/src/CommandLine/ptx-drv.cpp
@@ -0,0 +1,37 @@
+// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
+// Licensed under the Apache License, Version 2.0 (See accompanying
+// file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0)
+// Official repository: https://github.com/ne-foss-org/nectar
+
+/// @file pef-amd64-cxxdrv.cc
+/// @brief Nectar C++ frontend compiler for AMD64.
+
+#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 = "CompilerNectarPTX";
+
+Int32 main(Int32 argc, char const* argv[]) {
+ CompilerKit::ModuleLoader dylib;
+ dylib(kPath, kSymbol);
+
+ CompilerKit::ModuleLoader::EntryT entrypoint_cxx =
+ reinterpret_cast<CompilerKit::ModuleLoader::EntryT>(dylib.fEntrypoint);
+
+ if (!entrypoint_cxx) {
+ kStdOut;
+ std::printf("error: Could not find entrypoint in %s: %s\n", kPath, dlerror());
+
+ return EXIT_FAILURE;
+ }
+
+ return (entrypoint_cxx(argc, argv) == NECTAR_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/src/CommandLine/ptx-drv.json b/src/CommandLine/ptx-drv.json
new file mode 100644
index 0000000..6372117
--- /dev/null
+++ b/src/CommandLine/ptx-drv.json
@@ -0,0 +1,21 @@
+{
+ "compiler_path": "clang++",
+ "compiler_std": "c++20",
+ "headers_path": [
+ "../include/CompilerKit",
+ "../../include",
+ "../include/CompilerKit/src/Detail"
+ ],
+ "sources_path": [
+ "ptx-drv.cpp"
+ ],
+ "output_name": "ptx-necdrv",
+ "compiler_flags": [
+ ],
+ "cpp_macros": [
+ "__NECDRV__=202504",
+ "CK_POSIX",
+ "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)"
+ ]
+}
+