slate - a build system written in c99

Slate is a simple configuration-based build-system, akin to MSBuild without XML.

As an example, here is the project file used by Slate itself.

Name slate
Lang c

# -Wall on GCC and /W3 on MSVC
Warnings Max
Warnings Error

Optimize Speed

Debug
IgnoreUnsafeStr

SrcDir src
SrcDir src/langs
ObjDir obj
Bin slate

This configuration file generates the following compiler command with GCC.

cc -Wall -Werror -O2 -std=c99 -g src/memory.c src/parse.c src/platform.c src/slate.c src/string.c src/langs/c.c src/langs/cpp.c src/langs/cs.c src/langs/java.c -o slate

Slate supports C, C++, C#, and Java compilation.

Language

Compiler

C, C++

MSVC, GCC

C#

Roslyn (.NET Core)

Java

OpenJDK, Java SE