mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
![]() |
#!/usr/bin/python3
|
||
|
#
|
||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
#
|
||
|
|
||
|
import os
|
||
|
|
||
|
WORK_DIR = os.getcwd()
|
||
|
WAMR_DIR = os.path.join(WORK_DIR, "../../../")
|
||
|
IWASM_DIR = os.path.join(
|
||
|
WORK_DIR, "../../../product-mini/platforms/linux")
|
||
|
|
||
|
|
||
|
def compile_llvm():
|
||
|
print("============ compile llvm =============")
|
||
|
os.chdir(os.path.join(WAMR_DIR, "wamr-compiler"))
|
||
|
exit_status = os.system("./build_llvm.sh")
|
||
|
assert exit_status >> 8 == 0, "compile llvm failed, add -v for detail error output"
|
||
|
print("============ compile llvm successful =============")
|
||
|
|
||
|
|
||
|
def compile_wamrc(verbose: bool):
|
||
|
print("============ compile wamrc =============")
|
||
|
os.chdir(os.path.join(WAMR_DIR, "wamr-compiler"))
|
||
|
os.system("rm -rf build")
|
||
|
os.system("mkdir build")
|
||
|
exit_status = os.system(
|
||
|
f"cmake -DWAMR_BUILD_GC=1 -B build {'' if verbose else '> /dev/null 2>&1'}")
|
||
|
exit_status |= os.system(
|
||
|
f"cmake --build build -j {os.cpu_count()} {'' if verbose else '> /dev/null 2>&1'}"
|
||
|
)
|
||
|
|
||
|
assert exit_status >> 8 == 0, "compile wamrc failed, add -v for detail error output"
|
||
|
print("============ compile wamrc successful =============")
|
||
|
|
||
|
|
||
|
def compile_iwasm(verbose: bool):
|
||
|
print("============ compile iwasm =============")
|
||
|
os.chdir(IWASM_DIR)
|
||
|
os.system("rm -rf build")
|
||
|
os.system("mkdir build")
|
||
|
exit_status = os.system(
|
||
|
f"cmake -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_GC=1 -DWAMR_BUILD_SPEC_TEST=1 -B build {'' if verbose else '> /dev/null 2>&1'}"
|
||
|
)
|
||
|
exit_status |= os.system(
|
||
|
f"cmake --build build -j {os.cpu_count()} {'' if verbose else '> /dev/null 2>&1'}"
|
||
|
)
|
||
|
os.chdir(WORK_DIR)
|
||
|
|
||
|
assert exit_status >> 8 == 0, "compile iwasm failed, add -v for detail error output"
|
||
|
print("============ compile iwasm successful =============")
|
||
|
|
||
|
|
||
|
def compile_spec_interpreter():
|
||
|
print("============ compile spec interpreter =============")
|
||
|
|
||
|
os.chdir(WORK_DIR)
|
||
|
exit_status = os.system("./build_spec_interpreter.sh")
|
||
|
|
||
|
assert exit_status >> 8 == 0, "compile spec interpreter failed."
|
||
|
print("============ compile spec interpreter successful =============")
|
||
|
|
||
|
|
||
|
def build(verbose: bool) -> None:
|
||
|
compile_llvm()
|
||
|
compile_wamrc(verbose)
|
||
|
compile_iwasm(verbose)
|
||
|
compile_spec_interpreter()
|
||
|
return
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
build(True)
|