namreeb / namigator

An intelligent navigation API for World of Warcraft Alpha, Vanilla, TBC and WotLK
MIT License
49 stars 32 forks source link

Expose FindRandomPointAroundCircle to Python/C + Add Unload/IsLoaded to C/Py + add pyproject.toml setup #56

Closed gtker closed 1 year ago

gtker commented 1 year ago

Fixes #45. Fixes #41. Fixes #25.

Did a few of the smaller issues while I was at it anyway.

The wheels are built every time to make sure nothing breaks, but the publishing to PyPI only happens when the commit is tagged with something starting with v, like v0.1.0. Wheels are ready built binary packages for Python. For the publish step to work you'll need to set the pypi_password secret for the repo.

I'm not sure what the official Python stance is regarding module names, but IMO it would make sense if the two current modules, pathfind and mapbuild were combined into just namigator. This will probably even reduce the final binary size since we're not duplicating code in the shared libraries.

I think you can also now just run pip install . in the repo to build and install.

gtker commented 1 year ago

The failures on MacOS show that https://github.com/namreeb/namigator/issues/25 should not be blocked by x86 MacOS support, since until now namigator didn't compile on MacOS at all.

60m for a CI build is a little extreme though. If you want I could also try to see if it's possible to rearrange some things in order to get the compile time down, or skip compiling some things when building for python.

gtker commented 1 year ago

I'll take a look a little later.

Please replace 'NAMIGATOR_ONLY_BUILD_MINIMAL_PYTHON' with options to build python bindings and c bindings. The 'minimal python build' as I understand it would have those on and off, respectively.

NAMIGATOR_ONLY_BUILD_MINIMAL_PYTHON also disables building MapViewer for Windows, do you want a separate setting that defaults to true to toggle building that?

namreeb commented 1 year ago

NAMIGATOR_ONLY_BUILD_MINIMAL_PYTHON also disables building MapViewer for Windows, do you want a separate setting that defaults to true to toggle building that?

How about the following options: BUILD_VIEWER -- default to on for Windows, else off BUILD_PYTHON -- default to on BUILD_C -- default to on