FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/android_configure.py at fix/issue-62874 · JonathanLopes404/node · GitHub
JonathanLopes404
/
node
Public
forked from
nodejs/node
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
android_configure.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
77 lines (63 loc) · 2.83 KB
Breadcrumbs
node
/
android_configure.py
Copy path
File metadata and controls
77 lines (63 loc) · 2.83 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
import
platform
import
sys
import
os
# TODO: In next version, it will be a JSON file listing all the patches, and then it will iterate through to apply them.
def
patch_android
():
print
(
"- Patches List -"
)
print
(
"[1] [deps/v8/src/trap-handler/trap-handler.h] related to https://github.com/nodejs/node/issues/36287"
)
if
platform
.
system
()
==
"Linux"
:
os
.
system
(
'patch -f ./deps/v8/src/trap-handler/trap-handler.h < ./android-patches/trap-handler.h.patch'
)
print
(
"
\033
[92mInfo:
\033
[0m"
+
"Tried to patch."
)
if
platform
.
system
()
!=
"Linux"
and
platform
.
system
()
!=
"Darwin"
:
print
(
"android-configure is currently only supported on Linux and Darwin."
)
sys
.
exit
(
1
)
if
len
(
sys
.
argv
)
==
2
and
sys
.
argv
[
1
]
==
"patch"
:
patch_android
()
sys
.
exit
(
0
)
if
len
(
sys
.
argv
)
!=
4
:
print
(
"Usage: ./android-configure [patch] <path to the Android NDK> <Android SDK version> <target architecture>"
)
sys
.
exit
(
1
)
if
not
os
.
path
.
exists
(
sys
.
argv
[
1
])
or
not
os
.
listdir
(
sys
.
argv
[
1
]):
print
(
"
\033
[91mError:
\033
[0m"
+
"Invalid path to the Android NDK"
)
sys
.
exit
(
1
)
if
int
(
sys
.
argv
[
2
])
<
24
:
print
(
"
\033
[91mError:
\033
[0m"
+
"Android SDK version must be at least 24 (Android 7.0)"
)
sys
.
exit
(
1
)
android_ndk_path
=
sys
.
argv
[
1
]
android_sdk_version
=
sys
.
argv
[
2
]
arch
=
sys
.
argv
[
3
]
if
arch
==
"arm"
:
DEST_CPU
=
"arm"
TOOLCHAIN_PREFIX
=
"armv7a-linux-androideabi"
elif
arch
in
(
"aarch64"
,
"arm64"
):
DEST_CPU
=
"arm64"
TOOLCHAIN_PREFIX
=
"aarch64-linux-android"
arch
=
"arm64"
elif
arch
==
"x86"
:
DEST_CPU
=
"ia32"
TOOLCHAIN_PREFIX
=
"i686-linux-android"
elif
arch
==
"x86_64"
:
DEST_CPU
=
"x64"
TOOLCHAIN_PREFIX
=
"x86_64-linux-android"
arch
=
"x64"
else
:
print
(
"
\033
[91mError:
\033
[0m"
+
"Invalid target architecture, must be one of: arm, arm64, aarch64, x86, x86_64"
)
sys
.
exit
(
1
)
print
(
"
\033
[92mInfo:
\033
[0m"
+
"Configuring for "
+
DEST_CPU
+
"..."
)
if
platform
.
system
()
==
"Darwin"
:
host_os
=
"darwin"
toolchain_path
=
android_ndk_path
+
"/toolchains/llvm/prebuilt/darwin-x86_64"
elif
platform
.
system
()
==
"Linux"
:
host_os
=
"linux"
toolchain_path
=
android_ndk_path
+
"/toolchains/llvm/prebuilt/linux-x86_64"
os
.
environ
[
'PATH'
]
+=
os
.
pathsep
+
toolchain_path
+
"/bin"
os
.
environ
[
'CC'
]
=
toolchain_path
+
"/bin/"
+
TOOLCHAIN_PREFIX
+
android_sdk_version
+
"-"
+
"clang"
os
.
environ
[
'CXX'
]
=
toolchain_path
+
"/bin/"
+
TOOLCHAIN_PREFIX
+
android_sdk_version
+
"-"
+
"clang++"
GYP_DEFINES
=
"target_arch="
+
arch
GYP_DEFINES
+=
" v8_target_arch="
+
arch
GYP_DEFINES
+=
" android_target_arch="
+
arch
GYP_DEFINES
+=
" host_os="
+
host_os
+
" OS=android"
GYP_DEFINES
+=
" android_ndk_path="
+
android_ndk_path
os
.
environ
[
'GYP_DEFINES'
]
=
GYP_DEFINES
if
os
.
path
.
exists
(
"./configure"
):
os
.
system
(
"./configure --dest-cpu="
+
DEST_CPU
+
" --dest-os=android --openssl-no-asm --cross-compiling"
)
Back
|
FazBrowse Home
|
New Git URL