2022-07-22 08:14:37 +00:00
|
|
|
idf_build_get_property(target IDF_TARGET)
|
|
|
|
if(${target} STREQUAL "linux")
|
|
|
|
# Make pthread component an empty interface lib referencing host pthread for Linux target
|
|
|
|
idf_component_register()
|
|
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE Threads::Threads)
|
|
|
|
return()
|
|
|
|
endif()
|
|
|
|
|
2021-08-27 05:00:10 +00:00
|
|
|
set(sources "pthread.c"
|
|
|
|
"pthread_cond_var.c"
|
|
|
|
"pthread_local_storage.c"
|
2023-02-28 11:11:12 +00:00
|
|
|
"pthread_rwlock.c"
|
|
|
|
"pthread_semaphore.c")
|
2021-08-27 05:00:10 +00:00
|
|
|
|
|
|
|
idf_component_register(SRCS ${sources}
|
2019-04-28 07:38:23 +00:00
|
|
|
INCLUDE_DIRS include)
|
2018-06-06 06:14:03 +00:00
|
|
|
|
2022-08-28 19:20:48 +00:00
|
|
|
idf_build_set_property(COMPILE_DEFINITIONS "_POSIX_READER_WRITER_LOCKS" APPEND)
|
2021-08-27 05:00:10 +00:00
|
|
|
|
2019-11-05 11:20:26 +00:00
|
|
|
set(extra_link_flags "-u pthread_include_pthread_impl")
|
2023-09-11 09:45:10 +00:00
|
|
|
list(APPEND extra_link_flags "-u pthread_include_pthread_cond_var_impl")
|
2019-11-05 11:20:26 +00:00
|
|
|
list(APPEND extra_link_flags "-u pthread_include_pthread_local_storage_impl")
|
2021-08-27 05:00:10 +00:00
|
|
|
list(APPEND extra_link_flags "-u pthread_include_pthread_rwlock_impl")
|
2023-02-28 11:11:12 +00:00
|
|
|
list(APPEND extra_link_flags "-u pthread_include_pthread_semaphore_impl")
|
2019-07-28 09:22:08 +00:00
|
|
|
|
|
|
|
if(extra_link_flags)
|
|
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE "${extra_link_flags}")
|
|
|
|
endif()
|