xref: /llvm-project/libc/src/__support/threads/CMakeLists.txt (revision 301db3dee53b5afbc9813c5fcd3cce25a0655f5f)
1c236b41eSSiva Chandra Reddyadd_header_library(
2c236b41eSSiva Chandra Reddy  mutex_common
3c236b41eSSiva Chandra Reddy  HDRS
4c236b41eSSiva Chandra Reddy    mutex_common.h
5c236b41eSSiva Chandra Reddy)
6c236b41eSSiva Chandra Reddy
77789fb66SJoseph Huberadd_header_library(
87789fb66SJoseph Huber  sleep
97789fb66SJoseph Huber  HDRS
107789fb66SJoseph Huber    sleep.h
117789fb66SJoseph Huber)
127789fb66SJoseph Huber
13408a351dSSchrodinger ZHU Yifanadd_header_library(
14408a351dSSchrodinger ZHU Yifan  spin_lock
15408a351dSSchrodinger ZHU Yifan  HDRS
16408a351dSSchrodinger ZHU Yifan    spin_lock.h
17408a351dSSchrodinger ZHU Yifan  DEPENDS
18408a351dSSchrodinger ZHU Yifan    .sleep
19408a351dSSchrodinger ZHU Yifan    libc.src.__support.CPP.atomic
20408a351dSSchrodinger ZHU Yifan)
21408a351dSSchrodinger ZHU Yifan
22a5ee8183SSiva Chandra Reddyif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
23a5ee8183SSiva Chandra Reddy  add_subdirectory(${LIBC_TARGET_OS})
24a5ee8183SSiva Chandra Reddyendif()
25a5ee8183SSiva Chandra Reddy
26c236b41eSSiva Chandra Reddyif(TARGET libc.src.__support.threads.${LIBC_TARGET_OS}.mutex)
27a5ee8183SSiva Chandra Reddy  add_header_library(
28c236b41eSSiva Chandra Reddy    mutex
29a5ee8183SSiva Chandra Reddy    HDRS
30a5ee8183SSiva Chandra Reddy      mutex.h
311ceb0079SSiva Chandra Reddy    DEPENDS
32c236b41eSSiva Chandra Reddy      .${LIBC_TARGET_OS}.mutex
33a5ee8183SSiva Chandra Reddy  )
344d25761bSMichael Jones
354d25761bSMichael Jones  add_object_library(
364d25761bSMichael Jones    fork_callbacks
374d25761bSMichael Jones    SRCS
384d25761bSMichael Jones      fork_callbacks.cpp
394d25761bSMichael Jones    HDRS
404d25761bSMichael Jones      fork_callbacks.h
414d25761bSMichael Jones    DEPENDS
424d25761bSMichael Jones      .mutex
43c4a3d184SVlad Mishel      libc.src.__support.CPP.mutex
444d25761bSMichael Jones  )
45c236b41eSSiva Chandra Reddyendif()
462ce09e68SSiva Chandra Reddy
479c78d925SSiva Chandra Reddyadd_header_library(
489c78d925SSiva Chandra Reddy  thread_common
499c78d925SSiva Chandra Reddy  HDRS
509c78d925SSiva Chandra Reddy    thread.h
519c78d925SSiva Chandra Reddy  DEPENDS
529c78d925SSiva Chandra Reddy    libc.src.__support.common
539c78d925SSiva Chandra Reddy    libc.src.__support.CPP.atomic
544a738ee8SSiva Chandra Reddy    libc.src.__support.CPP.optional
55658c84e4SSiva Chandra Reddy    libc.src.__support.CPP.string_view
56658c84e4SSiva Chandra Reddy    libc.src.__support.CPP.stringstream
579c78d925SSiva Chandra Reddy)
589c78d925SSiva Chandra Reddy
592ce09e68SSiva Chandra Reddyif(TARGET libc.src.__support.threads.${LIBC_TARGET_OS}.thread)
60fe801747SSiva Chandra Reddy  add_object_library(
612ce09e68SSiva Chandra Reddy    thread
62fe801747SSiva Chandra Reddy    SRCS
639c78d925SSiva Chandra Reddy      thread.cpp
642ce09e68SSiva Chandra Reddy    DEPENDS
650071a795SSiva Chandra Reddy      .mutex
669c78d925SSiva Chandra Reddy      .${LIBC_TARGET_OS}.thread
67daeee567SSiva Chandra Reddy      libc.src.__support.common
680071a795SSiva Chandra Reddy      libc.src.__support.fixedvector
694a738ee8SSiva Chandra Reddy      libc.src.__support.CPP.array
70c4a3d184SVlad Mishel      libc.src.__support.CPP.mutex
714a738ee8SSiva Chandra Reddy      libc.src.__support.CPP.optional
722ce09e68SSiva Chandra Reddy  )
732ce09e68SSiva Chandra Reddyendif()
7433675390SSiva Chandra Reddy
75772e37f8SSiva Chandra Reddyif(TARGET libc.src.__support.threads.${LIBC_TARGET_OS}.callonce)
7633675390SSiva Chandra Reddy  add_object_library(
7733675390SSiva Chandra Reddy    callonce
78772e37f8SSiva Chandra Reddy    ALIAS
7933675390SSiva Chandra Reddy    DEPENDS
80772e37f8SSiva Chandra Reddy      .${LIBC_TARGET_OS}.callonce
8133675390SSiva Chandra Reddy  )
8233675390SSiva Chandra Reddyendif()
835442e15aSNick Desaulniers (paternity leave)
845442e15aSNick Desaulniers (paternity leave)if(TARGET libc.src.__support.threads.${LIBC_TARGET_OS}.CndVar)
855442e15aSNick Desaulniers (paternity leave)  add_object_library(
865442e15aSNick Desaulniers (paternity leave)    CndVar
875442e15aSNick Desaulniers (paternity leave)    ALIAS
885442e15aSNick Desaulniers (paternity leave)    DEPENDS
895442e15aSNick Desaulniers (paternity leave)    .${LIBC_TARGET_OS}.CndVar
905442e15aSNick Desaulniers (paternity leave)  )
915442e15aSNick Desaulniers (paternity leave)endif()
92*301db3deSSchrodinger ZHU Yifan
93*301db3deSSchrodinger ZHU Yifanif (LLVM_LIBC_FULL_BUILD)
94*301db3deSSchrodinger ZHU Yifan  set(identifier_dependency_on_thread libc.src.__support.threads.thread)
95*301db3deSSchrodinger ZHU Yifanendif()
96*301db3deSSchrodinger ZHU Yifan
97*301db3deSSchrodinger ZHU Yifanadd_header_library(
98*301db3deSSchrodinger ZHU Yifan  identifier
99*301db3deSSchrodinger ZHU Yifan  HDRS
100*301db3deSSchrodinger ZHU Yifan    identifier.h
101*301db3deSSchrodinger ZHU Yifan  DEPENDS
102*301db3deSSchrodinger ZHU Yifan    libc.src.__support.OSUtil.osutil
103*301db3deSSchrodinger ZHU Yifan    libc.src.__support.common
104*301db3deSSchrodinger ZHU Yifan    libc.include.sys_syscall
105*301db3deSSchrodinger ZHU Yifan    libc.hdr.types.pid_t
106*301db3deSSchrodinger ZHU Yifan    ${identifier_dependency_on_thread}
107*301db3deSSchrodinger ZHU Yifan)
108