FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/config/numpy.py at develop · NirmalVatsyayan/python · GitHub
NirmalVatsyayan
/
python
Public
forked from
boostorg/python
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python
/
config
/
numpy.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
86 lines (73 loc) · 2.02 KB
Breadcrumbs
python
/
config
/
numpy.py
Copy path
File metadata and controls
86 lines (73 loc) · 2.02 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#
# Copyright (c) 2016 Stefan Seefeld
# All rights reserved.
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
from
.
import
ui
from
contextlib
import
contextmanager
@
contextmanager
def
saved
(
context
):
save_cpppath
=
context
.
env
.
get
(
'CPPPATH'
, [])
save_libs
=
context
.
env
.
get
(
'LIBS'
, [])
yield
context
context
.
env
.
Replace
(
LIBS
=
save_libs
)
context
.
env
.
Replace
(
CPPPATH
=
save_cpppath
)
def
add_options
(
vars
):
pass
def
check
(
context
):
numpy_source_file
=
r"""
// If defined, enforces linking againg PythonXXd.lib, which
// is usually not included in Python environments.
#undef _DEBUG
#include "Python.h"
#include "numpy/arrayobject.h"
#if PY_VERSION_HEX >= 0x03000000
void *initialize() { import_array();}
#else
void initialize() { import_array();}
#endif
int main()
{
int result = 0;
Py_Initialize();
initialize();
if (PyErr_Occurred())
{
result = 1;
}
else
{
npy_intp dims = 2;
PyObject * a = PyArray_SimpleNew(1, &dims, NPY_INT);
if (!a) result = 1;
Py_DECREF(a);
}
Py_Finalize();
return result;
}
"""
import
platform
import
subprocess
import
re
,
os
def
check_python
(
cmd
):
try
:
return
True
,
subprocess
.
check_output
([
python
,
'-c'
,
cmd
]).
strip
()
except
subprocess
.
CalledProcessError
as
e
:
return
False
,
e
context
.
Message
(
'Checking for NumPy...'
)
with
saved
(
context
):
python
=
context
.
env
[
'PYTHON'
]
result
,
numpy_incpath
=
check_python
(
'import numpy; print(numpy.get_include())'
)
if
result
:
context
.
env
.
AppendUnique
(
CPPPATH
=
numpy_incpath
)
context
.
env
.
AppendUnique
(
LIBS
=
context
.
env
[
'PYTHONLIBS'
])
result
,
output
=
context
.
TryRun
(
numpy_source_file
,
'.cpp'
)
if
not
result
:
context
.
Result
(
0
)
return
False
context
.
env
[
'NUMPY'
]
=
True
context
.
env
[
'NUMPY_CPPPATH'
]
=
numpy_incpath
context
.
Result
(
1
)
return
True
Back
|
FazBrowse Home
|
New Git URL