The Thyme build system.
Welcome to the Thyme build system! It chops, it dices, it links, it builds and Oh my! Do I see Lua?
Quick introduction
The Thyme build system is a language-agnostic, non-batteries including build system made in Rust. It is deeply inspired from Makefiles, but rather than executing a series of shell commands, it uses the Lua programming language for configuration. Go nuts! Do anything! It's Lua.
Guide to writing Thymefiles
Thyme is powerful, but very simple to use. Targets contain Lua code, and a target may depend on other targets. The default target is named default
. The syntax of defining a target is this
-- Psst, you can also have Lua-style comments outside of a target body as well. =)
target_name(dependencies here)
-- Insert any Lua code here!
print "Welcome to Thyme."
@end
For eg.
default(dependency_example)
print "Dependencies are evaluated first, and in the order they are defined."
print "Targets which do not have any dependencies can omit the parantheses."
@end
dependency_example
print "This is from the dependency!"
@end
Using the CLI
Your Thymefile should be located in the current directory, then use thyme
like this
thyme
to run the default target. However, to run other targets, run
thyme <target_name>
instead.
Passing arguments to your target
The target body can access the arguments passed to the CLI through the args
global.
-- Configuration.
example
for i in args
print(i)
end
@end
# Command
thyme example one two three four
# Output
one
two
three
four
License
Thyme is licensed under the MIT license. Please see the LICENSE file for more information.