mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
4d629be602
* Users can now use libbsd string.h and sys/cdefs.h functionality (e.g., strlcpy, containerof) on Linux by just including string.h or sys/cdefs.h. In other words, the includes are the same on the Linux target as well as on chips targets (ESP32, etc.). * libbsd linking is done by the linux component (belongs to common components) now instead of handling it separately in each component
36 lines
1.4 KiB
CMake
36 lines
1.4 KiB
CMake
set(srcs "partition.c")
|
|
set(priv_reqs esp_system bootloader_support spi_flash app_update partition_table)
|
|
set(reqs)
|
|
set(include_dirs "include")
|
|
|
|
idf_build_get_property(build_dir BUILD_DIR)
|
|
idf_build_get_property(target IDF_TARGET)
|
|
if(${target} STREQUAL "linux")
|
|
list(APPEND srcs "partition_linux.c")
|
|
set(priv_reqs partition_table)
|
|
|
|
# Steal some include directories from bootloader_support hal and spi_flash components:
|
|
idf_component_get_property(hal_dir hal COMPONENT_DIR)
|
|
idf_component_get_property(bootloader_support_dir bootloader_support COMPONENT_DIR)
|
|
idf_component_get_property(spi_flash_dir spi_flash COMPONENT_DIR)
|
|
list(APPEND include_dirs include ${hal_dir}/include ${bootloader_support_dir}/include ${spi_flash_dir}/include)
|
|
else()
|
|
list(APPEND srcs "partition_target.c")
|
|
endif()
|
|
|
|
idf_component_register(SRCS "${srcs}"
|
|
INCLUDE_DIRS ${include_dirs}
|
|
REQUIRES ${reqs}
|
|
PRIV_REQUIRES ${priv_reqs})
|
|
|
|
if(${target} STREQUAL "linux")
|
|
# set BUILD_DIR because partition_linux.c uses a file created in the build directory
|
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE "BUILD_DIR=\"${build_dir}\"")
|
|
endif()
|
|
|
|
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
|
|
# These flags are GCC specific
|
|
set_property(SOURCE ${cache_srcs} APPEND_STRING PROPERTY COMPILE_FLAGS
|
|
" -fno-inline-small-functions -fno-inline-functions-called-once")
|
|
endif()
|