Skip to main content

Broodwar API binding

Project description

Pybrood
=======

|docs|

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.

#. Make some changes in bwapi source files first:

- | little fix in ``bwapi/include/BWAPI/SetContainer.h:53``:
| at very end of class add

``SetContainer& operator=(const SetContainer&) = default;``

to get rid of "attempting to reference a deleted function" error.

- disable mass file copying in ``bwapi/BWAPILIB/BWAPILIB.vcxproj``:

- line 64: ``<PreLinkEvent>`` → ``<!-- PreLinkEvent>``

- line 94: ``</PreLinkEvent>`` → ``</PreLinkEvent -->``

- create file ``bwapi/svnrev.h``:

``static const int SVN_REV = 4708; #include "starcraftver.h"``

This prevents "Client and Server are not compatible" error.

#. Build BWAPI.lib:

``cd bwapi\BWAPILIB\ msbuild /p:PlatformToolset=v140 /p:Configuration=Release /p:Platform=Win32``

Output file is ``bwapi/lib/BWAPI.lib``.

#. 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
~~~~~~~~~~~~~~~~

#. ``pip install -r generator/requirements.txt``
#. Setup paths in `generator/config.py <generator/config.py>`__.
#. Run the generator ``python3.5 -m generator``.
#. ``cd`` to freshly generated ``output`` folder and run ``build.bat``
(it's just the same msbuild command).
#. Copy/symlink ``output/Release/inner.pyd`` into ``pybrood`` directory.
``inner.pyd`` is a required submodule of ``pybrood``.
#. Now you should be able to ``import pybrood``.
#. Optionally you can build your local copy of documentation:
``cd output/docs/ sphinx-build . -b html _build/html``

.. |docs| image:: https://readthedocs.org/projects/pybrood/badge/?version=latest
:target: http://pybrood.readthedocs.io/en/latest/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Built Distributions

pybrood-0.9.2-cp36-none-win32.whl (393.6 kB view hashes)

Uploaded cp36

pybrood-0.9.2-cp35-none-win32.whl (393.6 kB view hashes)

Uploaded cp35

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page