https://github.com/joellefkowitz/miniscons
SCons builders.
https://github.com/joellefkowitz/miniscons
builders scons sconstruct
Last synced: 27 days ago
JSON representation
SCons builders.
- Host: GitHub
- URL: https://github.com/joellefkowitz/miniscons
- Owner: JoelLefkowitz
- License: mit
- Created: 2024-04-12T19:35:32.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-21T09:37:26.000Z (8 months ago)
- Last Synced: 2025-07-08T20:51:26.467Z (3 months ago)
- Topics: builders, scons, sconstruct
- Language: Python
- Size: 135 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Miniscons
SCons builders.




## Motivation
When writing an `SConstruct.py` configuration it is difficult to:
- Specify libraries and warnings for each build since the default environment is global
- Declare executable targets that depend on builds and don't need to be built themselves
- Parse outputs from `conan` to get include paths for build dependencies since they don't appear in the exported `conandeps`
- Declare and chain together aliases for external scriptsWe can use `miniscons` to keep the `SConstruct.py` file short and get an interface like this:
```yaml
builds:
build
teststargets:
start -> build
test -> testsscripts:
tidy
cleanroutines:
lint -> [tidy, clean]flags:
--dump
```## Installing
```bash
pip install miniscons
```## Documentation
Documentation and more detailed examples are hosted on [Github Pages](https://joellefkowitz.github.io/miniscons).
## Usage
Parse the `SConscript_conandeps` if you are using `conan`:
```py
from miniscons import conanenv = conan()
```Add the builds with their specific warning flags and libs to include:
```py
from miniscons import Build, flags, packages
from walkmate import treebuild = Build(
"build",
tree("src", r"(? build
test -> testsscripts:
tidy
cleanroutines:
lint -> [tidy, clean]flags:
--dump
```## Discussion
Why not use a simple task runner for scripts and routines?
Some scripts need access to the include paths that appear in the `SConstruct.py` file so they need to be integrated into the scons workflow.
## Tooling
### Dependencies
To install dependencies:
```bash
yarn install
pip install .[all]
```### Tests
To run tests:
```bash
thx test
```### Documentation
To generate the documentation locally:
```bash
thx docs
```### Linters
To run linters:
```bash
thx lint
```### Formatters
To run formatters:
```bash
thx format
```## Contributing
Please read this repository's [Code of Conduct](CODE_OF_CONDUCT.md) which outlines our collaboration standards and the [Changelog](CHANGELOG.md) for details on breaking changes that have been made.
This repository adheres to semantic versioning standards. For more information on semantic versioning visit [SemVer](https://semver.org).
Bump2version is used to version and tag changes. For example:
```bash
bump2version patch
```### Contributors
- [Joel Lefkowitz](https://github.com/joellefkowitz) - Initial work
## Remarks
Lots of love to the open source community!
![]()
![]()
![]()