summaryrefslogtreecommitdiff
path: root/numpy/core/setup.py
diff options
context:
space:
mode:
authorRaghuveer Devulapalli <raghuveer.devulapalli@intel.com>2023-03-12 11:43:45 -0700
committerGitHub <noreply@github.com>2023-03-12 18:43:45 +0000
commit6e34d87c613557a428da13cce5fb8e8738086a78 (patch)
tree5f9ce04da46b8f8c5d0fe14d7432f7eca0c922f0 /numpy/core/setup.py
parent89d64415e349ca75a25250f22b874aa16e5c0973 (diff)
downloadnumpy-6e34d87c613557a428da13cce5fb8e8738086a78.tar.gz
BLD: Check for submodules before build (#23372)
- DOC: update git clone command in doc to initialize submodules - BLD: Check for submodules before building - CI: update meson.build check and Cirrus for new git submodule [skip ci] Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>
Diffstat (limited to 'numpy/core/setup.py')
-rw-r--r--numpy/core/setup.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/numpy/core/setup.py b/numpy/core/setup.py
index 77e1ebf99..52b17bfc8 100644
--- a/numpy/core/setup.py
+++ b/numpy/core/setup.py
@@ -79,11 +79,13 @@ def can_link_svml():
and "linux" in platform
and sys.maxsize > 2**31)
-def check_svml_submodule(svmlpath):
- if not os.path.exists(svmlpath + "/README.md"):
- raise RuntimeError("Missing `SVML` submodule! Run `git submodule "
- "update --init` to fix this.")
- return True
+def check_git_submodules():
+ out = os.popen("git submodule status")
+ modules = out.readlines()
+ for submodule in modules:
+ if (submodule.strip()[0] == "-"):
+ raise RuntimeError("git submodules are not initialized."
+ "Please run `git submodule update --init` to fix this.")
def pythonlib_dir():
"""return path where libpython* is."""
@@ -414,6 +416,8 @@ def configuration(parent_package='',top_path=None):
# actual C API VERSION. Will raise a MismatchCAPIError if so.
check_api_version(C_API_VERSION, codegen_dir)
+ check_git_submodules()
+
generate_umath_py = join(codegen_dir, 'generate_umath.py')
n = dot_join(config.name, 'generate_umath')
generate_umath = exec_mod_from_location('_'.join(n.split('.')),
@@ -1036,7 +1040,7 @@ def configuration(parent_package='',top_path=None):
# after all maintainable code.
svml_filter = (
)
- if can_link_svml() and check_svml_submodule(svml_path):
+ if can_link_svml():
svml_objs = glob.glob(svml_path + '/**/*.s', recursive=True)
svml_objs = [o for o in svml_objs if not o.endswith(svml_filter)]