Crates.io | simplebuild |
lib.rs | simplebuild |
version | 0.1.2 |
source | src |
created_at | 2024-03-22 09:58:12.890492 |
updated_at | 2024-03-22 13:57:08.986609 |
description | simple build automation tool for c |
homepage | |
repository | https://github.com/zahash/simplebuild |
max_upload_size | |
id | 1182459 |
size | 21,064 |
███████╗██╗███╗ ███╗██████╗ ██╗ ███████╗ ██████╗ ██╗ ██╗██╗██╗ ██████╗ ██╔════╝██║████╗ ████║██╔══██╗██║ ██╔════╝ ██╔══██╗██║ ██║██║██║ ██╔══██╗ ███████╗██║██╔████╔██║██████╔╝██║ █████╗ ██████╔╝██║ ██║██║██║ ██║ ██║ ╚════██║██║██║╚██╔╝██║██╔═══╝ ██║ ██╔══╝ ██╔══██╗██║ ██║██║██║ ██║ ██║ ███████║██║██║ ╚═╝ ██║██║ ███████╗███████╗ ██████╔╝╚██████╔╝██║███████╗██████╔╝ ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═════╝ -------------------------------------------------------------------------------------- A Simpler yet powerful Build Automation Tool for c (because `make` is hard 😭). Made with ❤️ using 🦀
SimpleBuild is a lightweight build automation tool designed specifically for C projects. It allows you to easily configure your build settings and targets through a simple TOML
configuration file.
make
😉)SimpleBuild optimizes build times by recompiling only the files that have changed since the last build. It also only relinks the target binary if necessary, minimizing unnecessary compilation and linking steps.
To use SimpleBuild, simply download the binary executable for your platform from the Releases page on GitHub. Place the executable in your desired directory and ensure it's included in your system's PATH environment variable.
Create a simplebuild.toml
file in the root directory of your project. This file will contain your build settings and target configurations.
simplebuild.toml
[compiler]
name = "gcc"
flags = ["-Wall", "-Wextra", "-Werror"]
includes = ["./external/include/"]
libraries = ["./external/lib/"]
staticlibs = ["m"] # Linked to all targets
dynlibs = ["SDL2"] # Linked to all targets
[build]
dir = "./build"
[[targets]]
name = "main"
source = "main.c"
dependencies = ["utils.c", "helper.c"]
staticlibs = ["pthread"] # Linked only to this target
[[targets]]
name = "test"
source = "test.c"
dependencies = ["utils.c"]
dynlibs = ["curl"] # Linked only to this target
Run the SimpleBuild executable in the same directory as your simplebuild.toml
file
simplebuild main
SimpleBuild will read the configuration from simplebuild.toml
and execute the build process based on the specified settings and targets.
The simplebuild.toml
file allows you to define various build settings and target configurations:
[compiler]
: Specifies compiler settings such as name, flags, include directories, library directories, static libraries, and dynamic libraries.[build]
: Defines the build directory where object files and binaries will be stored.[[targets]]
: Specifies individual build targets, including their source files, dependencies, and any additional libraries to link.M. Zahash – zahash.z@gmail.com
Distributed under the MIT license. See LICENSE
for more information.
git checkout -b feature/fooBar
)git commit -am 'Add some fooBar'
)git push origin feature/fooBar
)❤️ Show Some Love!
If you find SimpleBuild helpful, consider giving it a star on GitHub! Your support encourages continuous improvement and development.