Lover is a open source command line build system and runner for Love2D projects inspired by Cargo.
You can easily build your game for all supported platforms with a single command.
Love binaries required for building are downloaded automatically and can easily be managed by using Lover commands.
When using lover run
you can pass arguments to your game and even --flags.
Most tools like Makefile and Cargo will treat all flags as their own and not allow such things.
lover run someArgument --someFlag --gameMode=survival
You can access certain constants like the game's version by the use of os.getenv()
.
local version = os.getenv("LOVER_VERSION")
Lover has a simple and easy to use command syntax (at least I hope).
- ✅ Full support: The platform is fully supported and should work
- 🟡 Partial support: The platform mostly works but you may encounter issues
- 📁 Planned: Support will be implemented in future
- ⭕ Not yet needed: The platform is not widely used. If you want support for it you can open an issue and it will be implemented.
- ❗ Testers/maintainers needed: someone is needed to test and/or maintain the platform
- ❌ Impossible: The platform is currently impossible to implement
Name | Arch | Alias | Status |
---|---|---|---|
Universal LOVE file | love |
✅ | |
Linux AppImage | x86_64 | linux |
✅ |
Linux AppImage | x86_32 | ❌ | |
Windows | x86_64 | win64 |
✅ |
Windows | x86_32 | win32 |
✅ |
MacOS | ❗ | ||
Web | 📁 | ||
Android | 📁 | ||
Nintendo 3DS 3DSX |
📁 | ||
Nintendo 3DS CIA |
📁 | ||
Nintendo Wii U | ❗ | ||
Nintendo Switch | ❗ |
Please also see the compatibility matrix.
The love
target is runnable on all platforms, but require LÖVE to be installed.
Platform | Arch | Status |
---|---|---|
Linux | x86_64 | ✅ |
Linux | x86_32 | ⭕ |
Windows | x86_64 | ✅ |
Windows | x86_32 | ⭕ |
MacOS | ❗ |
Lover is written in Rust and managed by Cargo.
Install Cargo on your system then open the terminal in the Lover's source directory and run:
cargo build
or
cargo run
to just run it.
Read the documentation for more info.
I wanted to create a simple expandable and universal system for building, running and managing Love2D projects.
This is a replacement for my previous project Love2D Universal which utilized a single Makefile, however a global system-wide tool is a way better approach. A single script setup for a large project is not a good idea, as organization is not great for such big scripts and implementing a lot of advanced features is not easy. Also this tool does not require installing as much software as Love2D Universal and has a nice error handling and warnings.
This tool is also very similar to Cargo which manages Rust projects.
reqwest
: Sending HTTP requests and downloading filesserde
: Serializing structsserde_json
: JSON parsing and serde supporttoml
: TOML parsing and serde supportzip
: Managing ZIP archivesimage
: Handling image filesdirs
: Finding system directories on various platformsregex
: Using regular expressions on stringsansi_term
: Styling terminal outputbackhand
: Modifying, creating and parsing SquashFS