mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-28 05:08:23 +08:00
43 lines
1.3 KiB
CMake
43 lines
1.3 KiB
CMake
set(COMPONENT_SRCDIRS newlib/port)
|
|
set(COMPONENT_ADD_INCLUDEDIRS newlib/port/include newlib/include)
|
|
|
|
|
|
if(CONFIG_NEWLIB_LIBRARY_LEVEL_NANO)
|
|
set(LIBC c_nano)
|
|
elseif(CONFIG_NEWLIB_LIBRARY_LEVEL_NORMAL)
|
|
set(LIBC c)
|
|
elseif(CONFIG_NEWLIB_LIBRARY_LEVEL_FLOAT_NANO)
|
|
set(LIBC c_fnano)
|
|
endif()
|
|
|
|
set(LIBM m)
|
|
|
|
set(COMPONENT_PRIV_REQUIRES "vfs" "lwip") # for sys/ioctl.h
|
|
|
|
register_component()
|
|
|
|
if(CONFIG_NEWLIB_LIBRARY_LEVEL_FLOAT_NANO)
|
|
target_link_libraries(${COMPONENT_LIB} PUBLIC "-u _printf_float" "-u _scanf_float")
|
|
endif()
|
|
|
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC
|
|
-D_CLOCKS_PER_SEC_=CONFIG_FREERTOS_HZ -D_POSIX_THREADS=1 -D_UNIX98_THREAD_MUTEX_ATTRIBUTES=1
|
|
)
|
|
|
|
target_link_libraries(${COMPONENT_LIB} PUBLIC "-L ${CMAKE_CURRENT_SOURCE_DIR}/newlib/lib")
|
|
|
|
set(blobs "${LIBC}" "${LIBM}")
|
|
foreach(blob ${blobs})
|
|
add_library(${blob} STATIC IMPORTED)
|
|
set_property(TARGET ${blob} PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/newlib/lib/lib${blob}.a)
|
|
target_link_libraries(${COMPONENT_LIB} PUBLIC ${blob})
|
|
|
|
foreach(_blob ${blobs})
|
|
if(NOT _blob STREQUAL ${blob})
|
|
set_property(TARGET ${blob} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_blob})
|
|
endif()
|
|
endforeach()
|
|
|
|
set_property(TARGET ${blob} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${COMPONENT_LIB})
|
|
endforeach()
|