-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[numpy] add new port #37409
base: master
Are you sure you want to change the base?
[numpy] add new port #37409
Conversation
[python] add module build/install infra
Seems like the test needs to know about implicit link directories to setup LD_LIBRARY_PATH? |
Just exportring |
Nope. gfortran should be installed by the system on linux. |
How is this supposed to be discovered at runtime (after installation)? |
Was a missing -lgfortran in lapack. Don't know why numpy compiles with |
Do I understand this correctly that this is currently blocked by static builds not having a python executable linked to cython? |
Don't know if this is the problem. For me the problem is that I don't know how to create static python extensions which can be embedded into an application since that is what would be required for downstream users. (->https://www.kitware.com/static-python-and-numpy-with-paraview/)
Would be nice and is probably required if downstream tries to invoke python somehow with the modules for the build |
Or this is listed as not supported static builds until this is sorted |
# Conflicts: # ports/lapack-reference/portfile.cmake # ports/lapack-reference/vcpkg.json
@m-kuhn: Ideas how to solve the linux regression? |
Do I understand this correctly: Numpy is built dynamic while lapack-reference (which contains If yes, I guess numpy needs to link lapack-reference too which might well result in ODR violations as lapack-reference is present in two places. Or lapack-reference and its dependency tree need to be built dynamic as well which should work. |
@m-kuhn: No the problem is that the so does not know to load gfortran:
|
Ah wait that is just the same issue as before. I thought I already solved that one but the merge probably killed it. |
@autoantwort: |
And first line of #!/usr/bin/env python3 |
# Conflicts: # ports/lapack-reference/portfile.cmake # ports/lapack-reference/vcpkg.json
This PR can possibly fix this issue too: @Neumann-A Anything blocking you to make this ready? I might be able to help |
Figuring out cross-compiling with pyhton. Crossenv only works for linux and not for windows. |
# Conflicts: # ports/lapack-reference/vcpkg.json
# Conflicts: # ports/vcpkg-tool-meson/meson.template.in # ports/vcpkg-tool-meson/vcpkg.json # ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These comment were unsent for a while.
list(REVERSE implicit_c_libs) | ||
list(REMOVE_DUPLICATES implicit_c_libs) | ||
list(REVERSE implicit_c_libs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
list(REVERSE implicit_c_libs) | |
list(REMOVE_DUPLICATES implicit_c_libs) | |
list(REVERSE implicit_c_libs) |
Just items to be removed from another list.
list(REVERSE implicit_c_dirs) | ||
list(REMOVE_DUPLICATES implicit_c_dirs) | ||
list(REVERSE implicit_c_dirs) | ||
string(REGEX MATCH "CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES:([^\n]+)" implicit_fortran_dirs "${config_log}") | ||
set(implicit_fortran_dirs "${CMAKE_MATCH_1}") | ||
list(REVERSE implicit_fortran_dirs) | ||
list(REMOVE_DUPLICATES implicit_fortran_dirs) | ||
list(REVERSE implicit_fortran_dirs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For link dirs, reversal isn't really needed.
And for the c dirs, deduplication is redundant.
Good to also have for this: