https://github.com/neumond/pybrood
Another BWAPI Python binding made with pybind11
https://github.com/neumond/pybrood
binding broodwar bwapi python
Last synced: 5 months ago
JSON representation
Another BWAPI Python binding made with pybind11
- Host: GitHub
- URL: https://github.com/neumond/pybrood
- Owner: neumond
- License: mit
- Created: 2016-09-24T15:38:28.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-06-16T00:16:42.000Z (about 8 years ago)
- Last Synced: 2025-09-15T02:55:42.794Z (9 months ago)
- Topics: binding, broodwar, bwapi, python
- Language: Python
- Size: 156 KB
- Stars: 15
- Watchers: 3
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Pybrood
[](http://pybrood.readthedocs.io/en/latest/)
Binding made as from-scratch code generator, outputting msvc project.
## Precompiled installation
Requirements:
- Windows 7 32 bit (just exactly SSCAIT requirement)
NOTE: I couldn't successfully run BWAPI injector under Wine, although recently I've been told
[it's possible](https://github.com/TorchCraft/TorchCraft/blob/master/docs/user/bwapi_on_linux.md).
- [Python 3.5](https://www.python.org/ftp/python/3.5.2/python-3.5.2.exe)
- Installed BWAPI and SC
```
pip install pybrood
```
## Documentation
[Read the docs](http://pybrood.readthedocs.io/en/latest/)
## Compiling from source
Additional requirements:
- [Visual C++ build tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) or complete Visual Studio.
NOTE: pick the version of compiler/studio considering [build tools used by python](https://wiki.python.org/moin/WindowsCompilers)
- [BWAPI 4.1.2 sources](https://github.com/bwapi/bwapi/releases/tag/v4.1.2)
you need `BWAPI.lib` and `BWAPIClient.lib` built against chosen compiler to link pybrood module
- Most fresh (dec 2016) [Pybind11 headers](https://github.com/pybind/pybind11)
#### Building BWAPI.lib and BWAPIClient.lib
You may experience "access denied" errors while working directly in "program files/BWAPI".
Better use separately cloned git repo of BWAPI where you have full access.
For `msbuild` invocation use special VC++ related cmd shell from Launch menu.
Otherwise you can use usual cmd shell.
1. Make some changes in bwapi source files first:
- disable mass file copying in `bwapi/BWAPILIB/BWAPILIB.vcxproj`:
- line 64: `` → ``
- create file `bwapi/svnrev.h`:
Figure out revision number:
```bash
cd bwapi
echo $(( $(git rev-list HEAD --count) + 2383 ))
```
```cpp
static const int SVN_REV = 4708;
#include "starcraftver.h"
```
This prevents "Client and Server are not compatible" error.
2. Build BWAPI.lib:
```
cd bwapi\BWAPILIB\
msbuild /p:PlatformToolset=v140 /p:Configuration=Release /p:Platform=Win32
```
Output file is `bwapi/lib/BWAPI.lib`.
3. Build BWAPIClient.lib:
```
cd bwapi\BWAPIClient\
msbuild /p:PlatformToolset=v140 /p:Configuration=Release /p:Platform=Win32
```
Output file is `bwapi/lib/BWAPIClient.lib`.
#### Building Pybrood
0. `pip install -r generator/requirements.txt`
1. Setup paths in [generator/config.py](generator/config.py).
2. Run the generator `python3.5 -m generator`.
3. `cd` to freshly generated `output` folder and run `build.bat` (it's just the same msbuild command).
4. Copy/symlink `output/Release/inner.pyd` into `pybrood` directory.
`inner.pyd` is a required submodule of `pybrood`.
5. Now you should be able to `import pybrood`.
6. Optionally you can build your local copy of documentation:
```
cd output/docs/
sphinx-build . -b html _build/html
```