xref: /llvm-project/libc/hdr/CMakeLists.txt (revision 7477b61b2416ca130bd3ed9bbc96988e5de17623)
1function(add_proxy_header_library target_name)
2  cmake_parse_arguments(
3    "ADD_PROXY_HEADER"
4    "" # Optional arguments
5    "" # Single value arguments
6    "DEPENDS;FULL_BUILD_DEPENDS" # Multi-value arguments
7    ${ARGN}
8  )
9
10  set(deps "")
11  if(ADD_PROXY_HEADER_DEPENDS)
12    list(APPEND deps ${ADD_PROXY_HEADER_DEPENDS})
13  endif()
14
15  if(LLVM_LIBC_FULL_BUILD AND ADD_PROXY_HEADER_FULL_BUILD_DEPENDS)
16    list(APPEND deps ${ADD_PROXY_HEADER_FULL_BUILD_DEPENDS})
17  endif()
18
19  add_header_library(
20    ${target_name}
21    ${ADD_PROXY_HEADER_UNPARSED_ARGUMENTS}
22    DEPENDS ${deps}
23  )
24endfunction()
25
26add_proxy_header_library(
27  math_macros
28  HDRS
29    math_macros.h
30  FULL_BUILD_DEPENDS
31    libc.include.llvm-libc-macros.math_macros
32    libc.include.math
33)
34
35add_proxy_header_library(
36  math_function_macros
37  HDRS
38    math_function_macros.h
39  FULL_BUILD_DEPENDS
40    libc.include.llvm-libc-macros.math_function_macros
41    libc.include.math
42)
43
44add_proxy_header_library(
45  errno_macros
46  HDRS
47    errno_macros.h
48  FULL_BUILD_DEPENDS
49    libc.include.errno
50    libc.include.llvm-libc-macros.error_number_macros
51    libc.include.llvm-libc-macros.generic_error_number_macros
52)
53
54add_header_library(fcntl_overlay HDRS fcntl_overlay.h)
55add_proxy_header_library(
56  fcntl_macros
57  HDRS
58    fcntl_macros.h
59  DEPENDS
60    .fcntl_overlay
61  FULL_BUILD_DEPENDS
62    libc.include.llvm-libc-macros.fcntl_macros
63    libc.include.fcntl
64)
65
66add_proxy_header_library(
67  fenv_macros
68  HDRS
69    fenv_macros.h
70  FULL_BUILD_DEPENDS
71    libc.include.llvm-libc-macros.fenv_macros
72    libc.include.fenv
73)
74
75add_proxy_header_library(
76  signal_macros
77  HDRS
78    signal_macros.h
79  FULL_BUILD_DEPENDS
80    libc.include.llvm-libc-macros.signal_macros
81    libc.include.signal
82)
83
84add_header_library(stdlib_overlay HDRS stdlib_overlay.h)
85
86add_proxy_header_library(
87  stdlib_macros
88  HDRS
89    stdlib_macros.h
90  DEPENDS
91    .stdlib_overlay
92  FULL_BUILD_DEPENDS
93    libc.include.stdlib
94    libc.include.llvm-libc-macros.stdlib_macros
95)
96
97add_header_library(stdio_overlay HDRS stdio_overlay.h)
98
99add_proxy_header_library(
100  stdio_macros
101  HDRS
102    stdio_macros.h
103  DEPENDS
104    .stdio_overlay
105  FULL_BUILD_DEPENDS
106    libc.include.stdio
107    libc.include.llvm-libc-macros.stdio_macros
108    libc.include.llvm-libc-macros.file_seek_macros
109)
110
111add_proxy_header_library(
112  sys_epoll_macros
113  HDRS
114    sys_epoll_macros.h
115  FULL_BUILD_DEPENDS
116    libc.include.sys_epoll
117    libc.include.llvm-libc-macros.sys_epoll_macros
118)
119
120add_proxy_header_library(
121  sys_stat_macros
122  HDRS
123    sys_stat_macros.h
124  FULL_BUILD_DEPENDS
125    libc.include.sys_stat
126    libc.include.llvm-libc-macros.sys_stat_macros
127)
128
129add_header_library(unistd_overlay HDRS unistd_overlay.h)
130add_proxy_header_library(
131  unistd_macros
132  HDRS
133    unistd_macros.h
134  DEPENDS
135    .unistd_overlay
136  FULL_BUILD_DEPENDS
137    libc.include.unistd
138    libc.include.llvm-libc-macros.unistd_macros
139)
140
141if (WIN32)
142  set(windows_addtional_time_macros libc.include.llvm-libc-macros.windows.time_macros_ext)
143else()
144  set(windows_addtional_time_macros "")
145endif()
146
147add_proxy_header_library(
148  time_macros
149  HDRS
150    time_macros.h
151  DEPENDS
152    ${windows_addtional_time_macros}
153  FULL_BUILD_DEPENDS
154    libc.include.time
155    libc.include.llvm-libc-macros.time_macros
156)
157
158add_proxy_header_library(
159  float_macros
160  HDRS
161    float_macros.h
162  DEPENDS
163    libc.include.llvm-libc-macros.float_macros
164  FULL_BUILD_DEPENDS
165    libc.include.float
166)
167
168add_proxy_header_library(
169  limits_macros
170  HDRS
171    limits_macros.h
172  FULL_BUILD_DEPENDS
173    libc.include.limits
174    libc.include.llvm-libc-macros.limits_macros
175)
176
177add_proxy_header_library(
178  link_macros
179  HDRS
180    link_macros.h
181  FULL_BUILD_DEPENDS
182    libc.include.llvm-libc-macros.link_macros
183    libc.include.link
184)
185
186add_proxy_header_library(
187  sys_auxv_macros
188  HDRS
189    sys_auxv_macros.h
190  FULL_BUILD_DEPENDS
191    libc.include.llvm-libc-macros.sys_auxv_macros
192    libc.include.sys_auxv
193)
194
195add_header_library(wchar_overlay HDRS wchar_overlay.h)
196
197add_proxy_header_library(
198  wchar_macros
199  HDRS
200    wchar_macros.h
201  DEPENDS
202    .wchar_overlay
203  FULL_BUILD_DEPENDS
204    libc.include.llvm-libc-macros.wchar_macros
205    libc.include.wchar
206)
207
208add_subdirectory(types)
209add_subdirectory(func)
210