lingua-franca

Crates.iolingua-franca
lib.rslingua-franca
version0.2.2
sourcesrc
created_at2023-11-17 17:17:53.837533
updated_at2024-12-10 20:15:48.327488
descriptionPackage manager and build tool for the Lingua Franca coordination language
homepagehttps://lf-lang.org
repositoryhttps://github.com/lf-lang/lingo
max_upload_size
id1039278
size198,078
Marten Lohstroh (lhstrh)

documentation

README

Lingo - A build tool for Lingua Franca programs

Contact: tassilo-tanneberger@tu-dresden.de

Lingo is a one-stop build tool for the Lingua Franca project. Lingo will manage your dependencies, configure build scripts and will potentially cross-compile for embedded platforms.

Getting started

Lingo is a Rust project and is built with cargo. To install it simply run cargo install --path .

The command line interface

Build system for the Lingua Franca coordination language

Usage: lingo [OPTIONS] <COMMAND>

Commands:
  init    Initialize a Lingua Franca package
  build   Compile one or multiple binaries in a Lingua Franca package
  update  Update the dependencies and potentially build tools
  run     Build and run binaries
  clean   Remove build artifacts
  help    Print this message or the help of the given subcommand(s)

Options:
  -q, --quiet    Do not produce any output
  -v, --verbose  Provide more detailed feedback
  -h, --help     Print help
  -V, --version  Print version

The toml-based package configurations

The Lingo.toml may look something like this.

[package]
name = "example_project"
version = "0.1.0"
authors = ["tassilo.tannerber@tu-dresden.de"]
homepage = "https://lf-lang.org"
license = "Weird Stallman License"
description = "A little Lingo.toml for people"

# a library exported by this LF Package
[lib]
name = "websocket"
location = "./src/lib"
target = "C"
platform = "Native"

[lib.properties]
cmake-include="./websocket.cmake"

# first binary in the project
[[app]]
name = "git-hook"
target = "cpp"
main = "src/Main.lf"

# replacement for target properties
[[app.properties]]
cmake-include = "./my-cmake.cmake"
logging = "info"

# dependencies
[[dependencies]]
mqtt = {version=">=0.1", git="https://github.com/LF-Community/mqtt.git", branch="main"}

Supported Platforms

We mainly support Linux and MacOs, support for windows is secondary.

Commit count: 151

cargo fmt