Wolfyxon / lover

Love2D runner and cross platform builder inspired by Cargo.
GNU Lesser General Public License v2.1
11 stars 0 forks source link
build-system build-tool cross-platform cross-platform-development love love2d lua

Lover

Lover is a open source command line build system and runner for Love2D projects inspired by Cargo.

Wiki | CLI usage | Constants

Features

Easy cross-platform building

You can easily build your game for all supported platforms with a single command.

Automatic dependency management

Love binaries required for building are downloaded automatically and can easily be managed by using Lover commands.

Finally a good run command

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

Default environment variables

You can access certain constants like the game's version by the use of os.getenv().

local version = os.getenv("LOVER_VERSION")

learn more

Simple command line interface

Lover has a simple and easy to use command syntax (at least I hope).

Supported platforms

Build targets

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.

Lover tool

Platform Arch Status
Linux x86_64
Linux x86_32
Windows x86_64
Windows x86_32
MacOS

Compiling

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.

Why?

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.

Used crates