mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
Help fix numpy detection in cross compiled layouts (#137084)
We had trouble at conda-forge getting numpy to get detected on aarch64 due to our splayed layout and cross compilation needs. see: * https://github.com/conda-forge/pytorch-cpu-feedstock/pull/256 * https://github.com/conda-forge/pytorch-cpu-feedstock/issues/266 * https://github.com/conda-forge/pytorch-cpu-feedstock/pull/267 This is my attempt at making an "upstreamable patch" that tries to follow your structure. It could introduce a new environment variable `Python_NumPy_INCLUDE_DIR` if you want, but CMake doesn't use it as an environment variable, so I feel like that would be weird. Pull Request resolved: https://github.com/pytorch/pytorch/pull/137084 Approved by: https://github.com/atalman
This commit is contained in:
parent
5cf77a0ea2
commit
9d32aa9789
|
|
@ -338,6 +338,7 @@ class CMake:
|
||||||
# future, as CMake can detect many of these libraries pretty comfortably. We have them here for now before CMake
|
# future, as CMake can detect many of these libraries pretty comfortably. We have them here for now before CMake
|
||||||
# integration is completed. They appear here not in the CMake.defines call below because they start with either
|
# integration is completed. They appear here not in the CMake.defines call below because they start with either
|
||||||
# "BUILD_" or "USE_" and must be overwritten here.
|
# "BUILD_" or "USE_" and must be overwritten here.
|
||||||
|
use_numpy = not check_negative_env_flag("USE_NUMPY")
|
||||||
build_options.update(
|
build_options.update(
|
||||||
{
|
{
|
||||||
# Note: Do not add new build options to this dict if it is directly read from environment variable -- you
|
# Note: Do not add new build options to this dict if it is directly read from environment variable -- you
|
||||||
|
|
@ -347,7 +348,7 @@ class CMake:
|
||||||
"BUILD_TEST": build_test,
|
"BUILD_TEST": build_test,
|
||||||
# Most library detection should go to CMake script, except this one, which Python can do a much better job
|
# Most library detection should go to CMake script, except this one, which Python can do a much better job
|
||||||
# due to NumPy's inherent Pythonic nature.
|
# due to NumPy's inherent Pythonic nature.
|
||||||
"USE_NUMPY": not check_negative_env_flag("USE_NUMPY"),
|
"USE_NUMPY": use_numpy,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -373,6 +374,20 @@ class CMake:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
build_options.update(cmake__options)
|
build_options.update(cmake__options)
|
||||||
|
|
||||||
|
if use_numpy:
|
||||||
|
try:
|
||||||
|
# This helps CMake find the correct include directory for NumPy
|
||||||
|
# This is especially useful in cross compiled environments
|
||||||
|
import numpy
|
||||||
|
|
||||||
|
Python_NumPy_INCLUDE_DIR = numpy.get_include()
|
||||||
|
build_options.update(
|
||||||
|
dict(Python_NumPy_INCLUDE_DIR=Python_NumPy_INCLUDE_DIR)
|
||||||
|
)
|
||||||
|
except ImportError:
|
||||||
|
# use_numpy is just a hint.... so we can fail silently here
|
||||||
|
pass
|
||||||
|
|
||||||
CMake.defines(
|
CMake.defines(
|
||||||
args,
|
args,
|
||||||
Python_EXECUTABLE=sys.executable,
|
Python_EXECUTABLE=sys.executable,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user