Update esp-idf build script // Issue #91, #125

This commit is contained in:
valeros
2018-09-27 22:33:50 +03:00
parent b0eb2ab877
commit bcfc6a4913
+68 -37
View File
@@ -82,6 +82,10 @@ def build_component(path):
CPPPATH=[join(path, d) for d in inc_dirs])
if params.get("CFLAGS"):
envsafe.Append(CCFLAGS=params.get("CFLAGS"))
if params.get("COMPONENT_OBJEXCLUDE"):
src_filter = "+<*>"
for f in params.get("COMPONENT_OBJEXCLUDE"):
src_filter += " -<%s>" % f.replace(".o", ".c")
if params.get("COMPONENT_OBJS"):
src_filter = "-<*>"
for f in params.get("COMPONENT_OBJS"):
@@ -137,33 +141,34 @@ def build_espidf_bootloader():
envsafe.Append(
CPPPATH=[
join(FRAMEWORK_DIR, "components", "esp32")
join(FRAMEWORK_DIR, "components", "esp32"),
join(FRAMEWORK_DIR, "components", "bootloader_support", "include_priv")
]
)
envsafe.Replace(
LIBS=[
envsafe.BuildLibrary(
join("$BUILD_DIR", "bootloaderSupport"),
join("$BUILD_DIR", "bootloader", "bootloader_support"),
join(FRAMEWORK_DIR, "components", "bootloader_support"),
src_filter="+<*> -<test>"
),
envsafe.BuildLibrary(
join("$BUILD_DIR", "bootloaderLog"),
join("$BUILD_DIR", "bootloader", "log"),
join(FRAMEWORK_DIR, "components", "log")
),
envsafe.BuildLibrary(
join("$BUILD_DIR", "bootloaderSPIFlash"),
join("$BUILD_DIR", "bootloader", "spi_flash"),
join(FRAMEWORK_DIR, "components", "spi_flash"),
src_filter="-<*> +<spi_flash_rom_patch.c>"
),
envsafe.BuildLibrary(
join("$BUILD_DIR", "bootloaderMicroEcc"),
join("$BUILD_DIR", "bootloader", "micro-ecc"),
join(FRAMEWORK_DIR, "components", "micro-ecc"),
src_filter="+<*> -<micro-ecc/test>"
),
envsafe.BuildLibrary(
join("$BUILD_DIR", "bootloaderSoc"),
join("$BUILD_DIR", "bootloader", "soc"),
join(FRAMEWORK_DIR, "components", "soc"),
src_filter="+<*> -<test> -<esp32/test>"
),
@@ -182,70 +187,67 @@ def build_espidf_bootloader():
env.Prepend(
CPPPATH=[
join("$PROJECTSRC_DIR"),
join(FRAMEWORK_DIR, "components", "app_trace", "include"),
join(FRAMEWORK_DIR, "components", "app_update", "include"),
join(FRAMEWORK_DIR, "components", "aws_iot", "include"),
join(FRAMEWORK_DIR, "components", "aws_iot",
"aws-iot-device-sdk-embedded-C", "include"),
join(FRAMEWORK_DIR, "components", "app_trace", "include"),
join(FRAMEWORK_DIR, "components", "app_update", "include"),
join(FRAMEWORK_DIR, "components", "xtensa-debug-module", "include"),
join(FRAMEWORK_DIR, "components", "bootloader_support", "include"),
join(FRAMEWORK_DIR, "components",
"bootloader_support", "include_priv"),
join(FRAMEWORK_DIR, "components", "bt", "include"),
join(FRAMEWORK_DIR, "components", "bt", "bluedroid", "api", "include", "api"),
join(FRAMEWORK_DIR, "components", "coap", "port", "include"),
join(FRAMEWORK_DIR, "components", "coap", "port", "include", "coap"),
join(FRAMEWORK_DIR, "components", "coap", "libcoap", "include"),
join(FRAMEWORK_DIR, "components", "coap",
"libcoap", "include", "coap"),
join(FRAMEWORK_DIR, "components", "console"),
join(FRAMEWORK_DIR, "components", "cxx", "include"),
join(FRAMEWORK_DIR, "components", "driver", "include"),
join(FRAMEWORK_DIR, "components", "driver", "include", "driver"),
join(FRAMEWORK_DIR, "components", "esp-tls"),
join(FRAMEWORK_DIR, "components", "esp_adc_cal", "include"),
join(FRAMEWORK_DIR, "components", "esp_http_client", "include"),
join(FRAMEWORK_DIR, "components", "esp_https_ota", "include"),
join(FRAMEWORK_DIR, "components", "esp32", "include"),
join(FRAMEWORK_DIR, "components", "ethernet", "include"),
join(FRAMEWORK_DIR, "components", "expat", "include", "expat"),
join(FRAMEWORK_DIR, "components", "expat", "port", "include"),
join(FRAMEWORK_DIR, "components", "expat", "include", "expat"),
join(FRAMEWORK_DIR, "components", "fatfs", "src"),
join(FRAMEWORK_DIR, "components", "freertos", "include"),
join(FRAMEWORK_DIR, "components", "heap", "include"),
join(FRAMEWORK_DIR, "components", "jsmn", "include"),
join(FRAMEWORK_DIR, "components", "json", "include"),
join(FRAMEWORK_DIR, "components", "json", "port", "include"),
join(FRAMEWORK_DIR, "components", "json", "cJSON"),
join(FRAMEWORK_DIR, "components", "libsodium", "libsodium", "src",
"libsodium", "include"),
join(FRAMEWORK_DIR, "components", "libsodium", "libsodium", "src",
"libsodium", "include", "sodium"),
join(FRAMEWORK_DIR, "components", "libsodium", "port_include"),
join(FRAMEWORK_DIR, "components", "log", "include"),
join(FRAMEWORK_DIR, "components", "lwip", "include", "lwip"),
join(FRAMEWORK_DIR, "components", "lwip", "include", "lwip", "port"),
join(FRAMEWORK_DIR, "components", "lwip", "include", "lwip", "posix"),
join(FRAMEWORK_DIR, "components", "lwip", "apps", "ping"),
join("$PROJECTSRC_DIR"),
join(FRAMEWORK_DIR, "components", "mbedtls", "port", "include"),
join(FRAMEWORK_DIR, "components", "mbedtls", "include"),
join(FRAMEWORK_DIR, "components", "mbedtls", "mbedtls", "include"),
join(FRAMEWORK_DIR, "components", "mdns", "include"),
join(FRAMEWORK_DIR, "components", "micro-ecc", "micro-ecc"),
join(FRAMEWORK_DIR, "components", "newlib", "include"),
join(FRAMEWORK_DIR, "components", "newlib", "platform_include"),
join(FRAMEWORK_DIR, "components", "nghttp", "include"),
join(FRAMEWORK_DIR, "components", "newlib", "include"),
join(FRAMEWORK_DIR, "components", "nghttp", "nghttp2", "lib", "includes"),
join(FRAMEWORK_DIR, "components", "nghttp", "port", "include"),
join(FRAMEWORK_DIR, "components", "nvs_flash", "include"),
join(FRAMEWORK_DIR, "components", "openssl", "include"),
join(FRAMEWORK_DIR, "components", "openssl", "include", "internal"),
join(FRAMEWORK_DIR, "components", "openssl", "include", "platform"),
join(FRAMEWORK_DIR, "components", "openssl", "include", "openssl"),
join(FRAMEWORK_DIR, "components", "pthread", "include"),
join(FRAMEWORK_DIR, "components", "sdmmc", "include"),
join(FRAMEWORK_DIR, "components", "smartconfig_ack", "include"),
join(FRAMEWORK_DIR, "components", "soc", "esp32", "include"),
join(FRAMEWORK_DIR, "components", "soc", "include"),
join(FRAMEWORK_DIR, "components", "spi_flash", "include"),
join(FRAMEWORK_DIR, "components", "spiffs", "include"),
join(FRAMEWORK_DIR, "components", "tcpip_adapter", "include"),
join(FRAMEWORK_DIR, "components", "soc", "esp32", "include"),
join(FRAMEWORK_DIR, "components", "soc", "include"),
join(FRAMEWORK_DIR, "components", "heap", "include"),
join(FRAMEWORK_DIR, "components", "ulp", "include"),
join(FRAMEWORK_DIR, "components", "vfs", "include"),
join(FRAMEWORK_DIR, "components", "wear_levelling", "include"),
join(FRAMEWORK_DIR, "components", "wpa_supplicant", "include"),
join(FRAMEWORK_DIR, "components", "wpa_supplicant", "port", "include")
join(FRAMEWORK_DIR, "components", "wpa_supplicant", "port", "include"),
join(FRAMEWORK_DIR, "components", "xtensa-debug-module", "include")
],
LIBPATH=[
@@ -259,7 +261,8 @@ env.Prepend(
LIBS=[
"btdm_app", "hal", "coexist", "core", "net80211", "phy", "rtc", "pp",
"wpa", "wpa2", "espnow", "wps", "smartconfig", "m", "c", "gcc", "stdc++"
"wpa", "wpa2", "espnow", "wps", "smartconfig", "mesh", "c", "m",
"gcc", "stdc++"
]
)
@@ -280,7 +283,6 @@ env.Prepend(
],
CCFLAGS=[
"-Wall",
"-Werror=all",
"-Wno-error=deprecated-declarations",
"-Wextra",
@@ -299,6 +301,7 @@ env.Append(
"-T", "esp32.common.ld",
"-T", "esp32.rom.ld",
"-T", "esp32.peripherals.ld",
"-T", "esp32.rom.libgcc.ld",
"-T", "esp32.rom.spiram_incompatible_fns.ld"
],
@@ -332,6 +335,13 @@ if "PIO_FRAMEWORK_ESP_IDF_ENABLE_EXCEPTIONS" in env.Flatten(
else:
env.Append(LINKFLAGS=["-u", "__cxx_fatal_exception"])
#
# ESP-IDF doesn't need assembler-with-cpp option
#
env.Replace(ASFLAGS=[])
#
# Handle missing sdkconfig.h
#
@@ -344,7 +354,7 @@ else:
is_new = False
with open(join(env.subst("$PROJECTSRC_DIR"), "sdkconfig.h")) as fp:
for l in fp.readlines():
if "CONFIG_AWS_IOT_SDK" in l:
if "CONFIG_PARTITION_TABLE_OFFSET" in l:
is_new = True
break
@@ -420,7 +430,8 @@ ignore_dirs = (
"nghttp",
"soc",
"spi_flash",
"libsodium"
"libsodium",
"wpa_supplicant"
)
for d in listdir(join(FRAMEWORK_DIR, "components")):
@@ -435,7 +446,7 @@ for d in listdir(join(FRAMEWORK_DIR, "components")):
libs.append(env.BuildLibrary(
join("$BUILD_DIR", "spi_flash"),
join(FRAMEWORK_DIR, "components", "spi_flash"),
src_filter="+<*> -<test*>"
src_filter="+<*> -<test*> -<sim>"
))
libs.append(env.BuildLibrary(
@@ -467,13 +478,15 @@ envsafe = env.Clone()
envsafe.Prepend(
CPPDEFINES=[
"CONFIGURED", "NATIVE_LITTLE_ENDIAN", "HAVE_WEAK_SYMBOLS",
"__STDC_LIMIT_MACROS", "__STDC_CONSTANT_MACROS", "-DRANDOMBYTES_DEFAULT_IMPLEMENTATION"
"__STDC_LIMIT_MACROS", "__STDC_CONSTANT_MACROS",
"RANDOMBYTES_DEFAULT_IMPLEMENTATION"
],
CCFLAGS=["-Wno-type-limits", "-Wno-unknown-pragmas"],
CPPPATH=[
join(FRAMEWORK_DIR, "components", "libsodium", "port"),
join(FRAMEWORK_DIR, "components", "libsodium", "port_include",
"sodium")
join(FRAMEWORK_DIR, "components", "libsodium", "port_include", "sodium"),
join(FRAMEWORK_DIR, "components", "libsodium", "libsodium", "src",
"libsodium", "include", "sodium")
]
)
@@ -485,4 +498,22 @@ libs.append(
)
)
envsafe = env.Clone()
envsafe.Prepend(
CPPDEFINES=[
"EMBEDDED_SUPP", "IEEE8021X_EAPOL", "EAP_PEER_METHOD", "EAP_MSCHAPv2",
"EAP_TTLS", "EAP_TLS", "EAP_PEAP", "USE_WPA2_TASK", "CONFIG_WPS2",
"CONFIG_WPS_PIN", "USE_WPS_TASK", "ESPRESSIF_USE", "ESP32_WORKAROUND",
"__ets__"
],
CCFLAGS=["-Wno-strict-aliasing"]
)
libs.append(
envsafe.BuildLibrary(
join("$BUILD_DIR", "wpa_supplicant"),
join(FRAMEWORK_DIR, "components", "wpa_supplicant")
)
)
env.Prepend(LIBS=libs)