forked from bytecodealliance/wasm-micro-runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement more wasm-c-apis and enable Envoy integration (bytecodealli…
…ance#622) Implement more wasm-c-api APIs to support Envoy integration: - sync up with latest c-api definition - change CMakeLists to export necessary headers and install the static library of iwasm - enable to export tables and memories - support memorytype and tabletype APIs - update wasm-c-api sampels - enable to export importtype APIs And refine bazel scripts for sample XNNPACK workload, add license headers for sample simple. Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
- Loading branch information
Showing
36 changed files
with
3,287 additions
and
2,036 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
# Copyright (C) 2019 Intel Corporation. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
||
cmake_minimum_required (VERSION 2.8) | ||
|
||
project (iwasm) | ||
# set (CMAKE_VERBOSE_MAKEFILE 1) | ||
|
||
set (WAMR_BUILD_PLATFORM "linux") | ||
|
||
# Reset default linker flags | ||
set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") | ||
set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") | ||
|
||
set (CMAKE_C_STANDARD 99) | ||
|
||
# Set WAMR_BUILD_TARGET, currently values supported: | ||
# "X86_64", "AMD_64", "X86_32", "AARCH64[sub]", "ARM[sub]", "THUMB[sub]", | ||
# "MIPS", "XTENSA", "RISCV64[sub]", "RISCV32[sub]" | ||
if (NOT DEFINED WAMR_BUILD_TARGET) | ||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") | ||
set (WAMR_BUILD_TARGET "AARCH64") | ||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64") | ||
set (WAMR_BUILD_TARGET "RISCV64") | ||
elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) | ||
# Build as X86_64 by default in 64-bit platform | ||
set (WAMR_BUILD_TARGET "X86_64") | ||
else () | ||
# Build as X86_32 by default in 32-bit platform | ||
set (WAMR_BUILD_TARGET "X86_32") | ||
endif () | ||
endif () | ||
|
||
if (NOT CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE Release) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_INTERP) | ||
# Enable Interpreter by default | ||
set (WAMR_BUILD_INTERP 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_AOT) | ||
# Enable AOT by default. | ||
set (WAMR_BUILD_AOT 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_JIT) | ||
# Disable JIT by default. | ||
set (WAMR_BUILD_JIT 0) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_LIBC_BUILTIN) | ||
# Enable libc builtin support by default | ||
set (WAMR_BUILD_LIBC_BUILTIN 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_LIBC_WASI) | ||
# Enable libc wasi support by default | ||
set (WAMR_BUILD_LIBC_WASI 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_FAST_INTERP) | ||
# Enable fast interpreter | ||
set (WAMR_BUILD_FAST_INTERP 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_MULTI_MODULE) | ||
# Enable multiple modules | ||
set (WAMR_BUILD_MULTI_MODULE 0) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_LIB_PTHREAD) | ||
# Disable pthread library by default | ||
set (WAMR_BUILD_LIB_PTHREAD 0) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_MINI_LOADER) | ||
# Disable wasm mini loader by default | ||
set (WAMR_BUILD_MINI_LOADER 0) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_SIMD) | ||
# Enable SIMD by default | ||
set (WAMR_BUILD_SIMD 1) | ||
endif () | ||
|
||
if (NOT DEFINED WAMR_BUILD_REF_TYPES) | ||
# Disable reference types by default | ||
set (WAMR_BUILD_REF_TYPES 0) | ||
endif () | ||
|
||
if (COLLECT_CODE_COVERAGE EQUAL 1) | ||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") | ||
endif () | ||
|
||
set (WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
include (${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake) | ||
add_library(vmlib ${WAMR_RUNTIME_LIB_SOURCE}) | ||
|
||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections -pie -fPIE") | ||
|
||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat -Wformat-security") | ||
# set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion -Wsign-conversion") | ||
|
||
if (WAMR_BUILD_TARGET MATCHES "X86_.*" OR WAMR_BUILD_TARGET STREQUAL "AMD_64") | ||
if (NOT (CMAKE_C_COMPILER MATCHES ".*clang.*" OR CMAKE_C_COMPILER_ID MATCHES ".*Clang")) | ||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mindirect-branch-register") | ||
endif () | ||
endif () | ||
|
||
# The following flags are to enhance security, but it may impact performance, | ||
# we disable them by default. | ||
#if (WAMR_BUILD_TARGET MATCHES "X86_.*" OR WAMR_BUILD_TARGET STREQUAL "AMD_64") | ||
# set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftrapv -D_FORTIFY_SOURCE=2") | ||
#endif () | ||
#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-strong --param ssp-buffer-size=4") | ||
#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-z,noexecstack,-z,relro,-z,now") | ||
|
||
include (${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake) | ||
|
||
# STATIC LIBRARY | ||
add_library(iwasm_static STATIC ${WAMR_RUNTIME_LIB_SOURCE}) | ||
set_target_properties (iwasm_static PROPERTIES OUTPUT_NAME vmlib) | ||
|
||
install (TARGETS iwasm_static ARCHIVE DESTINATION lib) | ||
|
||
# SHARED LIBRARY | ||
add_library (iwasm_shared SHARED ${WAMR_RUNTIME_LIB_SOURCE}) | ||
set_target_properties (iwasm_shared PROPERTIES OUTPUT_NAME iwasm) | ||
target_link_libraries (iwasm_shared ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl -lpthread) | ||
|
||
install (TARGETS iwasm_shared LIBRARY DESTINATION lib) | ||
|
||
# HEADERS | ||
install (FILES | ||
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_c_api.h | ||
${WAMR_ROOT_DIR}/core/iwasm/include/wasm_export.h | ||
DESTINATION include) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.