@@ -71,9 +71,9 @@ function(add_header target_name)
71
71
)
72
72
endfunction (add_header)
73
73
74
- function (add_gen_header2 target_name)
74
+ function (add_gen_header target_name)
75
75
cmake_parse_arguments (
76
- "ADD_GEN_HDR2 "
76
+ "ADD_GEN_HDR "
77
77
"PUBLIC" # No optional arguments
78
78
"YAML_FILE;DEF_FILE;GEN_HDR" # Single value arguments
79
79
"DEPENDS" # Multi value arguments
@@ -84,25 +84,25 @@ function(add_gen_header2 target_name)
84
84
add_library (${fq_target_name} INTERFACE )
85
85
return ()
86
86
endif ()
87
- if (NOT ADD_GEN_HDR2_DEF_FILE )
88
- message (FATAL_ERROR "`add_gen_hdr2 ` rule requires DEF_FILE to be specified." )
87
+ if (NOT ADD_GEN_HDR_DEF_FILE )
88
+ message (FATAL_ERROR "`add_gen_hdr ` rule requires DEF_FILE to be specified." )
89
89
endif ()
90
- if (NOT ADD_GEN_HDR2_GEN_HDR )
91
- message (FATAL_ERROR "`add_gen_hdr2 ` rule requires GEN_HDR to be specified." )
90
+ if (NOT ADD_GEN_HDR_GEN_HDR )
91
+ message (FATAL_ERROR "`add_gen_hdr ` rule requires GEN_HDR to be specified." )
92
92
endif ()
93
- if (NOT ADD_GEN_HDR2_YAML_FILE )
94
- message (FATAL_ERROR "`add_gen_hdr2 ` rule requires YAML_FILE to be specified." )
93
+ if (NOT ADD_GEN_HDR_YAML_FILE )
94
+ message (FATAL_ERROR "`add_gen_hdr ` rule requires YAML_FILE to be specified." )
95
95
endif ()
96
96
97
- set (absolute_path ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR2_GEN_HDR } )
97
+ set (absolute_path ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR_GEN_HDR } )
98
98
file (RELATIVE_PATH relative_path ${LIBC_INCLUDE_SOURCE_DIR} ${absolute_path} )
99
99
set (out_file ${LIBC_INCLUDE_DIR} /${relative_path} )
100
- set (yaml_file ${CMAKE_SOURCE_DIR} /${ADD_GEN_HDR2_YAML_FILE } )
101
- set (def_file ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR2_DEF_FILE } )
100
+ set (yaml_file ${CMAKE_SOURCE_DIR} /${ADD_GEN_HDR_YAML_FILE } )
101
+ set (def_file ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR_DEF_FILE } )
102
102
103
103
set (fq_data_files "" )
104
- if (ADD_GEN_HDR2_DATA_FILES )
105
- foreach (data_file IN LISTS ADD_GEN_HDR2_DATA_FILES )
104
+ if (ADD_GEN_HDR_DATA_FILES )
105
+ foreach (data_file IN LISTS ADD_GEN_HDR_DATA_FILES )
106
106
list (APPEND fq_data_files "${CMAKE_CURRENT_SOURCE_DIR} /${data_file} " )
107
107
endforeach (data_file)
108
108
endif ()
@@ -118,7 +118,7 @@ function(add_gen_header2 target_name)
118
118
${entry_points}
119
119
--output_dir ${out_file}
120
120
DEPENDS ${yaml_file} ${def_file} ${fq_data_files}
121
- COMMENT "Generating header ${ADD_GEN_HDR2_GEN_HDR } from ${yaml_file} and ${def_file} "
121
+ COMMENT "Generating header ${ADD_GEN_HDR_GEN_HDR } from ${yaml_file} and ${def_file} "
122
122
)
123
123
if (LIBC_TARGET_OS_IS_GPU)
124
124
file (MAKE_DIRECTORY ${LIBC_INCLUDE_DIR} /llvm-libc-decls)
@@ -136,132 +136,6 @@ function(add_gen_header2 target_name)
136
136
)
137
137
endif ()
138
138
139
- if (ADD_GEN_HDR2_DEPENDS)
140
- get_fq_deps_list(fq_deps_list ${ADD_GEN_HDR2_DEPENDS} )
141
- # Dependencies of a add_header target can only be another add_gen_header target
142
- # or an add_header target.
143
- foreach (dep IN LISTS fq_deps_list)
144
- get_target_property (header_file ${dep} HEADER_FILE_PATH)
145
- if (NOT header_file)
146
- message (FATAL_ERROR "Invalid dependency '${dep} ' for '${fq_target_name} '." )
147
- endif ()
148
- endforeach ()
149
- endif ()
150
- set (generated_hdr_target ${fq_target_name} .__generated_hdr__)
151
- add_custom_target (
152
- ${generated_hdr_target}
153
- DEPENDS ${out_file} ${fq_deps_list} ${decl_out_file}
154
- )
155
-
156
- add_header_library(
157
- ${target_name}
158
- HDRS
159
- ${out_file}
160
- )
161
-
162
- add_dependencies (${fq_target_name} ${generated_hdr_target} )
163
-
164
- set_target_properties (
165
- ${fq_target_name}
166
- PROPERTIES
167
- HEADER_FILE_PATH ${out_file}
168
- DECLS_FILE_PATH "${decl_out_file} "
169
- DEPS "${fq_deps_list} "
170
- )
171
-
172
-
173
- endfunction (add_gen_header2)
174
-
175
- # Usage:
176
- # add_gen_header(
177
- # <target name>
178
- # DEF_FILE <.h.def file>
179
- # GEN_HDR <generated header file name>
180
- # PARAMS <list of name=value pairs>
181
- # DATA_FILES <list input data files>
182
- # )
183
- function (add_gen_header target_name)
184
- cmake_parse_arguments (
185
- "ADD_GEN_HDR"
186
- "PUBLIC" # No optional arguments
187
- "DEF_FILE;GEN_HDR" # Single value arguments
188
- "PARAMS;DATA_FILES;DEPENDS" # Multi value arguments
189
- ${ARGN}
190
- )
191
- get_fq_target_name(${target_name} fq_target_name)
192
- if (NOT LLVM_LIBC_FULL_BUILD)
193
- # We don't want to use generated headers if we are doing a non-full-build.
194
- add_library (${fq_target_name} INTERFACE )
195
- return ()
196
- endif ()
197
- if (NOT ADD_GEN_HDR_DEF_FILE)
198
- message (FATAL_ERROR "`add_gen_hdr` rule requires DEF_FILE to be specified." )
199
- endif ()
200
- if (NOT ADD_GEN_HDR_GEN_HDR)
201
- message (FATAL_ERROR "`add_gen_hdr` rule requires GEN_HDR to be specified." )
202
- endif ()
203
-
204
- set (absolute_path ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR_GEN_HDR} )
205
- file (RELATIVE_PATH relative_path ${LIBC_INCLUDE_SOURCE_DIR} ${absolute_path} )
206
- set (out_file ${LIBC_INCLUDE_DIR} /${relative_path} )
207
- set (in_file ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR_DEF_FILE} )
208
-
209
- set (fq_data_files "" )
210
- if (ADD_GEN_HDR_DATA_FILES)
211
- foreach (data_file IN LISTS ADD_GEN_HDR_DATA_FILES)
212
- list (APPEND fq_data_files "${CMAKE_CURRENT_SOURCE_DIR} /${data_file} " )
213
- endforeach (data_file)
214
- endif ()
215
-
216
- set (replacement_params "" )
217
- if (ADD_GEN_HDR_PARAMS)
218
- list (APPEND replacement_params "--args" ${ADD_GEN_HDR_PARAMS} )
219
- endif ()
220
-
221
- set (gen_hdr_script "${LIBC_BUILD_SCRIPTS_DIR} /gen_hdr.py" )
222
-
223
- file (GLOB td_includes ${LIBC_SOURCE_DIR} /spec/*.td)
224
-
225
- set (ENTRYPOINT_NAME_LIST_ARG ${TARGET_ENTRYPOINT_NAME_LIST} )
226
- list (TRANSFORM ENTRYPOINT_NAME_LIST_ARG PREPEND "--e=" )
227
-
228
- if (LIBC_HDRGEN_EXE)
229
- set (hdrgen_exe ${LIBC_HDRGEN_EXE} )
230
- else ()
231
- set (hdrgen_exe ${LIBC_TABLEGEN_EXE} )
232
- set (hdrgen_deps "${LIBC_TABLEGEN_EXE} ;${LIBC_TABLEGEN_TARGET} " )
233
- endif ()
234
- add_custom_command (
235
- OUTPUT ${out_file}
236
- COMMAND ${hdrgen_exe} -o ${out_file} --header ${ADD_GEN_HDR_GEN_HDR}
237
- --def ${in_file} ${replacement_params} -I ${LIBC_SOURCE_DIR}
238
- ${ENTRYPOINT_NAME_LIST_ARG}
239
- ${LIBC_SOURCE_DIR} /config/${LIBC_TARGET_OS} /api.td
240
-
241
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
242
- DEPENDS ${in_file} ${fq_data_files} ${td_includes}
243
- ${LIBC_SOURCE_DIR} /config/${LIBC_TARGET_OS} /api.td
244
- ${hdrgen_deps}
245
- )
246
-
247
- if (LIBC_TARGET_OS_IS_GPU)
248
- file (MAKE_DIRECTORY ${LIBC_INCLUDE_DIR} /llvm-libc-decls)
249
- file (MAKE_DIRECTORY ${LIBC_INCLUDE_DIR} /llvm-libc-decls/gpu)
250
- set (decl_out_file ${LIBC_INCLUDE_DIR} /llvm-libc-decls/${relative_path} )
251
- add_custom_command (
252
- OUTPUT ${decl_out_file}
253
- COMMAND ${hdrgen_exe} -o ${decl_out_file}
254
- --header ${ADD_GEN_HDR_GEN_HDR} --def ${in_file} --export-decls
255
- ${replacement_params} -I ${LIBC_SOURCE_DIR} ${ENTRYPOINT_NAME_LIST_ARG}
256
- ${LIBC_SOURCE_DIR} /config/${LIBC_TARGET_OS} /api.td
257
-
258
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
259
- DEPENDS ${in_file} ${fq_data_files} ${td_includes}
260
- ${LIBC_SOURCE_DIR} /config/${LIBC_TARGET_OS} /api.td
261
- ${hdrgen_deps}
262
- )
263
- endif ()
264
-
265
139
if (ADD_GEN_HDR_DEPENDS)
266
140
get_fq_deps_list(fq_deps_list ${ADD_GEN_HDR_DEPENDS} )
267
141
# Dependencies of a add_header target can only be another add_gen_header target
@@ -285,9 +159,6 @@ function(add_gen_header target_name)
285
159
${out_file}
286
160
)
287
161
288
- # We add the dependencies separately and not list under add_header_library's
289
- # DEPENDS option above. This is because, deps of add_header_library are
290
- # used with target_link_libraries.
291
162
add_dependencies (${fq_target_name} ${generated_hdr_target} )
292
163
293
164
set_target_properties (
@@ -297,4 +168,6 @@ function(add_gen_header target_name)
297
168
DECLS_FILE_PATH "${decl_out_file} "
298
169
DEPS "${fq_deps_list} "
299
170
)
171
+
172
+
300
173
endfunction (add_gen_header)
0 commit comments