Skip to content

Metals is a build tool made originally designed for C; Supports project naming, filetypes, integrity repairs and custom license selecter(not finished)

License

Notifications You must be signed in to change notification settings

CrunchysPixelPillow/project_metals

Repository files navigation

Project Metals

About

  • At ~260 lines of code, Project Metals is a simple build tool originally made for C++ projects
  • Inspired by Dub (Dlang’s project manager)
  • Made with Rust & Java (Java targeted from Haxe)

Features

  • Built-in runtime (you add your own command; working but needs improvement/broken)
  • Built-in license selector (not finished)
  • Built-in folder structure
  • Custom build settings (not implemented yet)

Usage

Project Setup

  • To create a new project, run metal-init for your corresponding operating system inside the Weld folder
  • To run your project, use metal-run (not recommeneded other then memes)

Prompts

  • Project name (assumes refactor is enabled)
  • License (unfinished; will skip)
  • File format (adds header files for C/C++; TODO: auto-detect formats, side scripts)
  • Build command (unfinished)

Repair & Recommended

  • Rerun metal-init to repair your project’s Metal folder integrity
  • Recommended not to use the custom command due to the fact it cannot handle stdin. Use it for memes

Important Notes

  • Output may not appear if your command does not produce usable stdout
  • Add echo "" to your batch or zsh file if needed
  • Because this is designed for universal projects, you must define your own build command in metal.txt

Issues

  • This project is still in development; builds may not always be usable
  • File integrity checks may fail to detect the main file if at all
  • The command used to build your project may sometimes run with fewer checks
  • Always ensure the command in command.txt matches your file structure

Settings

Project

  • project.txt — change project name
  • metal.txt — change (todo)
  • version.txt — change version (TODO)

Other

  • Temp stores recent errors from metals.jar (Failing)
  • refactor.txt controls refactor behavior (Failing)
    • True — remake project name and others (TODO)
    • False — turn off refactor

Future

  • Finish license selector
  • Add custom build settings
  • Allow commands without manual input (Getto)
  • Remove dead-end code

Requirements

  • Java SDK (optional; required for built-in runtime)
  • Rust (required for the entire project)
  • Weld folder in system PATH (optional but recommended)

Links

Suggested Compilers

About

Metals is a build tool made originally designed for C; Supports project naming, filetypes, integrity repairs and custom license selecter(not finished)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages