Slate is a simple configuration-based build-system. $ slate [build|run|debug] The tool looks for a file called "project.prj" when ran. It generates and runs a command to compile the source based on the file. project.prj has a key-value syntax similar to NSIS Install Scripts. Single line comments are prefixed with a #. Example project.prj: ``` Name program Lang c SrcDir src ObjDir obj Bin program ``` To bootstrap Slate, run ./configure. It will generate a build.sh file to build the source code. Slate currently supports C and C++ with the MSVC and GCC compilers, C# with the Mono compiler, and Java with javac. C and C++ options: Bin [file] - specifies the binary executable file Warnings [Error, Max] - enables Werror and Wall respectively Debug - generate debug symbols Standard [std] - specify C standard Define [macro] - define a macro Optimize [Speed, Size] - enables optimizing for Speed and Size respectively Vcpkg - enables using vcpkg for libraries Library [file] - specifies a library dependency SrcDir [dir] - specifies a directory of .c files to compile IncludeDir [dir] - specifies a directory to add to the include path LibraryDir [dir] - specifies a directory to look for libraries ObjDir [dir] - specifies the directory to dump object files in (MSVC only) IgnoreUnsafeStr - Disable CRT warnings when using string functions (MSVC only) C# options: Bin [file] - specifies the binary executable file Warnings [Error] - enables Werror Debug - generate debug symbols Optimize - optimize code generation Library [file] - specifies an assembly reference LibraryDir [dir] - specifies a directory to look for libraries SrcDir [dir] - specifies a directory of .cs files to compile Java options: Bin [file] - specifies the final jar file Warnings [Error] - enables Werror Debug - generate debug symbols Library [file] - specifies a library dependency (JAR) SrcDir [dir] - specifies a directory of .java files to compile ObjDir [dir] - specifies where to place classes Main [class] - specifies the main class Universal options: Run - run an executable file RunQuiet - run an executable file and discard stdout and stderr Flag - add a compiler flag