/** High-level rules for compiling C files */ module reggae.rules.c; import reggae.types; import reggae.build; import reggae.rules.common; import std.algorithm; /** * Compile-time function to that returns a list of Target objects * corresponding to C source files from a particular directory */ Target[] cObjects(SrcDirs dirs = SrcDirs(), Flags flags = Flags(), ImportPaths includes = ImportPaths(), SrcFiles srcFiles = SrcFiles(), ExcludeFiles excludeFiles = ExcludeFiles()) () { Target[] cCompileInner(in string[] files) { return files.map!(a => objectFile(a, flags.value, includes.value)).array; } return srcObjects!cCompileInner("c", dirs.value, srcFiles.value, excludeFiles.value); }