mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
sdk build tools and app framework updates (#171)
This commit is contained in:
parent
a4ac16a1c8
commit
82b0bb44c3
|
@ -114,7 +114,7 @@ Menu configuration is supported for easy integration of runtime components and a
|
||||||
|
|
||||||
```
|
```
|
||||||
cd wamr-sdk
|
cd wamr-sdk
|
||||||
./menuconfig.sh
|
./build_sdk.sh -i -n [profile name]
|
||||||
```
|
```
|
||||||
|
|
||||||
<img src="./doc/pics/wamr_menu_config.png" alt="wamr build menu configuration" style="zoom:80%;" />
|
<img src="./doc/pics/wamr_menu_config.png" alt="wamr build menu configuration" style="zoom:80%;" />
|
||||||
|
@ -141,7 +141,7 @@ simple/
|
||||||
└── lib
|
└── lib
|
||||||
```
|
```
|
||||||
|
|
||||||
The tool **build_sdk.sh** can be also directly executed by passing the configuration arguments, which is how each WAMR sample project builds the WAMR SDK for its own building profile.
|
|
||||||
|
|
||||||
### Use Runtime SDK
|
### Use Runtime SDK
|
||||||
|
|
||||||
|
|
|
@ -34,100 +34,6 @@
|
||||||
|
|
||||||
/*char *wa_strdup(const char *);*/
|
/*char *wa_strdup(const char *);*/
|
||||||
|
|
||||||
/*
|
|
||||||
* request/response interfaces
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_response_send(wasm_exec_env_t exec_env,
|
|
||||||
int32 buffer_offset, int size);
|
|
||||||
void
|
|
||||||
wasm_register_resource(wasm_exec_env_t exec_env,
|
|
||||||
int32 url_offset);
|
|
||||||
void
|
|
||||||
wasm_post_request(wasm_exec_env_t exec_env,
|
|
||||||
int32 buffer_offset, int size);
|
|
||||||
void
|
|
||||||
wasm_sub_event(wasm_exec_env_t exec_env,
|
|
||||||
int32 url_offset);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sensor interfaces
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_config(wasm_exec_env_t exec_env,
|
|
||||||
uint32 sensor, int interval, int bit_cfg, int delay);
|
|
||||||
uint32
|
|
||||||
wasm_sensor_open(wasm_exec_env_t exec_env,
|
|
||||||
int32 name_offset, int instance);
|
|
||||||
bool
|
|
||||||
wasm_sensor_config_with_attr_container(wasm_exec_env_t exec_env,
|
|
||||||
uint32 sensor,
|
|
||||||
int32 buffer_offset, int len);
|
|
||||||
bool
|
|
||||||
wasm_sensor_close(wasm_exec_env_t exec_env,
|
|
||||||
uint32 sensor);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* timer interfaces
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef unsigned int timer_id_t;
|
|
||||||
|
|
||||||
timer_id_t
|
|
||||||
wasm_create_timer(wasm_exec_env_t exec_env,
|
|
||||||
int interval, bool is_period, bool auto_start);
|
|
||||||
void
|
|
||||||
wasm_timer_destroy(wasm_exec_env_t exec_env, timer_id_t timer_id);
|
|
||||||
void
|
|
||||||
wasm_timer_cancel(wasm_exec_env_t exec_env, timer_id_t timer_id);
|
|
||||||
void
|
|
||||||
wasm_timer_restart(wasm_exec_env_t exec_env,
|
|
||||||
timer_id_t timer_id, int interval);
|
|
||||||
uint32
|
|
||||||
wasm_get_sys_tick_ms(wasm_exec_env_t exec_env);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* connection interfaces
|
|
||||||
*/
|
|
||||||
|
|
||||||
uint32
|
|
||||||
wasm_open_connection(wasm_exec_env_t exec_env,
|
|
||||||
int32 name_offset, int32 args_offset, uint32 len);
|
|
||||||
void
|
|
||||||
wasm_close_connection(wasm_exec_env_t exec_env,
|
|
||||||
uint32 handle);
|
|
||||||
int
|
|
||||||
wasm_send_on_connection(wasm_exec_env_t exec_env,
|
|
||||||
uint32 handle, int32 data_offset, uint32 len);
|
|
||||||
bool
|
|
||||||
wasm_config_connection(wasm_exec_env_t exec_env,
|
|
||||||
uint32 handle, int32 cfg_offset, uint32 len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gui interfaces
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_obj_native_call(wasm_exec_env_t exec_env,
|
|
||||||
int32 func_id, uint32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_btn_native_call(wasm_exec_env_t exec_env,
|
|
||||||
int32 func_id, uint32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_label_native_call(wasm_exec_env_t exec_env,
|
|
||||||
int32 func_id, uint32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_cb_native_call(wasm_exec_env_t exec_env,
|
|
||||||
int32 func_id, uint32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_list_native_call(wasm_exec_env_t exec_env,
|
|
||||||
int32 func_id, uint32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
#endif /* end of _NATIVE_INTERFACE_H */
|
#endif /* end of _NATIVE_INTERFACE_H */
|
||||||
|
|
||||||
|
|
14
core/app-framework/base/native/base_lib.inl
Normal file
14
core/app-framework/base/native/base_lib.inl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
EXPORT_WASM_API(wasm_register_resource),
|
||||||
|
EXPORT_WASM_API(wasm_response_send),
|
||||||
|
EXPORT_WASM_API(wasm_post_request),
|
||||||
|
EXPORT_WASM_API(wasm_sub_event),
|
||||||
|
EXPORT_WASM_API(wasm_create_timer),
|
||||||
|
EXPORT_WASM_API(wasm_timer_destroy),
|
||||||
|
EXPORT_WASM_API(wasm_timer_cancel),
|
||||||
|
EXPORT_WASM_API(wasm_timer_restart),
|
||||||
|
EXPORT_WASM_API(wasm_get_sys_tick_ms),
|
|
@ -7,20 +7,14 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "lib_export.h"
|
#include "lib_export.h"
|
||||||
#include "base_lib_export.h"
|
#include "req_resp_native_api.h"
|
||||||
|
#include "timer_native_api.h"
|
||||||
|
|
||||||
|
|
||||||
static NativeSymbol extended_native_symbol_defs[] = {
|
static NativeSymbol extended_native_symbol_defs[] = {
|
||||||
/* TODO: use macro EXPORT_WASM_API() or EXPORT_WASM_API2() to
|
/* TODO: use macro EXPORT_WASM_API() or EXPORT_WASM_API2() to
|
||||||
add functions to register. */
|
add functions to register. */
|
||||||
EXPORT_WASM_API(wasm_register_resource),
|
#include "base_lib.inl"
|
||||||
EXPORT_WASM_API(wasm_response_send),
|
|
||||||
EXPORT_WASM_API(wasm_post_request),
|
|
||||||
EXPORT_WASM_API(wasm_sub_event),
|
|
||||||
EXPORT_WASM_API(wasm_create_timer),
|
|
||||||
EXPORT_WASM_API(wasm_timer_destroy),
|
|
||||||
EXPORT_WASM_API(wasm_timer_cancel),
|
|
||||||
EXPORT_WASM_API(wasm_timer_restart),
|
|
||||||
EXPORT_WASM_API(wasm_get_sys_tick_ms),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int get_base_lib_export_apis(NativeSymbol **p_base_lib_apis)
|
int get_base_lib_export_apis(NativeSymbol **p_base_lib_apis)
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _BASE_LIB_EXPORT_H_
|
|
||||||
#define _BASE_LIB_EXPORT_H_
|
|
||||||
|
|
||||||
#include "bi-inc/attr_container.h"
|
|
||||||
#include "native_interface.h"
|
|
||||||
|
|
||||||
#endif /* end of _BASE_LIB_EXPORT_H_ */
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _REQ_RESP_API_H_
|
|
||||||
#define _REQ_RESP_API_H_
|
|
||||||
|
|
||||||
#include "bh_platform.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_response_send(int32 buf_offset, int size);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_register_resource(int32 url_offset);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_post_request(int32 buf_offset, int size);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_sub_event(int32 url_offset);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* end of _REQ_RESP_API_H_ */
|
|
||||||
|
|
36
core/app-framework/base/native/req_resp_native_api.h
Normal file
36
core/app-framework/base/native/req_resp_native_api.h
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _REQ_RESP_API_H_
|
||||||
|
#define _REQ_RESP_API_H_
|
||||||
|
|
||||||
|
#include "bh_platform.h"
|
||||||
|
#include "wasm_export.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool
|
||||||
|
wasm_response_send(wasm_exec_env_t exec_env,
|
||||||
|
int32 buffer_offset, int size);
|
||||||
|
void
|
||||||
|
wasm_register_resource(wasm_exec_env_t exec_env,
|
||||||
|
int32 url_offset);
|
||||||
|
void
|
||||||
|
wasm_post_request(wasm_exec_env_t exec_env,
|
||||||
|
int32 buffer_offset, int size);
|
||||||
|
void
|
||||||
|
wasm_sub_event(wasm_exec_env_t exec_env,
|
||||||
|
int32 url_offset);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* end of _REQ_RESP_API_H_ */
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _TIMER_API_H_
|
|
||||||
#define _TIMER_API_H_
|
|
||||||
|
|
||||||
#include "bh_platform.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef unsigned int timer_id_t;
|
|
||||||
|
|
||||||
timer_id_t
|
|
||||||
wasm_create_timer(int interval, bool is_period, bool auto_start);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_timer_destroy(timer_id_t timer_id);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_timer_cancel(timer_id_t timer_id);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_timer_restart(timer_id_t timer_id, int interval);
|
|
||||||
|
|
||||||
uint32
|
|
||||||
wasm_get_sys_tick_ms(void);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* end of _TIMER_API_H_ */
|
|
||||||
|
|
43
core/app-framework/base/native/timer_native_api.h
Normal file
43
core/app-framework/base/native/timer_native_api.h
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _TIMER_API_H_
|
||||||
|
#define _TIMER_API_H_
|
||||||
|
|
||||||
|
#include "bh_platform.h"
|
||||||
|
#include "wasm_export.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef unsigned int timer_id_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* timer interfaces
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef unsigned int timer_id_t;
|
||||||
|
|
||||||
|
timer_id_t
|
||||||
|
wasm_create_timer(wasm_exec_env_t exec_env,
|
||||||
|
int interval, bool is_period, bool auto_start);
|
||||||
|
void
|
||||||
|
wasm_timer_destroy(wasm_exec_env_t exec_env, timer_id_t timer_id);
|
||||||
|
void
|
||||||
|
wasm_timer_cancel(wasm_exec_env_t exec_env, timer_id_t timer_id);
|
||||||
|
void
|
||||||
|
wasm_timer_restart(wasm_exec_env_t exec_env,
|
||||||
|
timer_id_t timer_id, int interval);
|
||||||
|
uint32
|
||||||
|
wasm_get_sys_tick_ms(wasm_exec_env_t exec_env);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* end of _TIMER_API_H_ */
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "bh_list.h"
|
#include "bh_list.h"
|
||||||
#include "bh_thread.h"
|
#include "bh_thread.h"
|
||||||
#include "bh_time.h"
|
#include "bh_time.h"
|
||||||
|
#include "timer_native_api.h"
|
||||||
|
|
||||||
static bool timer_thread_run = true;
|
static bool timer_thread_run = true;
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CONNECTION_API_H_
|
|
||||||
#define CONNECTION_API_H_
|
|
||||||
|
|
||||||
#include "bh_platform.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32
|
|
||||||
wasm_open_connection(int32 name_offset, int32 args_buf_offset, uint32 args_buf_len);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_close_connection(uint32 handle);
|
|
||||||
|
|
||||||
int
|
|
||||||
wasm_send_on_connection(uint32 handle, int32 data_offset, uint32 data_len);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_config_connection(uint32 handle, int32 cfg_buf_offset, uint32 cfg_buf_len);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* end of CONNECTION_API_H_ */
|
|
41
core/app-framework/connection/native/connection_native_api.h
Normal file
41
core/app-framework/connection/native/connection_native_api.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CONNECTION_API_H_
|
||||||
|
#define CONNECTION_API_H_
|
||||||
|
|
||||||
|
#include "bh_platform.h"
|
||||||
|
#include "wasm_export.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* connection interfaces
|
||||||
|
*/
|
||||||
|
|
||||||
|
uint32
|
||||||
|
wasm_open_connection(wasm_exec_env_t exec_env,
|
||||||
|
int32 name_offset, int32 args_offset, uint32 len);
|
||||||
|
void
|
||||||
|
wasm_close_connection(wasm_exec_env_t exec_env,
|
||||||
|
uint32 handle);
|
||||||
|
int
|
||||||
|
wasm_send_on_connection(wasm_exec_env_t exec_env,
|
||||||
|
uint32 handle, int32 data_offset, uint32 len);
|
||||||
|
bool
|
||||||
|
wasm_config_connection(wasm_exec_env_t exec_env,
|
||||||
|
uint32 handle, int32 cfg_offset, uint32 len);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* end of CONNECTION_API_H_ */
|
|
@ -6,6 +6,8 @@
|
||||||
#include "connection_lib.h"
|
#include "connection_lib.h"
|
||||||
#include "wasm_export.h"
|
#include "wasm_export.h"
|
||||||
#include "native_interface.h"
|
#include "native_interface.h"
|
||||||
|
#include "connection_native_api.h"
|
||||||
|
|
||||||
|
|
||||||
/* Note:
|
/* Note:
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "wa-inc/sensor.h"
|
#include "wa-inc/sensor.h"
|
||||||
|
|
||||||
#include "sensor_api.h"
|
#include "sensor_api.h"
|
||||||
|
|
||||||
typedef struct _sensor {
|
typedef struct _sensor {
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "bh_platform.h"
|
#include "bh_platform.h"
|
||||||
#include "bi-inc/attr_container.h"
|
#include "bi-inc/attr_container.h"
|
||||||
#include "wasm_export.h"
|
#include "wasm_export.h"
|
||||||
|
#include "sensor_native_api.h"
|
||||||
|
|
||||||
struct _sys_sensor;
|
struct _sys_sensor;
|
||||||
typedef struct _sys_sensor* sensor_obj_t;
|
typedef struct _sys_sensor* sensor_obj_t;
|
||||||
|
@ -50,20 +51,10 @@ void sensor_cleanup_callback(uint32 module_id);
|
||||||
int check_sensor_timers();
|
int check_sensor_timers();
|
||||||
void reschedule_sensor_read();
|
void reschedule_sensor_read();
|
||||||
|
|
||||||
uint32
|
void init_sensor_framework();
|
||||||
wasm_sensor_open(wasm_exec_env_t exec_env,
|
void start_sensor_framework();
|
||||||
int32 name_offset, int instance);
|
void exit_sensor_framework();
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_config(wasm_exec_env_t exec_env,
|
|
||||||
uint32 sensor, int interval, int bit_cfg, int delay);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_config_with_attr_container(wasm_exec_env_t exec_env,
|
|
||||||
uint32 sensor, int32 buffer_offset,
|
|
||||||
int len);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_close(wasm_exec_env_t exec_env, uint32 sensor);
|
|
||||||
|
|
||||||
#endif /* LIB_EXTENSION_RUNTIME_SENSOR_H_ */
|
#endif /* LIB_EXTENSION_RUNTIME_SENSOR_H_ */
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SENSOR_API_H_
|
|
||||||
#define _SENSOR_API_H_
|
|
||||||
|
|
||||||
#include "bh_platform.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32
|
|
||||||
wasm_sensor_open(int32 name_offset, int instance);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_config(uint32 sensor, int interval, int bit_cfg, int delay);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_config_with_attr_container(uint32 sensor, int32 buffer_offset, int len);
|
|
||||||
|
|
||||||
bool
|
|
||||||
wasm_sensor_close(uint32 sensor);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* end of _SENSOR_API_H_ */
|
|
||||||
|
|
|
@ -84,21 +84,6 @@ void app_mgr_sensor_event_callback(module_data *m_data, bh_message_t msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static attr_container_t * read_test_sensor(void * sensor)
|
|
||||||
{
|
|
||||||
//luc: for test
|
|
||||||
attr_container_t *attr_obj = attr_container_create("read test sensor data");
|
|
||||||
if (attr_obj) {
|
|
||||||
attr_container_set_string(&attr_obj, "name", "read test sensor");
|
|
||||||
return attr_obj;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool config_test_sensor(void * s, void * config)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void thread_sensor_check(void * arg)
|
static void thread_sensor_check(void * arg)
|
||||||
{
|
{
|
||||||
|
@ -122,13 +107,9 @@ void set_sensor_reshceduler(void (*callback)());
|
||||||
void init_sensor_framework()
|
void init_sensor_framework()
|
||||||
{
|
{
|
||||||
// init the mutext and conditions
|
// init the mutext and conditions
|
||||||
korp_thread tid;
|
|
||||||
vm_cond_init(&cond);
|
vm_cond_init(&cond);
|
||||||
vm_mutex_init(&mutex);
|
vm_mutex_init(&mutex);
|
||||||
|
|
||||||
// add the sys sensor objects
|
|
||||||
add_sys_sensor("sensor_test", "This is a sensor for test", 0, 1000,
|
|
||||||
read_test_sensor, config_test_sensor);
|
|
||||||
|
|
||||||
set_sensor_reshceduler(cb_wakeup_thread);
|
set_sensor_reshceduler(cb_wakeup_thread);
|
||||||
|
|
||||||
|
@ -137,12 +118,25 @@ void init_sensor_framework()
|
||||||
|
|
||||||
wasm_register_cleanup_callback(sensor_cleanup_callback);
|
wasm_register_cleanup_callback(sensor_cleanup_callback);
|
||||||
|
|
||||||
vm_thread_create(&tid, (void *)thread_sensor_check, NULL,
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void start_sensor_framework()
|
||||||
|
{
|
||||||
|
korp_thread tid;
|
||||||
|
|
||||||
|
vm_thread_create(&tid,
|
||||||
|
(void *)thread_sensor_check,
|
||||||
|
NULL,
|
||||||
BH_APPLET_PRESERVED_STACK_SIZE);
|
BH_APPLET_PRESERVED_STACK_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void exit_sensor_framework()
|
void exit_sensor_framework()
|
||||||
{
|
{
|
||||||
sensor_check_thread_run = false;
|
sensor_check_thread_run = false;
|
||||||
|
reschedule_sensor_read();
|
||||||
|
|
||||||
|
//todo: wait the sensor thread termination
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
37
core/app-framework/sensor/native/sensor_native_api.h
Normal file
37
core/app-framework/sensor/native/sensor_native_api.h
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SENSOR_NATIVE_API_H_
|
||||||
|
#define _SENSOR_NATIVE_API_H_
|
||||||
|
|
||||||
|
#include "bh_platform.h"
|
||||||
|
#include "wasm_export.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool
|
||||||
|
wasm_sensor_config(wasm_exec_env_t exec_env,
|
||||||
|
uint32 sensor, int interval,
|
||||||
|
int bit_cfg, int delay);
|
||||||
|
uint32
|
||||||
|
wasm_sensor_open(wasm_exec_env_t exec_env,
|
||||||
|
int32 name_offset, int instance);
|
||||||
|
|
||||||
|
bool
|
||||||
|
wasm_sensor_config_with_attr_container(wasm_exec_env_t exec_env,
|
||||||
|
uint32 sensor, int32 buffer_offset,
|
||||||
|
int len);
|
||||||
|
|
||||||
|
bool
|
||||||
|
wasm_sensor_close(wasm_exec_env_t exec_env, uint32 sensor);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* end of _SENSOR_NATIVE_API_H_ */
|
||||||
|
|
|
@ -5,6 +5,10 @@ set (WASM_APP_GUI_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
set (DEPS_DIR ${WASM_APP_GUI_DIR}/../../../deps)
|
set (DEPS_DIR ${WASM_APP_GUI_DIR}/../../../deps)
|
||||||
|
|
||||||
|
if (NOT EXISTS "${DEPS_DIR}/lvgl")
|
||||||
|
message (FATAL_ERROR "Can not find third party dependency: ${DEPS_DIR}/lvgl")
|
||||||
|
endif ()
|
||||||
|
|
||||||
include_directories(${WASM_APP_GUI_DIR}
|
include_directories(${WASM_APP_GUI_DIR}
|
||||||
${DEPS_DIR}
|
${DEPS_DIR}
|
||||||
${DEPS_DIR}/lvgl
|
${DEPS_DIR}/lvgl
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _GUI_API_H_
|
|
||||||
#define _GUI_API_H_
|
|
||||||
|
|
||||||
#include "bh_platform.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_obj_native_call(int32 func_id, int32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_btn_native_call(int32 func_id, int32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_label_native_call(int32 func_id, int32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_cb_native_call(int32 func_id, int32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
void
|
|
||||||
wasm_list_native_call(int32 func_id, int32 argv_offset, uint32 argc);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* end of _GUI_API_H_ */
|
|
46
core/app-framework/wgl/native/gui_native_api.h
Normal file
46
core/app-framework/wgl/native/gui_native_api.h
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GUI_API_H_
|
||||||
|
#define _GUI_API_H_
|
||||||
|
|
||||||
|
#include "bh_platform.h"
|
||||||
|
#include "wasm_export.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gui interfaces
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
wasm_obj_native_call(wasm_exec_env_t exec_env,
|
||||||
|
int32 func_id, uint32 argv_offset, uint32 argc);
|
||||||
|
|
||||||
|
void
|
||||||
|
wasm_btn_native_call(wasm_exec_env_t exec_env,
|
||||||
|
int32 func_id, uint32 argv_offset, uint32 argc);
|
||||||
|
|
||||||
|
void
|
||||||
|
wasm_label_native_call(wasm_exec_env_t exec_env,
|
||||||
|
int32 func_id, uint32 argv_offset, uint32 argc);
|
||||||
|
|
||||||
|
void
|
||||||
|
wasm_cb_native_call(wasm_exec_env_t exec_env,
|
||||||
|
int32 func_id, uint32 argv_offset, uint32 argc);
|
||||||
|
|
||||||
|
void
|
||||||
|
wasm_list_native_call(wasm_exec_env_t exec_env,
|
||||||
|
int32 func_id, uint32 argv_offset, uint32 argc);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* end of _GUI_API_H_ */
|
Binary file not shown.
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 19 KiB |
|
@ -1,7 +1,7 @@
|
||||||
#include "lib_export.h"
|
#include "lib_export.h"
|
||||||
#include "sensor_api.h"
|
#include "sensor_native_api.h"
|
||||||
#include "connection_api.h"
|
#include "connection_native_api.h"
|
||||||
#include "gui_api.h"
|
#include "gui_native_api.h"
|
||||||
|
|
||||||
static NativeSymbol extended_native_symbol_defs[] = {
|
static NativeSymbol extended_native_symbol_defs[] = {
|
||||||
#include "runtime_sensor.inl"
|
#include "runtime_sensor.inl"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "lib_export.h"
|
#include "lib_export.h"
|
||||||
#include "sensor_api.h"
|
#include "sensor_native_api.h"
|
||||||
#include "connection_api.h"
|
#include "connection_native_api.h"
|
||||||
#include "display_indev.h"
|
#include "display_indev.h"
|
||||||
|
|
||||||
static NativeSymbol extended_native_symbol_defs[] = {
|
static NativeSymbol extended_native_symbol_defs[] = {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#include "lib_export.h"
|
#include "lib_export.h"
|
||||||
#include "sensor_api.h"
|
#include "sensor_native_api.h"
|
||||||
#include "connection_api.h"
|
#include "timer_native_api.h"
|
||||||
|
#include "req_resp_native_api.h"
|
||||||
|
#include "connection_native_api.h"
|
||||||
|
|
||||||
static NativeSymbol extended_native_symbol_defs[] = {
|
static NativeSymbol extended_native_symbol_defs[] = {
|
||||||
#include "runtime_sensor.inl"
|
#include "runtime_sensor.inl"
|
||||||
|
|
|
@ -354,6 +354,29 @@ static host_interface interface = { .send = uart_send, .destroy = uart_destroy }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static attr_container_t * read_test_sensor(void * sensor)
|
||||||
|
{
|
||||||
|
//luc: for test
|
||||||
|
attr_container_t *attr_obj = attr_container_create("read test sensor data");
|
||||||
|
if (attr_obj) {
|
||||||
|
bool ret = attr_container_set_string(&attr_obj, "name", "read test sensor");
|
||||||
|
if (!ret) {
|
||||||
|
attr_container_destroy(attr_obj);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return attr_obj;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool config_test_sensor(void * s, void * config)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static char global_heap_buf[1024 * 1024] = { 0 };
|
static char global_heap_buf[1024 * 1024] = { 0 };
|
||||||
|
|
||||||
static void showUsage()
|
static void showUsage()
|
||||||
|
@ -458,15 +481,34 @@ int iwasm_main(int argc, char *argv[])
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// timer manager
|
||||||
|
//
|
||||||
|
init_wasm_timer();
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// connection framework
|
||||||
|
//
|
||||||
if (!init_connection_framework()) {
|
if (!init_connection_framework()) {
|
||||||
vm_thread_sys_destroy();
|
vm_thread_sys_destroy();
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// sensor framework
|
||||||
|
//
|
||||||
init_sensor_framework();
|
init_sensor_framework();
|
||||||
|
// add the sys sensor objects
|
||||||
|
add_sys_sensor("sensor_test",
|
||||||
|
"This is a sensor for test",
|
||||||
|
0,
|
||||||
|
1000,
|
||||||
|
read_test_sensor,
|
||||||
|
config_test_sensor);
|
||||||
|
start_sensor_framework();
|
||||||
|
|
||||||
|
|
||||||
// timer manager
|
|
||||||
init_wasm_timer();
|
|
||||||
|
|
||||||
#ifndef CONNECTION_UART
|
#ifndef CONNECTION_UART
|
||||||
if (server_mode)
|
if (server_mode)
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
mainmenu "WebAssembly Micro Runtime Configuration"
|
mainmenu "WebAssembly Micro Runtime Configuration"
|
||||||
|
|
||||||
config WAMR_SDK_PROFILE
|
|
||||||
string "wamr sdk profile name"
|
|
||||||
default "default"
|
|
||||||
help
|
|
||||||
create a new SDK by giving a name or overwrite
|
|
||||||
the "default" profile
|
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "select a build target"
|
prompt "select a build target"
|
||||||
|
|
||||||
|
@ -64,29 +57,28 @@ choice
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config APP_FRAMEWORK_ENABLE
|
choice
|
||||||
bool "enable app framework"
|
prompt "application framework"
|
||||||
|
config APP_FRAMEWORK_DISABLE
|
||||||
|
bool "Disable app framework"
|
||||||
help
|
help
|
||||||
enable wamr app framework
|
Disable wamr app framework
|
||||||
|
|
||||||
menu "app modules"
|
config APP_FRAMEWORK_DEFAULT
|
||||||
depends on APP_FRAMEWORK_ENABLE
|
bool "Default components"
|
||||||
|
help
|
||||||
|
Default components
|
||||||
|
|
||||||
config APP_BUILD_ALL
|
config APP_FRAMEWORK_ALL
|
||||||
bool "enable all modules"
|
bool "All components"
|
||||||
|
|
||||||
|
config APP_FRAMEWORK_CUSTOM
|
||||||
|
bool "customized module config"
|
||||||
|
|
||||||
|
menu "modules:"
|
||||||
|
depends on APP_FRAMEWORK_CUSTOM
|
||||||
|
|
||||||
source ".wamr_modules"
|
source ".wamr_modules"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
endchoice
|
||||||
config EXTRA_INCLUDE_ENABLE
|
|
||||||
bool "enable extra include dir"
|
|
||||||
|
|
||||||
config EXTRA_INCLUDE_PATH
|
|
||||||
string "external include path"
|
|
||||||
depends on EXTRA_INCLUDE_ENABLE
|
|
||||||
help
|
|
||||||
Pass external include path to be added in the SDK
|
|
||||||
This is useful when your app modules need some external
|
|
||||||
header files, such as the wgl modules which need some config
|
|
||||||
file when building the runtime library
|
|
||||||
|
|
|
@ -20,17 +20,14 @@ usage ()
|
||||||
echo "build.sh [options]"
|
echo "build.sh [options]"
|
||||||
echo " -n [profile name]"
|
echo " -n [profile name]"
|
||||||
echo " -x [config file path name]"
|
echo " -x [config file path name]"
|
||||||
echo " -p [platform]"
|
|
||||||
echo " -t [target]"
|
|
||||||
echo " -m [mode]"
|
|
||||||
echo " -e [extra include path], files under this path will be copied into SDK package"
|
echo " -e [extra include path], files under this path will be copied into SDK package"
|
||||||
echo " -c, clean"
|
echo " -c, clean"
|
||||||
echo " -i, enter interactive config setting"
|
echo " -i, enter menu config settings"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
while getopts "e:x:n:p:t:m:l:awgicg" opt
|
while getopts "e:x:n:ic" opt
|
||||||
do
|
do
|
||||||
case $opt in
|
case $opt in
|
||||||
n)
|
n)
|
||||||
|
@ -39,39 +36,12 @@ do
|
||||||
x)
|
x)
|
||||||
wamr_config_cmake_file=$OPTARG
|
wamr_config_cmake_file=$OPTARG
|
||||||
;;
|
;;
|
||||||
p)
|
|
||||||
PLATFORM=$OPTARG
|
|
||||||
;;
|
|
||||||
t)
|
|
||||||
TARGET=$OPTARG
|
|
||||||
;;
|
|
||||||
m)
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=","
|
|
||||||
MODES=($OPTARG)
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
;;
|
|
||||||
l)
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=","
|
|
||||||
APP_LIST=($OPTARG)
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
;;
|
|
||||||
e)
|
e)
|
||||||
CMAKE_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${OPTARG}"
|
CMAKE_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${OPTARG}"
|
||||||
;;
|
;;
|
||||||
a)
|
|
||||||
APP="TRUE"
|
|
||||||
;;
|
|
||||||
c)
|
c)
|
||||||
CLEAN="TRUE"
|
CLEAN="TRUE"
|
||||||
;;
|
;;
|
||||||
w)
|
|
||||||
LIBC_SUPPORT="WASI"
|
|
||||||
;;
|
|
||||||
g)
|
|
||||||
FROM_GUI_MENU="TRUE"
|
|
||||||
;;
|
|
||||||
i)
|
i)
|
||||||
MENUCONFIG="TRUE"
|
MENUCONFIG="TRUE"
|
||||||
;;
|
;;
|
||||||
|
@ -83,147 +53,6 @@ do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ ! -d "${out_dir}" ]; then
|
|
||||||
mkdir -p ${out_dir}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "CMAKE_DEXTRA_SDK_INCLUDE_PATH=${CMAKE_DEXTRA_SDK_INCLUDE_PATH}"
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z "$PROFILE" ]; then
|
|
||||||
PROFILE="default"
|
|
||||||
echo "PROFILE argument not set, using DEFAULT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
curr_profile_dir=${out_dir}/${PROFILE}
|
|
||||||
wamr_app_out_dir=${curr_profile_dir}/app-sdk/wamr-app-framework
|
|
||||||
sysroot_dir=${curr_profile_dir}/app-sdk/libc-builtin-sysroot
|
|
||||||
|
|
||||||
if [[ "$CLEAN" = "TRUE" ]]; then
|
|
||||||
rm -rf ${curr_profile_dir}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# cmake config file for wamr runtime:
|
|
||||||
# 1. use the users provided the config cmake file path.
|
|
||||||
# 2. if user set MENU CONFIG, enter menu config to generate menu_config.cmake in the profile output folder
|
|
||||||
# 3. If the menu_config.cmake is already in the profile folder, use it
|
|
||||||
#4: use the default config cmake file
|
|
||||||
if [[ -n "$wamr_config_cmake_file" ]]; then
|
|
||||||
echo "User config file: [${wamr_config_cmake_file}]"
|
|
||||||
else
|
|
||||||
wamr_config_cmake_file=${curr_profile_dir}/wamr_config_menu.cmake
|
|
||||||
if [[ "$MENUCONFIG" = "TRUE" ]] || [[ "$FROM_GUI_MENU" = "TRUE" ]]; then
|
|
||||||
echo "MENUCONFIG: user config file: [${wamr_config_cmake_file}]"
|
|
||||||
elif [[ -f $wamr_config_cmake_file ]]; then
|
|
||||||
echo "use existing config file: [$wamr_config_cmake_file]"
|
|
||||||
else
|
|
||||||
wamr_config_cmake_file=${sdk_root}/wamr_config_default.cmake
|
|
||||||
echo "use default config file: [$wamr_config_cmake_file]"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if called by gui menuconfig, overwrite the exist profile
|
|
||||||
if [ "${FROM_GUI_MENU}" != "TRUE" ]; then
|
|
||||||
if [[ "$PROFILE" != "default" ]] && [[ -d "$curr_profile_dir" ]]; then
|
|
||||||
echo "#########################################################"
|
|
||||||
echo "profile ${curr_profile_dir} already exists"
|
|
||||||
echo " skip the build process and use the previous settings: [y]"
|
|
||||||
echo " or delete the profile and generate a new one: n"
|
|
||||||
read -a erase_exist
|
|
||||||
if [[ "$erase_exist" != "n" ]] && [[ "$erase_exist" != "N" ]]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf ${curr_profile_dir}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p ${curr_profile_dir}
|
|
||||||
mkdir -p ${curr_profile_dir}/app-sdk
|
|
||||||
mkdir -p ${curr_profile_dir}/runtime-sdk
|
|
||||||
|
|
||||||
function set_build_target () {
|
|
||||||
target=$1
|
|
||||||
|
|
||||||
if [[ "${target}" = "X86_64" ]]; then
|
|
||||||
echo -e "set (WAMR_BUILD_TARGET \"X86_64\")" >> ${wamr_config_cmake_file}
|
|
||||||
elif [[ "${target}" = "X86_32" ]]; then
|
|
||||||
echo -e "set (WAMR_BUILD_TARGET \"X86_32\")" >> ${wamr_config_cmake_file}
|
|
||||||
else
|
|
||||||
echo "unknown build target."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_build_platform () {
|
|
||||||
platform=$1
|
|
||||||
|
|
||||||
if [[ "${platform}" = "linux" ]]; then
|
|
||||||
echo -e "set (WAMR_BUILD_PLATFORM \"linux\")" >> ${wamr_config_cmake_file}
|
|
||||||
# TODO: add other platforms
|
|
||||||
else
|
|
||||||
echo "${platform} platform currently not supported"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# input: array of selected exec modes [aot jit interp]
|
|
||||||
function set_exec_mode () {
|
|
||||||
modes=($1)
|
|
||||||
|
|
||||||
for mode in ${modes[@]}
|
|
||||||
do
|
|
||||||
if [[ "$mode" = "aot" ]]; then
|
|
||||||
echo "set (WAMR_BUILD_AOT 1)" >> ${wamr_config_cmake_file}
|
|
||||||
elif [[ "$mode" = "jit" ]]; then
|
|
||||||
echo "set (WAMR_BUILD_JIT 1)" >> ${wamr_config_cmake_file}
|
|
||||||
BUILD_LLVM="TRUE"
|
|
||||||
elif [[ "$mode" = "interp" ]]; then
|
|
||||||
echo "set (WAMR_BUILD_INTERP 1)" >> ${wamr_config_cmake_file}
|
|
||||||
else
|
|
||||||
echo "unknown execute mode."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_libc_support () {
|
|
||||||
libc=$1
|
|
||||||
|
|
||||||
if [ "$libc" = "WASI" ]; then
|
|
||||||
echo "set (WAMR_BUILD_LIBC_WASI 1)" >> ${wamr_config_cmake_file}
|
|
||||||
else
|
|
||||||
echo "set (WAMR_BUILD_LIBC_BUILTIN 1)" >> ${wamr_config_cmake_file}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_app_framework () {
|
|
||||||
app_support=$1
|
|
||||||
|
|
||||||
if [ "$app_support" = "TRUE" ]; then
|
|
||||||
echo "set (WAMR_BUILD_APP_FRAMEWORK 1)" >> ${wamr_config_cmake_file}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# input: array of selected app modules
|
|
||||||
function set_app_module () {
|
|
||||||
modules=($1)
|
|
||||||
|
|
||||||
for module in ${modules[*]}
|
|
||||||
do
|
|
||||||
if [ "${module}" = "all" ]; then
|
|
||||||
cmake_app_list="WAMR_APP_BUILD_ALL"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmake_app_list="${cmake_app_list} WAMR_APP_BUILD_${module^^}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# APP module list
|
|
||||||
if [ -n "${cmake_app_list}" ]; then
|
|
||||||
echo "set (WAMR_BUILD_APP_LIST ${cmake_app_list# })" >> ${wamr_config_cmake_file}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! -f "/opt/wasi-sdk/bin/clang" ]; then
|
if [ ! -f "/opt/wasi-sdk/bin/clang" ]; then
|
||||||
echo "Can't find wasi-sdk under /opt/wasi-sdk"
|
echo "Can't find wasi-sdk under /opt/wasi-sdk"
|
||||||
|
@ -236,142 +65,70 @@ if [ ! -f "/opt/wasi-sdk/bin/clang" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${FROM_GUI_MENU}" = "TRUE" ]; then
|
if [ -z "$PROFILE" ]; then
|
||||||
# called from gui based menuconfig,
|
PROFILE="default"
|
||||||
# all settings are passed from command line options
|
echo "PROFILE argument not set, using DEFAULT"
|
||||||
|
if [[ -z "$wamr_config_cmake_file" ]]; then
|
||||||
if [[ -f $wamr_config_cmake_file ]]; then
|
wamr_config_cmake_file=${sdk_root}/wamr_config_default.cmake
|
||||||
rm $wamr_config_cmake_file
|
echo "use default config file: [$wamr_config_cmake_file]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set_build_target ${TARGET}
|
|
||||||
set_build_platform ${PLATFORM}
|
|
||||||
set_exec_mode "${MODES[*]}"
|
|
||||||
set_libc_support ${LIBC_SUPPORT}
|
|
||||||
set_app_module "${APP_LIST[*]}"
|
|
||||||
set_app_framework ${APP}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# No options passed, ask for user input
|
if [ ! -d "${out_dir}" ]; then
|
||||||
if [ "$MENUCONFIG" = "TRUE" ]; then
|
mkdir -p ${out_dir}
|
||||||
|
|
||||||
if [[ -f $wamr_config_cmake_file ]]; then
|
|
||||||
rm $wamr_config_cmake_file
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
curr_profile_dir=${out_dir}/${PROFILE}
|
||||||
echo "-----------------------------------------------------------------"
|
wamr_app_out_dir=${curr_profile_dir}/app-sdk/wamr-app-framework
|
||||||
echo "select a build target:"
|
sysroot_dir=${curr_profile_dir}/app-sdk/libc-builtin-sysroot
|
||||||
echo "[1] X86_64 (default)"
|
|
||||||
echo "[2] X86_32"
|
|
||||||
read -a select_target
|
|
||||||
|
|
||||||
if [ "${select_target}" = "2" ]; then
|
|
||||||
TARGET="X86_32"
|
echo "CMAKE_DEXTRA_SDK_INCLUDE_PATH=${CMAKE_DEXTRA_SDK_INCLUDE_PATH}"
|
||||||
else
|
|
||||||
TARGET="X86_64"
|
|
||||||
|
if [[ "$CLEAN" = "TRUE" ]]; then
|
||||||
|
rm -rf ${curr_profile_dir}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "-----------------------------------------------------------------"
|
|
||||||
echo "select a build platform:"
|
|
||||||
echo "[1] linux (default)"
|
|
||||||
echo "More platforms to be add here ..."
|
|
||||||
|
|
||||||
read -a select_platform
|
|
||||||
|
|
||||||
if [ "${select_platform}" = "1" ]; then
|
# cmake config file for wamr runtime:
|
||||||
PLATFORM="linux"
|
# 1. use the users provided the config cmake file path.
|
||||||
# TODO: add more platforms
|
# 2. if user set MENU CONFIG, enter menu config to generate
|
||||||
else
|
# menu_config.cmake in the profile output folder
|
||||||
PLATFORM="linux"
|
# 3. If the menu_config.cmake is already in the profile folder, use it
|
||||||
fi
|
# 4. Use the default config cmake file
|
||||||
|
#
|
||||||
echo ""
|
if [[ -n "$wamr_config_cmake_file" ]]; then
|
||||||
echo "-----------------------------------------------------------------"
|
if [[ ! -f $wamr_config_cmake_file ]]; then
|
||||||
echo "select one or more execution mode of the WAMR runtime"
|
echo "user given file not exist: ${wamr_config_cmake_file}"
|
||||||
|
|
||||||
enable_interp="y"
|
|
||||||
enable_jit="n"
|
|
||||||
enable_aot="n"
|
|
||||||
|
|
||||||
read -p "enable interpreter mode [y]/n: " -a enable_interp
|
|
||||||
read -p "enable jit mode y/[n]: " -a enable_jit
|
|
||||||
read -p "enable aot mode y/[n]: " -a enable_aot
|
|
||||||
|
|
||||||
# by default the interpreter mode is selected
|
|
||||||
if [[ ${enable_interp} != "n" ]] && [[ ${enable_interp} != "N" ]]; then
|
|
||||||
enable_interp="y"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${enable_interp} != "y" ]] && [[ ${enable_aot} != "y" ]];
|
|
||||||
then
|
|
||||||
echo "WASM Interpreter and AOT must be enabled at least one"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${enable_interp} = "y" ]]; then
|
echo "User config file: [${wamr_config_cmake_file}]"
|
||||||
MODES[${#MODES[@]}]=interp
|
|
||||||
fi
|
else
|
||||||
if [[ ${enable_jit} = "y" ]] || [[ ${enable_jit} = "Y" ]]; then
|
wamr_config_cmake_file=${out_dir}/wamr_config_${PROFILE}.cmake
|
||||||
MODES[${#MODES[@]}]=jit
|
# always rebuilt the sdk if user is not giving the config file
|
||||||
fi
|
if [ -d ${curr_profile_dir} ]; then
|
||||||
if [[ ${enable_aot} = "y" ]] || [[ ${enable_aot} = "Y" ]]; then
|
rm -rf ${curr_profile_dir}
|
||||||
MODES[${#MODES[@]}]=aot
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
if [[ "$MENUCONFIG" = "TRUE" ]] || [[ ! -f $wamr_config_cmake_file ]]; then
|
||||||
echo "-----------------------------------------------------------------"
|
echo "MENUCONFIG: [${wamr_config_cmake_file}]"
|
||||||
echo "select a libc support:"
|
./menuconfig.sh -x ${wamr_config_cmake_file}
|
||||||
echo "[1] builtin libc (default)"
|
[ $? -eq 0 ] || exit $?
|
||||||
echo "[2] WebAssembly System Interface (WASI)"
|
else
|
||||||
read -a libc_select
|
echo "use existing config file: [$wamr_config_cmake_file]"
|
||||||
|
fi
|
||||||
if [ "$libc_select" = "1" ]; then
|
|
||||||
LIBC_SUPPORT="BUILTIN"
|
|
||||||
elif [ "$libc_select" = "2" ]; then
|
|
||||||
LIBC_SUPPORT="WASI"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "-----------------------------------------------------------------"
|
|
||||||
echo "enable app framework? [y]/n"
|
|
||||||
read -a enable_app
|
|
||||||
|
|
||||||
if [[ "$enable_app" != "n" ]] && [[ "$enable_app" != "N" ]]; then
|
mkdir -p ${curr_profile_dir}
|
||||||
APP="TRUE"
|
mkdir -p ${curr_profile_dir}/app-sdk
|
||||||
fi
|
mkdir -p ${curr_profile_dir}/runtime-sdk
|
||||||
|
|
||||||
if [[ "$APP" = "TRUE" ]]; then
|
|
||||||
echo ""
|
|
||||||
echo "-----------------------------------------------------------------"
|
|
||||||
echo "please input the name of the module you need, seperate by ',' "
|
|
||||||
echo "type \"all\" if you want to enable all of them"
|
|
||||||
echo "---------------"
|
|
||||||
for folder in `ls ${wamr_root_dir}/core/app-framework -F | grep "/$" | grep -v "base" | grep -v "app-native-shared" | grep -v "template"`
|
|
||||||
do
|
|
||||||
folder=${folder%*/}
|
|
||||||
echo "${folder}"
|
|
||||||
done
|
|
||||||
echo "---------------"
|
|
||||||
read -a app_select
|
|
||||||
|
|
||||||
app_select=${app_select},base
|
|
||||||
app_select=${app_select#,}
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=","
|
|
||||||
APP_LIST=($app_select)
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set_build_target ${TARGET}
|
|
||||||
set_build_platform ${PLATFORM}
|
|
||||||
set_exec_mode "${MODES[*]}"
|
|
||||||
set_libc_support ${LIBC_SUPPORT}
|
|
||||||
set_app_module "${APP_LIST[*]}"
|
|
||||||
set_app_framework ${APP}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${BUILD_LLVM}" = "TRUE" ]; then
|
if [ "${BUILD_LLVM}" = "TRUE" ]; then
|
||||||
if [ ! -d "${wamr_root_dir}/core/deps/llvm" ]; then
|
if [ ! -d "${wamr_root_dir}/core/deps/llvm" ]; then
|
||||||
|
@ -388,6 +145,29 @@ echo "############## Start to build wasm app sdk ###############"
|
||||||
cd ${sdk_root}/app
|
cd ${sdk_root}/app
|
||||||
rm -fr build && mkdir build
|
rm -fr build && mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
|
# If wgl module is selected, check if the extra SDK include dir is passed by the args, prompt user to input if not.
|
||||||
|
app_all_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_ALL`
|
||||||
|
app_wgl_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_WGL`
|
||||||
|
|
||||||
|
if [[ -n "${app_wgl_selected}" ]] || [[ -n "${app_all_selected}" ]]; then
|
||||||
|
if [ -z "${CMAKE_DEXTRA_SDK_INCLUDE_PATH}" ]; then
|
||||||
|
echo -e "\033[31mWGL module require lvgl config files, please input the path to the lvgl SDK include path:\033[0m"
|
||||||
|
read -a extra_file_path
|
||||||
|
|
||||||
|
if [[ -z "${extra_file_path}" ]] || [[ ! -d "${extra_file_path}" ]]; then
|
||||||
|
echo -e "\033[31mThe extra SDK path is invalid, exiting\033[0m"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
CMAKE_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${extra_file_path}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
out=`grep WAMR_BUILD_LIBC_WASI ${wamr_config_cmake_file} |grep 1`
|
||||||
|
if [ -n "$out" ]; then
|
||||||
|
LIBC_SUPPORT="WASI"
|
||||||
|
fi
|
||||||
if [ "${LIBC_SUPPORT}" = "WASI" ]; then
|
if [ "${LIBC_SUPPORT}" = "WASI" ]; then
|
||||||
echo "using wasi toolchain"
|
echo "using wasi toolchain"
|
||||||
cmake .. $CMAKE_DEXTRA_SDK_INCLUDE_PATH -DWAMR_BUILD_SDK_PROFILE=${PROFILE} -DCONFIG_PATH=${wamr_config_cmake_file} -DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake
|
cmake .. $CMAKE_DEXTRA_SDK_INCLUDE_PATH -DWAMR_BUILD_SDK_PROFILE=${PROFILE} -DCONFIG_PATH=${wamr_config_cmake_file} -DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake
|
||||||
|
@ -396,8 +176,8 @@ else
|
||||||
cmake .. $CMAKE_DEXTRA_SDK_INCLUDE_PATH -DWAMR_BUILD_SDK_PROFILE=${PROFILE} -DCONFIG_PATH=${wamr_config_cmake_file} -DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake
|
cmake .. $CMAKE_DEXTRA_SDK_INCLUDE_PATH -DWAMR_BUILD_SDK_PROFILE=${PROFILE} -DCONFIG_PATH=${wamr_config_cmake_file} -DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake
|
||||||
fi
|
fi
|
||||||
[ $? -eq 0 ] || exit $?
|
[ $? -eq 0 ] || exit $?
|
||||||
make
|
|
||||||
|
|
||||||
|
make
|
||||||
if (( $? == 0 )); then
|
if (( $? == 0 )); then
|
||||||
echo -e "\033[32mSuccessfully built app-sdk under ${curr_profile_dir}/app-sdk\033[0m"
|
echo -e "\033[32mSuccessfully built app-sdk under ${curr_profile_dir}/app-sdk\033[0m"
|
||||||
else
|
else
|
||||||
|
@ -407,8 +187,10 @@ fi
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -fr build
|
rm -fr build
|
||||||
|
|
||||||
echo -e "\n\n"
|
echo -e "\n\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "############## Start to build runtime sdk ###############"
|
echo "############## Start to build runtime sdk ###############"
|
||||||
cd ${sdk_root}/runtime
|
cd ${sdk_root}/runtime
|
||||||
rm -fr build_runtime_sdk && mkdir build_runtime_sdk
|
rm -fr build_runtime_sdk && mkdir build_runtime_sdk
|
||||||
|
@ -424,21 +206,15 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ..
|
APP=`grep WAMR_BUILD_APP_FRAMEWORK ${wamr_config_cmake_file} |grep 1`
|
||||||
rm -fr build_runtime_sdk
|
if [ -n "$APP" ]; then
|
||||||
|
|
||||||
if [ "$APP" = "TRUE" ]; then
|
|
||||||
# Generate defined-symbol list for app-sdk
|
# Generate defined-symbol list for app-sdk
|
||||||
cd ${wamr_app_out_dir}/share
|
cd ${wamr_app_out_dir}/share
|
||||||
cat ${curr_profile_dir}/runtime-sdk/include/*.inl | egrep "^ *EXPORT_WASM_API *[(] *[a-zA-Z_][a-zA-Z0-9_]* *?[)]" | cut -d '(' -f2 | cut -d ')' -f1 > defined-symbols.txt
|
cat ${curr_profile_dir}/runtime-sdk/include/*.inl | egrep "^ *EXPORT_WASM_API *[(] *[a-zA-Z_][a-zA-Z0-9_]* *?[)]" | cut -d '(' -f2 | cut -d ')' -f1 > defined-symbols.txt
|
||||||
echo "wasm_register_resource" >> defined-symbols.txt
|
|
||||||
echo "wasm_response_send" >> defined-symbols.txt
|
|
||||||
echo "wasm_post_request" >> defined-symbols.txt
|
|
||||||
echo "wasm_sub_event" >> defined-symbols.txt
|
|
||||||
echo "wasm_create_timer" >> defined-symbols.txt
|
|
||||||
echo "wasm_timer_destroy" >> defined-symbols.txt
|
|
||||||
echo "wasm_timer_cancel" >> defined-symbols.txt
|
|
||||||
echo "wasm_timer_restart" >> defined-symbols.txt
|
|
||||||
echo "wasm_get_sys_tick_ms" >> defined-symbols.txt
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -fr build_runtime_sdk
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
|
@ -3,6 +3,118 @@
|
||||||
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
|
|
||||||
|
usage ()
|
||||||
|
{
|
||||||
|
echo "menuconfig.sh [options]"
|
||||||
|
echo " -x [config file path name]"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while getopts "x:" opt
|
||||||
|
do
|
||||||
|
case $opt in
|
||||||
|
x)
|
||||||
|
wamr_config_cmake_file=$OPTARG
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
echo "Unknown arg: $arg"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function set_build_target () {
|
||||||
|
target=$1
|
||||||
|
|
||||||
|
if [[ "${target}" = "X86_64" ]]; then
|
||||||
|
echo -e "set (WAMR_BUILD_TARGET \"X86_64\")" >> ${wamr_config_cmake_file}
|
||||||
|
elif [[ "${target}" = "X86_32" ]]; then
|
||||||
|
echo -e "set (WAMR_BUILD_TARGET \"X86_32\")" >> ${wamr_config_cmake_file}
|
||||||
|
else
|
||||||
|
echo "unknown build target."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_build_platform () {
|
||||||
|
platform=$1
|
||||||
|
|
||||||
|
if [[ "${platform}" = "linux" ]]; then
|
||||||
|
echo -e "set (WAMR_BUILD_PLATFORM \"linux\")" >> ${wamr_config_cmake_file}
|
||||||
|
# TODO: add other platforms
|
||||||
|
else
|
||||||
|
echo "${platform} platform currently not supported"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# input: array of selected exec modes [aot jit interp]
|
||||||
|
function set_exec_mode () {
|
||||||
|
modes=($1)
|
||||||
|
|
||||||
|
for mode in ${modes[@]}
|
||||||
|
do
|
||||||
|
if [[ "$mode" = "aot" ]]; then
|
||||||
|
echo "set (WAMR_BUILD_AOT 1)" >> ${wamr_config_cmake_file}
|
||||||
|
elif [[ "$mode" = "jit" ]]; then
|
||||||
|
echo "set (WAMR_BUILD_JIT 1)" >> ${wamr_config_cmake_file}
|
||||||
|
BUILD_LLVM="TRUE"
|
||||||
|
elif [[ "$mode" = "interp" ]]; then
|
||||||
|
echo "set (WAMR_BUILD_INTERP 1)" >> ${wamr_config_cmake_file}
|
||||||
|
else
|
||||||
|
echo "unknown execute mode."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_libc_support () {
|
||||||
|
libc=$1
|
||||||
|
|
||||||
|
if [ "$libc" = "WASI" ]; then
|
||||||
|
echo "set (WAMR_BUILD_LIBC_WASI 1)" >> ${wamr_config_cmake_file}
|
||||||
|
else
|
||||||
|
echo "set (WAMR_BUILD_LIBC_BUILTIN 1)" >> ${wamr_config_cmake_file}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_app_framework () {
|
||||||
|
app_support=$1
|
||||||
|
|
||||||
|
if [ "$app_support" = "TRUE" ]; then
|
||||||
|
echo "set (WAMR_BUILD_APP_FRAMEWORK 1)" >> ${wamr_config_cmake_file}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# input: array of selected app modules
|
||||||
|
function set_app_module () {
|
||||||
|
modules=($1)
|
||||||
|
|
||||||
|
for module in ${modules[*]}
|
||||||
|
do
|
||||||
|
if [ "${module}" = "all" ]; then
|
||||||
|
cmake_app_list="WAMR_APP_BUILD_ALL"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake_app_list="${cmake_app_list} WAMR_APP_BUILD_${module^^}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# APP module list
|
||||||
|
if [ -n "${cmake_app_list}" ]; then
|
||||||
|
echo "set (WAMR_BUILD_APP_LIST ${cmake_app_list# })" >> ${wamr_config_cmake_file}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sdk_root=$(cd "$(dirname "$0")/" && pwd)
|
sdk_root=$(cd "$(dirname "$0")/" && pwd)
|
||||||
wamr_root=${sdk_root}/..
|
wamr_root=${sdk_root}/..
|
||||||
|
|
||||||
|
@ -28,96 +140,80 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
menuconfig Kconfig
|
menuconfig Kconfig
|
||||||
|
[ $? -eq 0 ] || exit $?
|
||||||
|
|
||||||
if [ ! -e ".config" ]; then
|
if [ ! -e ".config" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# parse platform
|
||||||
args=""
|
|
||||||
function args_add_bool()
|
|
||||||
{
|
|
||||||
args="${args} -$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function args_add_one()
|
|
||||||
{
|
|
||||||
args="${args} -$1 $2"
|
|
||||||
}
|
|
||||||
|
|
||||||
function args_add_array()
|
|
||||||
{
|
|
||||||
args="${args} -$1 ${2#,}"
|
|
||||||
}
|
|
||||||
|
|
||||||
profile=`cat .config | grep "^CONFIG_WAMR_SDK_PROFILE"`
|
|
||||||
profile=${profile#CONFIG_WAMR_SDK_PROFILE=\"}
|
|
||||||
profile=${profile%*\"}
|
|
||||||
args_add_one n ${profile}
|
|
||||||
|
|
||||||
platform=`cat .config | grep "^CONFIG_PLATFORM"`
|
platform=`cat .config | grep "^CONFIG_PLATFORM"`
|
||||||
platform=${platform%*=y}
|
platform=${platform%*=y}
|
||||||
platform=${platform,,}
|
platform=${platform,,}
|
||||||
platform=${platform#config_platform_}
|
platform=${platform#config_platform_}
|
||||||
if [ -n "${platform}" ]; then
|
|
||||||
args_add_one p ${platform#config_platform_}
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# parse target
|
||||||
target=`cat .config | grep "^CONFIG_TARGET"`
|
target=`cat .config | grep "^CONFIG_TARGET"`
|
||||||
target=${target%*=y}
|
target=${target%*=y}
|
||||||
target=${target#CONFIG_TARGET_}
|
target=${target#CONFIG_TARGET_}
|
||||||
if [ -n "${target}" ]; then
|
|
||||||
args_add_one t ${target#CONFIG_TARGET_}
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
# parse execution mode
|
||||||
modes=`cat .config | grep "^CONFIG_EXEC"`
|
modes=`cat .config | grep "^CONFIG_EXEC"`
|
||||||
arg_mode=""
|
mode_list=""
|
||||||
for mode in ${modes}
|
for mode in ${modes}
|
||||||
do
|
do
|
||||||
mode=${mode%*=y}
|
mode=${mode%*=y}
|
||||||
mode=${mode#CONFIG_EXEC_}
|
mode=${mode#CONFIG_EXEC_}
|
||||||
arg_mode="${arg_mode},${mode,,}"
|
mode_list="${mode_list} ${mode,,}"
|
||||||
done
|
done
|
||||||
if [ -z "${arg_mode}" ]; then
|
if [ -z "${mode_list}" ]; then
|
||||||
echo "execution mode are not selected"
|
echo "execution mode are not selected"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
args_add_array m "${arg_mode}"
|
|
||||||
|
|
||||||
|
# parse libc support
|
||||||
libc=`cat .config | grep "^CONFIG_LIBC"`
|
libc=`cat .config | grep "^CONFIG_LIBC"`
|
||||||
libc=${libc%*=y}
|
libc=${libc%*=y}
|
||||||
if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then
|
if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then
|
||||||
args_add_bool w
|
libc_support="WASI"
|
||||||
|
else
|
||||||
|
libc_support="BUILTIN"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
app_en=`cat .config | grep "^CONFIG_APP_FRAMEWORK"`
|
# parse application framework options
|
||||||
app_en=${app_en%*=y}
|
app_option=`cat .config | grep "^CONFIG_APP_FRAMEWORK"`
|
||||||
app_en=${app_en,,}
|
app_option=${app_option%*=y}
|
||||||
if [ -n "${app_en}" ]; then
|
app_option=${app_option#CONFIG_APP_FRAMEWORK_}
|
||||||
args_add_bool a
|
|
||||||
fi
|
|
||||||
|
|
||||||
apps=`cat .config | grep "^CONFIG_APP_BUILD"`
|
if [ "${app_option}" != "DISABLE" ]; then
|
||||||
arg_app=""
|
app_enable="TRUE"
|
||||||
for app in ${apps}
|
|
||||||
|
# Default components
|
||||||
|
if [ "${app_option}" = "DEFAULT" ]; then
|
||||||
|
app_list="base connection sensor"
|
||||||
|
# All components
|
||||||
|
elif [ "${app_option}" = "ALL" ]; then
|
||||||
|
app_list="all"
|
||||||
|
# Customize
|
||||||
|
elif [ "${app_option}" = "CUSTOM" ]; then
|
||||||
|
app_option=`cat .config | grep "^CONFIG_APP_BUILD"`
|
||||||
|
app_list="base"
|
||||||
|
for app in ${app_option}
|
||||||
do
|
do
|
||||||
app=${app%*=y}
|
app=${app%*=y}
|
||||||
app=${app#CONFIG_APP_BUILD_}
|
app=${app#CONFIG_APP_BUILD_}
|
||||||
arg_app="${arg_app},${app,,}"
|
app_list="${app_list} ${app,,}"
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
if [ -n "${app_en}" ]; then
|
|
||||||
arg_app="${arg_app},base"
|
|
||||||
args_add_array l "${arg_app}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
extra_path=`cat .config | grep "^CONFIG_EXTRA_INCLUDE_PATH"`
|
if [[ -f $wamr_config_cmake_file ]]; then
|
||||||
if [ -n "${extra_path}" ]; then
|
rm $wamr_config_cmake_file
|
||||||
extra_path=${extra_path#CONFIG_EXTRA_INCLUDE_PATH=\"}
|
|
||||||
extra_path=${extra_path%*\"}
|
|
||||||
args_add_one e ${extra_path}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
args="-g ${args}"
|
set_build_target ${target}
|
||||||
./build_sdk.sh ${args}
|
set_build_platform ${platform}
|
||||||
|
set_exec_mode "${mode_list[*]}"
|
||||||
|
set_libc_support ${libc_support}
|
||||||
|
set_app_module "${app_list[*]}"
|
||||||
|
set_app_framework ${app_enable}
|
||||||
|
|
|
@ -7,3 +7,6 @@ set (WAMR_BUILD_LIBC_BUILTIN 1)
|
||||||
set (WAMR_BUILD_LIBC_WASI 0)
|
set (WAMR_BUILD_LIBC_WASI 0)
|
||||||
set (WAMR_BUILD_APP_FRAMEWORK 1)
|
set (WAMR_BUILD_APP_FRAMEWORK 1)
|
||||||
set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE)
|
set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE)
|
||||||
|
|
||||||
|
#
|
||||||
|
# set (EXTRA_SDK_INCLUDE_PATH "")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user