aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-09-20 06:37:59 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-06 07:28:02 +0200
commitb8fd71aa2af110372841a1724471b8bffa4ab254 (patch)
treee596988b47c58003222b526e72294abb756c2d79 /tests
parent053c4ad0c3807105a53d9ba65e47483a90bfde52 (diff)
Initial commit, works to create ninja file
Diffstat (limited to 'tests')
-rw-r--r--tests/main.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/main.cpp b/tests/main.cpp
new file mode 100644
index 0000000..9af7241
--- /dev/null
+++ b/tests/main.cpp
@@ -0,0 +1,37 @@
+#include <cstdio>
+#include <ninja/Ninja.hpp>
+
+using namespace ninja;
+
+int main(int argc, char **argv)
+{
+ NinjaBuildFile ninjaBuildFile;
+ ninjaBuildFile.defineGlobalVariable("globalIncDir", "'-I/home/dec05eba/git/libninja/include'");
+
+ NinjaVariable argsVar = { "ARGS" };
+ NinjaVariable linkArgsVar = { "LINK_ARGS" };
+
+ NinjaRule *compileCppRule = ninjaBuildFile.createRule("cpp_COMPILER",
+ { NinjaArg("c++"), NinjaArg(argsVar), NinjaArg("-c"), NinjaArg("$in"), NinjaArg("-o"), NinjaArg("$out") });
+ compileCppRule->depFile = "$out.d";
+
+ NinjaRule *buildExeRule = ninjaBuildFile.createRule("BUILD_EXEC",
+ { NinjaArg("c++"), NinjaArg(argsVar), NinjaArg("-o"), NinjaArg("$out"), NinjaArg("$in"), NinjaArg(linkArgsVar), NinjaArg("$aliasing") });
+ buildExeRule->depFile = "$out.d";
+
+ NinjaRule *compileCRule = ninjaBuildFile.createRule("c_COMPILER",
+ { NinjaArg("cc"), NinjaArg(argsVar), NinjaArg("-c"), NinjaArg("$in"), NinjaArg("-o"), NinjaArg("$out") });
+ buildExeRule->depFile = "$out.d";
+
+
+ NinjaArgValue argsValue = { argsVar, "$globalIncDir -std=c++14 -pedantic -fpie -MMD -MP '-Itest@exe' '-I..' -Wall -Wextra -Werror=return-type -fdiagnostics-show-option '-fdiagnostics-color=always' '-pipe' '-D_FILE_OFFSET_BITS=64' '-Winvalid-pch' -fstack-protector '-Og' -fexceptions -Wnon-virtual-dtor -g3 -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -fasynchronous-unwind-tables" };
+ compileCppRule->build("../../main.cpp", "test@exe/main.cpp.o", { argsValue });
+
+ NinjaArgValue linkArgsValue = { linkArgsVar, "-Wl,--no-undefined,--as-needed -ldl -lm -pthread -pthread \"/home/dec05eba/git/libninja/sibs-build/debug/liblibninja.so\"" };
+ buildExeRule->build("test@exe/main.cpp.o", "test", { argsValue });
+
+ std::string generatedNinjaFile = ninjaBuildFile.generate();
+
+ printf("%s\n", generatedNinjaFile.c_str());
+ return 0;
+}