Metadata-Version: 2.1
Name: bfg9000
Version: 0.7.0
Summary: A cross-platform build file generator
Home-page: https://jimporter.github.io/bfg9000/
Author: Jim Porter
Author-email: itsjimporter@gmail.com
License: BSD-3-Clause
Keywords: build file generator
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: colorama
Requires-Dist: doppel (>=0.4.0)
Requires-Dist: importlib-metadata
Requires-Dist: importlib-resources
Requires-Dist: mopack (>=0.1.0)
Requires-Dist: pyyaml
Requires-Dist: verspec
Requires-Dist: pysetenv ; platform_system == "Windows"
Provides-Extra: dev
Requires-Dist: coverage ; extra == 'dev'
Requires-Dist: flake8-quotes ; extra == 'dev'
Requires-Dist: flake8 (>=3.7) ; extra == 'dev'
Requires-Dist: lxml ; extra == 'dev'
Requires-Dist: mike (>=0.3.1) ; extra == 'dev'
Requires-Dist: mkdocs-bootswatch-classic ; extra == 'dev'
Requires-Dist: mkdocs-macros-plugin ; extra == 'dev'
Requires-Dist: shtab ; extra == 'dev'
Requires-Dist: stdeb ; extra == 'dev'
Provides-Extra: msbuild
Requires-Dist: lxml ; extra == 'msbuild'
Provides-Extra: test
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: flake8-quotes ; extra == 'test'
Requires-Dist: flake8 (>=3.7) ; extra == 'test'
Requires-Dist: lxml ; extra == 'test'
Requires-Dist: shtab ; extra == 'test'

# bfg9000 - build file generator
**bfg9000** is a cross-platform *build configuration system* with an emphasis on
making it easy to define how to build your software. It converts a Python-based
build script into the appropriate files for your underlying build system of
choice (Ninja, Make, or MSBuild).

## Why bfg9000?

#### Familiar syntax

`build.bfg` files are just Python scripts with some new functions added, so you
may already know how to write them; and when your build gets complicated, you
can rely on the existing Python ecosystem to get you out of trouble.

#### Fast builds

bfg9000 ensures your builds are fast by relying on existing, mature build
systems like Make and Ninja to do the heavy lifting of building your software;
often, incremental builds don't need to execute bfg9000 at all!

#### Stay sane

Building your code shouldn't be the hard part of developing your project. Above
all else, bfg9000 strives to help you get your build right the *first* time with
many helpful [features][features].

## A brief example

You can't get much simpler than the simplest `build.bfg` file:

```python
executable('simple', files=['simple.cpp'])
```

To build this executable, we need to create the actual build files and then
run them:

```sh
$ cd /path/to/src/
$ 9k build/
$ cd build/
$ ninja
```

From there, you can run your newly-created executable: `./simple`. Hooray!

For further examples, please see the [`examples/`][examples] subdirectory.

## Installation

bfg9000 uses [setuptools][setuptools], so installation is much the same as any
other Python package:

```sh
$ pip install bfg9000
```

From there, you can start using bfg to build your software! (If you're using
Ubuntu, you can also install bfg9000 from the following PPA:
[ppa:jimporter/stable][ppa]). For more information about how to install bfg9000,
see the [documentation][getting-started].

## License

This project is licensed under the [BSD 3-clause license](LICENSE).

[pypi-image]: https://img.shields.io/pypi/v/bfg9000.svg
[pypi-link]: https://pypi.python.org/pypi/bfg9000
[documentation-image]: https://img.shields.io/badge/docs-bfg9000-blue.svg
[documentation-link]: https://jimporter.github.io/bfg9000/
[gh-actions-image]: https://github.com/jimporter/bfg9000/workflows/build/badge.svg
[gh-actions-link]: https://github.com/jimporter/bfg9000/actions?query=branch%3Amaster+workflow%3Abuild
[appveyor-image]: https://ci.appveyor.com/api/projects/status/hxvbggf6exq8i2k6/branch/master?svg=true
[appveyor-link]: https://ci.appveyor.com/project/jimporter/bfg9000/branch/master
[codecov-image]: https://codecov.io/gh/jimporter/bfg9000/branch/master/graph/badge.svg
[codecov-link]: https://codecov.io/gh/jimporter/bfg9000

[features]: https://jimporter.github.io/bfg9000/latest/user/features
[examples]: https://github.com/jimporter/bfg9000/tree/master/examples
[setuptools]: https://pythonhosted.org/setuptools/
[ppa]: https://launchpad.net/~jimporter/+archive/ubuntu/stable
[getting-started]: https://jimporter.github.io/bfg9000/latest/getting-started


