geospatialncl / OpenUDM

Open repository for the Urban Development Model
GNU General Public License v3.0
6 stars 7 forks source link

Build project using setuptools #5

Closed tomalrussell closed 4 years ago

tomalrussell commented 4 years ago

This moves a lot of things around in the project - and builds on top of #4 - to give a couple of things:

A couple of questions:

tomalrussell commented 4 years ago

suggestion to streamline this process sounds good as long as we can modify the C++ source and rebuild

Yes, in the set-up proposed by this pull request, the C++ source can be compiled and wrapped by running python setup.py build_ext which gives (truncated) output something like:

$ python setup.py build_ext
running build_ext
building 'openudm._CellularModel' extension
swigging openudm/CellularModel.i to openudm/CellularModel_wrap.cpp
...
Generating code
Finished generating code
copying build\lib.win-amd64-3.7\openudm\_CellularModel.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_DevZones.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_MultiCriteriaEval.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_RasterToolkit.cp37-win_amd64.pyd -> openudm

Running python setup.py develop sets up the openudm python package in the current environment, and includes the build_ext step as part of its process:

$ python setup.py develop
running develop
running egg_info
writing openudm.egg-info\PKG-INFO
writing dependency_links to openudm.egg-info\dependency_links.txt
writing top-level names to openudm.egg-info\top_level.txt
reading manifest file 'openudm.egg-info\SOURCES.txt'
writing manifest file 'openudm.egg-info\SOURCES.txt'
running build_ext
copying build\lib.win-amd64-3.7\openudm\_CellularModel.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_DevZones.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_MultiCriteriaEval.cp37-win_amd64.pyd -> openudm
copying build\lib.win-amd64-3.7\openudm\_RasterToolkit.cp37-win_amd64.pyd -> openudm
Creating c:\users\username\appdata\local\continuum\miniconda3\lib\site-packages\openudm.egg-l
ink (link to .)
openudm 1.0.0 is already the active version in easy-install.pth

Installed c:\users\username\projects\openudm
Processing dependencies for openudm==1.0.0
Finished processing dependencies for openudm==1.0.0