71 строка
2.2 KiB
Python
Executable File
71 строка
2.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright 2020 The Emscripten Authors. All rights reserved.
|
|
# Emscripten is available under two separate licenses, the MIT license and the
|
|
# University of Illinois/NCSA Open Source License. Both these licenses can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Updates the arm_neon.h header taken from SIMDe
|
|
(https://github.com/simd-everywhere/simde) in system/include/neon
|
|
"""
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
from os import path
|
|
|
|
sys.path.insert(1, path.dirname(path.dirname(path.abspath(__file__))))
|
|
from tools.shared import get_emscripten_temp_dir
|
|
|
|
tmpdir = get_emscripten_temp_dir()
|
|
emdir = path.join(path.dirname(path.realpath(__file__)), "..")
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) == 2:
|
|
simde_dir = sys.argv[1]
|
|
elif len(sys.argv) == 1:
|
|
simde_dir = None
|
|
else:
|
|
print('''USAGE:
|
|
./simde_update.py [SIMDE_REPO_DIRECTORY]''')
|
|
|
|
if not simde_dir:
|
|
os.mkdir(path.join(tmpdir, "simde"))
|
|
os.system("git clone git@github.com:simd-everywhere/simde " + path.join(tmpdir, "simde"))
|
|
simde_dir = path.join(tmpdir, "simde")
|
|
|
|
else:
|
|
print("Using provided repository without updating [make sure it's up to date!]")
|
|
|
|
try:
|
|
neon_h_buf = subprocess.check_output([path.join(simde_dir, "amalgamate.py"), path.join(simde_dir, "simde", "arm", "neon.h")])
|
|
except subprocess.CalledProcessError as e:
|
|
print("amalgamate.py returned error: " + str(e))
|
|
return 1
|
|
|
|
try:
|
|
os.mkdir(path.join(emdir, "system", "include", "compat"))
|
|
except FileExistsError:
|
|
if not path.isdir(path.join(emdir, "system", "include", "compat")):
|
|
print("system/include/compat exists and is not a directory, exiting...")
|
|
return 1
|
|
|
|
with open(path.join(emdir, "system", "include", "compat", "arm_neon.h"), "wb+") as f:
|
|
try:
|
|
f.write(b"#define SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES\n")
|
|
f.write(b"#define SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES\n")
|
|
f.write(neon_h_buf)
|
|
f.write(b"#undef SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES\n")
|
|
f.write(b"#undef SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES\n")
|
|
print("'system/include/compat/arm_neon.h' updated")
|
|
except Exception:
|
|
print("error writing 'system/include/compat/arm_neon.h'")
|
|
return 1
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|