Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows support through vcpkg #35

Merged
merged 8 commits into from
Aug 14, 2020
Merged

Windows support through vcpkg #35

merged 8 commits into from
Aug 14, 2020

Conversation

ethanhs
Copy link
Contributor

@ethanhs ethanhs commented May 19, 2020

I can set up CI for this a bit later, but I wanted to hear your thoughts on this as a solution to Windows support.

Copy link
Member

@termoshtt termoshtt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion 👍

vcpkg looks to be better choice than the ways in the wiki page of OpenBLAS. This is a good start point to support Windows, though we have still a problem, to manage CBLAS and LAPACKE flags, and architecture problem discussed in OpenMathLib/OpenBLAS#2256. These problems should be other issues, and I think it is better to merge this PR as it is with some minor fix and CI setup.

README.md Outdated Show resolved Hide resolved
build.rs Outdated Show resolved Hide resolved
build.rs Outdated Show resolved Hide resolved
ethanhs and others added 4 commits August 10, 2020 12:27
Thanks @termoshtt

Co-authored-by: Toshiki Teramura <toshiki.teramura@gmail.com>
Co-authored-by: Toshiki Teramura <toshiki.teramura@gmail.com>
@ethanhs
Copy link
Contributor Author

ethanhs commented Aug 10, 2020

Okay I believe I have resolved all of the things @termoshtt requested. I still need to make CI work. Is MSYS a supported platform? I'm not sure how to detect this. Perhaps target_os = windows but target_family=unix? I'll have to look into it. Perhaps do detection based on the compiler triple if I can do that?

@termoshtt
Copy link
Member

I'm not sure how to detect this. Perhaps target_os = windows but target_family=unix?

Good catch 💯
There are two types of windows ABI: *-windows-msvc and *-windows-gnu. https://forge.rust-lang.org/release/platform-support.html MSYS2 (mingw-w64) is referred as x86_64-pc-windows-gnu in Rust , and thus you can detect them by target_env.

Is MSYS a supported platform?

Although the CI of master currently fails (#38), it should be supported. So the build way matrix is here:

SYSTEM flag windows-msvc windows-gnu, UNIX systems
TRUE vcpkg Seek system shared libs and link it
FALSE not supported yet Build OpenBLAS by gcc-toolchain and link it

This table suggests us that we should switch by msvc and others. Could you fix them?

If you are not familiar with AppVeyor, feel free to let me know. I will fix them with #38

@ethanhs
Copy link
Contributor Author

ethanhs commented Aug 14, 2020

@termoshtt feel free to fix CI, I'm not familiar enough with Appveyor CI to set up vcpkg and it seems the msys builds are broken too.

@IvanUkhov
Copy link
Member

Appveyor is a project in itself. I don’t think it ever worked for this repository. There is also an issue for this; see #38.

@termoshtt termoshtt merged commit d1cdd8c into blas-lapack-rs:master Aug 14, 2020
@termoshtt
Copy link
Member

Thanks a lot!

@ethanhs
Copy link
Contributor Author

ethanhs commented Aug 14, 2020

Absolutely, I'll rebase #37 on this and add the feature next :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants