summaryrefslogtreecommitdiff
path: root/utility/rtos_compatibility_layers/posix/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'utility/rtos_compatibility_layers/posix/CMakeLists.txt')
-rw-r--r--utility/rtos_compatibility_layers/posix/CMakeLists.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/utility/rtos_compatibility_layers/posix/CMakeLists.txt b/utility/rtos_compatibility_layers/posix/CMakeLists.txt
new file mode 100644
index 00000000..8cf3ab9a
--- /dev/null
+++ b/utility/rtos_compatibility_layers/posix/CMakeLists.txt
@@ -0,0 +1,130 @@
+# POSIX compatibility layer for ThreadX.
+#
+# This target is EXCLUDE_FROM_ALL: it is not part of the default build and is
+# only produced when something asks for it, either by name or by linking it.
+#
+# The include directory is deliberately PUBLIC. The layer ships replacements for
+# errno.h, fcntl.h, pthread.h, sched.h, signal.h and time.h, and application code
+# has to see those rather than a toolchain's own copies. That is also why the
+# layer cannot be used on the hosted simulation ports, where the C library
+# already supplies them; the top-level CMakeLists.txt skips it there.
+
+add_library(posix-threadx EXCLUDE_FROM_ALL)
+
+target_include_directories(posix-threadx
+ SYSTEM
+ PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}
+)
+
+target_sources(posix-threadx
+ PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/px_abs_time_to_rel_ticks.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_clock_getres.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_clock_gettime.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_clock_settime.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_broadcast.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_destroy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_signal.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_timedwait.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_cond_wait.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_error.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_in_thread_context.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_internal_signal_dispatch.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_memory_allocate.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_memory_release.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_arrange_msg.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_attr_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_close.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_create.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_find_queue.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_get_new_queue.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_get_queue_desc.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_open.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_priority_search.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_putback_queue.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_queue_delete.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_queue_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_receive.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_reset_queue.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_send.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mq_unlink.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_destroy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_getprotocol.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_getpshared.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_gettype.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_initi.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_setprotocol.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_setpshared.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_attr_settype.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_destroy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_lock.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_set_default_mutexattr.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_timedlock.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_trylock.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_mx_unlock.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_nanosleep.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_destroy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getdetachstate.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getinheritsched.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getschedparam.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getschedpolicy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getstack.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getstackaddr.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_getstacksize.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setdetachstate.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setinheritsched.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setschedparam.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setschedpolicyl.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setstack.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setstackaddr.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_attr_setstacksize.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_cancel.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_create.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_detach.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_equal.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_exit.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_getcanceltype.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_getschedparam.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_join.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_kill.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_once.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_self.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_set_default_pthread_attr.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_setcancelstate.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_setcanceltype.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_setschedparam.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_sigmask.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_testcancel.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_pth_yield.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_px_initialize.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sched_get_prio.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sched_yield.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_close.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_destroy.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_find_sem.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_get_new_sem.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_getvalue.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_init.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_open.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_post.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_reset.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_set_sem_name.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_trywait.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_unlink.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sem_wait.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_addset.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_delset.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_emptyset.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_fillset.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_signal.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sig_wait.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_sleep.c
+ ${CMAKE_CURRENT_LIST_DIR}/px_system_manager.c
+)
+
+target_link_libraries(posix-threadx PUBLIC threadx)