Comments (7)
The reason why I had them together was because they are essentially related projects. In any case, I can do what you are suggesting without a problem.
from vcpkg.
Because vcpkg is lacking a blas/lapack port, this makes many libraries in scientific computing hard to port to vcpkg.
I am thinking that why not directly use a prebuild binary from openblas sourceforge repo? Because openblas is C, fortran and asm, all of them are ABI safe for different MSVC versions. This is much simpler.
from vcpkg.
I looked into this recently, but I do not plan to work on it anymore in the near future, so I provide by findings if anyone wants to continue working on this.
First of all, the lapack and blas reference implementation are distributed as a unique source archive [1], so I think it make sense to distribute them as a single vcpkg port. The usage of alternative OpenBLAS implementation is typically handled at loading time by tools such as update-alternatives
[2] that are currently missing in vcpkg (marginally related issue: #164).
As an initial step, I would concentrate only on packaging the blas/lapack port, that I will simply call lapack
.
The initial port prototype is available at :
https://github.com/traversaro/vcpkg/tree/add-lapack
It uses the gfortran (provided by mingw-w64
binaries [3]) compiler and the CMAKE_GNUtoMS
[4] CMake option to convert the resulting shared libraries in a format compatible with MSVC. The problem is that the resulting dll are dynamically linked against the old msvcrt.dll
instead of the proper modern crt.
I quickly checked this issue, and it seems to have been thoroughly investigated by the python community:
- https://mingwpy.github.io/issues.html#choice-of-msvc-runtime
- winpython/winpython#67 (comment)
- mingwpy/mingwpy#25 (comment)
In particular, I think that the issue can now be partially solved, and the problems still remaining such as file descriptors should not affect a numeric library such as blas/lapack :
Another possible option is to link statically the CRT even on triplet that normally link it dynamically, but at the moment I can't fully evaluate the consequences of such a choice.
[1] : https://github.com/Reference-LAPACK/lapack
[2] : https://wiki.debian.org/DebianScience/LinearAlgebraLibraries
[3] : https://mingw-w64.org/
[4] : https://blog.kitware.com/fortran-for-cc-developers-made-easier-with-cmake/
from vcpkg.
BLAS/LAPACK and OpenBLAS are separated projects. To avoid further confusion as in #294 (comment) , I suggest to rename this issue to cover just BLAS/LAPACK and eventually open a new one covering just OpenBLAS.
from vcpkg.
Thanks @sarthakcbica !
from vcpkg.
This feature can be closed now?
from vcpkg.
@KindDragon - yes! thanks to @saedrna for his work.
from vcpkg.
Related Issues (20)
- libpq build failure HOT 1
- [sfml] Build error on arm64-android HOT 1
- [sfml] Build error on arm64-android HOT 3
- [daw-header-libraries] update to v2.106.0
- [daw-json-link] update to v3.24.0
- [libpq] Build error on x64-mingw-static HOT 2
- [New Port Request] MIT Kerberos/krb5 HOT 1
- [libxkbcommon] build failure on windows and macosx HOT 1
- vcpkg upgrade error HOT 2
- [avcpp] Can't use avcpp with CMake on x64-windows because CMake can't find Threads::Threads HOT 2
- [pcl][eigen]error:function '_mm_blendv_pd' requires target feature 'sse4.1' HOT 3
- [log4cpp-log4cpp] build failure on Windows HOT 3
- [gl3w] Support extension loading. HOT 2
- [libcap] Failed to download from https://git.kernel.org/pub/scm/libs/libcap HOT 3
- [shader-slang] Build failure on arm64-osx HOT 6
- [pcre2] jit causes crashes on macOS HOT 3
- [bext-sml] update to 1.1.11
- [pcl] Build error on x64-windows HOT 3
- [boost-container] Build error on x86-windows HOT 2
- [libpq] Build error on x64-mingw-dynamic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vcpkg.