GERSL / pycold

Apache License 2.0
18 stars 6 forks source link

Window platform implementation #26

Open SuYe99 opened 1 year ago

SuYe99 commented 1 year ago

I began to seriously consider implementing pycold for the Windows platform, as it is the need from several other users and also for a geospatial course I am currently developing.

I copied the paragraph where Jon reported his last try for Windows platform.

"I did attempt to get windows, osx, but I wasn't able to figure out how to ge tthe dependency on GSL to be satisfied. I also did try to get 32bit systems to work (i686), but for some reason they can't find OpenMP (even though I'm pretty sure I installed the right GOMP on the images). These issues can be sorted out later though. CPython wheels 3.8, 3.9, and 3.10 for linux are now being built, so anyone on linux with those python versions will be able to pip install pycold. (FWIW people on other systems will be able to run the command and download the source, but it will only work if they have all the other dependencies setup). "

SuYe99 commented 1 year ago

Hi @Erotemic could we remove the dependency of OpenMP for pycold? I don't remember where I used openmp. If I did, it should be fixed by removing OpenMP as I didn't see any need of using shared-memory parallelization for this package.

Erotemic commented 1 year ago

I'm not familiar enough with the C code to know if / when it is used. You could likely use an ifdef and a CMake flag to disable it on windows if it's only used for a small portion, or even just remove it entirely if it is never used.

Alternatively, I think mingw does provide libgomp so you could build against that on windows.

SuYe99 commented 1 year ago

Hi Jon @Erotemic , I finally finished my job transfer back to China, and began to work on pycold. I tried to 'bash run_developer_setup.sh' in a bash terminal of Windows, and got the error like the below. Do you have an idea on what is going on for here? image

Erotemic commented 1 year ago

The issue on windows is that you need to ensure all dependencies are installed and cmake can find them.

Maybe try pip install ninja? (although pyproject.toml should have taken care of that, but maybe it isn't being respected?)

The main line that run_developer_setup.sh is executing is:

pip install --no-build-isolation --verbose -e . 

Running that might give a better idea of the issue.

For even finer grained information, you can also use a standard cmake-style build to debug C++ issues:

mkdir build
cd build
# Do the configure stuff interactively
cmake-gui ..
# Do whatever build backend you chose
fotakide commented 4 weeks ago

Hello, is there any update on the Windows package implementation?