rf-web/vendor/bundle/gems/rouge-3.12.0/lib/rouge/demos/jsonnet
2019-10-21 10:18:17 +02:00

29 lines
748 B
Plaintext

// Compiler template
local CCompiler = {
cFlags: [],
out: "a.out",
local flags_str = std.join(" ", self.cFlags),
local files_str = std.join(" ", self.files),
cmd: "%s %s %s -o %s" % [self.compiler, flags_str, files_str, self.out],
};
// GCC specialization
local Gcc = CCompiler { compiler: "gcc" };
// Another specialization
local Clang = CCompiler { compiler: "clang" };
// Mixins - append flags
local Opt = { cFlags: super.cFlags + ["-O3", "-DNDEBUG"] };
local Dbg = { cFlags: super.cFlags + ["-g"] };
// Output:
{
targets: [
Gcc { files: ["a.c", "b.c"] },
Clang { files: ["test.c"], out: "test" },
Clang + Opt { files: ["test2.c"], out: "test2" },
Gcc + Opt + Dbg { files: ["foo.c", "bar.c"], out: "baz" },
]
}