Binding made as from-scratch code generator, outputting msvc project.
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.
- Python 3.5
- Installed BWAPI and SC
pip install pybrood
Additional requirements:
- Visual C++ build tools or complete Visual Studio. NOTE: pick the version of compiler/studio considering build tools used by python
- BWAPI 4.1.2 sources
you need
BWAPI.lib
andBWAPIClient.lib
built against chosen compiler to link pybrood module - Most fresh (dec 2016) Pybind11 headers
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:
-
disable mass file copying in
bwapi/BWAPILIB/BWAPILIB.vcxproj
:- line 64:
<PreLinkEvent>
→<!-- PreLinkEvent>
- line 94:
</PreLinkEvent>
→</PreLinkEvent -->
- line 64:
-
create file
bwapi/svnrev.h
:Figure out revision number:
cd bwapi echo $(( $(git rev-list HEAD --count) + 2383 ))
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
.
pip install -r generator/requirements.txt
- Setup paths in generator/config.py.
- Run the generator
python3.5 -m generator
. cd
to freshly generatedoutput
folder and runbuild.bat
(it's just the same msbuild command).- Copy/symlink
output/Release/inner.pyd
intopybrood
directory.inner.pyd
is a required submodule ofpybrood
. - 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