@@ -14,9 +14,21 @@ fn main() {
14
14
let wamr_root = wamr_root. join ( "wasm-micro-runtime" ) ;
15
15
assert ! ( wamr_root. exists( ) ) ;
16
16
17
- let no_espidf = env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) != "espidf" ;
17
+ println ! ( "cargo:rerun-if-env-changed=WAMR_BUILD_PLATFORM" ) ;
18
+ println ! ( "cargo:rerun-if-env-changed=WAMR_SHARED_PLATFORM_CONFIG" ) ;
19
+ println ! ( "cargo:rerun-if-env-changed=CARGO_FEATURE_ESP_IDF" ) ;
20
+
21
+ let is_espidf = env:: var ( "CARGO_FEATURE_ESP_IDF" ) . is_ok ( )
22
+ && env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) == "espidf" ;
23
+
24
+ if is_espidf
25
+ && ( env:: var ( "WAMR_BUILD_PLATFORM" ) . is_ok ( )
26
+ || env:: var ( "WAMR_SHARED_PLATFORM_CONFIG" ) . is_ok ( ) )
27
+ {
28
+ panic ! ( "ESP-IDF build cannot use custom platform build (WAMR_BUILD_PLATFORM) or shared platform config (WAMR_SHARED_PLATFORM_CONFIG)" ) ;
29
+ }
18
30
// because the ESP-IDF build procedure differs from the regular one (build internally by esp-idf-sys),
19
- if no_espidf {
31
+ else {
20
32
let enable_custom_section = if cfg ! ( feature = "custom-section" ) {
21
33
"1"
22
34
} else {
@@ -63,6 +75,15 @@ fn main() {
63
75
. define ( "WAMR_BUILD_CUSTOM_NAME_SECTION" , enable_name_section)
64
76
. define ( "WAMR_BUILD_LOAD_CUSTOM_SECTION" , enable_custom_section) ;
65
77
78
+ if let Ok ( platform_name) = env:: var ( "WAMR_BUILD_PLATFORM" ) {
79
+ cfg. define ( "WAMR_BUILD_PLATFORM" , & platform_name) ;
80
+ }
81
+
82
+ if let Ok ( platform_config) = env:: var ( "WAMR_SHARED_PLATFORM_CONFIG" ) {
83
+ cfg. define ( "SHARED_PLATFORM_CONFIG" , & platform_config) ;
84
+ println ! ( "cargo:rerun-if-changed={}" , platform_config) ;
85
+ }
86
+
66
87
// support STDIN/STDOUT/STDERR redirect.
67
88
cfg = match env:: var ( "WAMR_BH_VPRINTF" ) {
68
89
Ok ( bh_vprintf) => match bh_vprintf. len ( ) {
0 commit comments