Skip to content
/ fibs Public

Typescript based cmake wrapper and task runner

License

Notifications You must be signed in to change notification settings

floooh/fibs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fibs

Floh's Infernal Build System

A Typescript-based cmake-wrapper and task-runner that simplifies C/C++ project configuration and builds, sprititual successor to fips.

Getting StartedTroubleshootingUsageExamplesDocumentation

TL;DR: Write your build scripts in Typescript:

import { Builder } from 'jsr:@floooh/fibs@^1';

export function build(b: Builder) {
    b.addTarget({
        name: "hello",
        type: "plain-exe",
        sources: ["hello.c"]
    });
}

...then build and run like this:

./fibs build
./fibs run hello

...plus much more.

Features

  • describe C/C++ builds in Typescript instead of wrestling with cmake syntax
  • runs on macOS, Linux and Windows
  • import dependencies from git repositories
  • extensibility as core feature:
    • add subcommands for custom workflows and automation
    • custom build jobs for code generation or invoking external build tools (shader compilers, asset exporters, etc...)
    • add new target platforms and IDE integrations
    • ...all written in Typescript/Deno

Differences to Fips

  • everything is Typescript instead of a mix of Python, YAML and cmake-script
  • dependencies and output files are now stored within the project directory instead of 'sister directories'
  • new target platforms (e.g. WASI, Emscripten) and IDE integrations can now be added in regular dependencies instead of submitting PRs to the core project
  • non-intrusive 'fibsification' of 3rd-party C/C++ libraries no longer requires wrestling with git submodules

About

Typescript based cmake wrapper and task runner

Topics

Resources

License

Stars

Watchers

Forks