@@ -66,106 +66,7 @@ function(add_header target_name)
66
66
)
67
67
endfunction (add_header )
68
68
69
- function (add_gen_header2 target_name )
70
- cmake_parse_arguments (
71
- "ADD_GEN_HDR2"
72
- "PUBLIC" # No optional arguments
73
- "YAML_FILE;DEF_FILE;GEN_HDR" # Single value arguments
74
- "DEPENDS" # Multi value arguments
75
- ${ARGN}
76
- )
77
- get_fq_target_name (${target_name} fq_target_name )
78
- if (NOT LLVM_LIBC_FULL_BUILD )
79
- add_library (${fq_target_name} INTERFACE )
80
- return ()
81
- endif ()
82
- if (NOT ADD_GEN_HDR2_DEF_FILE )
83
- message (FATAL_ERROR "`add_gen_hdr2` rule requires DEF_FILE to be specified." )
84
- endif ()
85
- if (NOT ADD_GEN_HDR2_GEN_HDR )
86
- message (FATAL_ERROR "`add_gen_hdr2` rule requires GEN_HDR to be specified." )
87
- endif ()
88
- if (NOT ADD_GEN_HDR2_YAML_FILE )
89
- message (FATAL_ERROR "`add_gen_hdr2` rule requires YAML_FILE to be specified." )
90
- endif ()
91
-
92
- set (absolute_path ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR2_GEN_HDR} )
93
- file (RELATIVE_PATH relative_path ${LIBC_INCLUDE_SOURCE_DIR} ${absolute_path} )
94
- set (out_file ${LIBC_INCLUDE_DIR} /${relative_path} )
95
- set (yaml_file ${CMAKE_SOURCE_DIR} /${ADD_GEN_HDR2_YAML_FILE} )
96
- set (def_file ${CMAKE_CURRENT_SOURCE_DIR} /${ADD_GEN_HDR2_DEF_FILE} )
97
-
98
- set (fq_data_files "" )
99
- if (ADD_GEN_HDR2_DATA_FILES )
100
- foreach (data_file IN LISTS ADD_GEN_HDR2_DATA_FILES )
101
- list (APPEND fq_data_files "${CMAKE_CURRENT_SOURCE_DIR} /${data_file} " )
102
- endforeach (data_file )
103
- endif ()
104
-
105
- set (entry_points "${TARGET_ENTRYPOINT_NAME_LIST} " )
106
- list (TRANSFORM entry_points PREPEND "--e=" )
107
-
108
- add_custom_command (
109
- OUTPUT ${out_file}
110
- COMMAND ${Python3_EXECUTABLE} ${LIBC_SOURCE_DIR} /newhdrgen/yaml_to_classes.py
111
- ${yaml_file}
112
- --h_def_file ${def_file}
113
- ${entry_points}
114
- --output_dir ${out_file}
115
- DEPENDS ${yaml_file} ${def_file} ${fq_data_files}
116
- COMMENT "Generating header ${ADD_GEN_HDR2_GE2N_HDR} from ${yaml_file} and ${def_file} "
117
- )
118
- if (LIBC_TARGET_OS_IS_GPU )
119
- file (MAKE_DIRECTORY ${LIBC_INCLUDE_DIR} /llvm-libc-decls )
120
- file (MAKE_DIRECTORY ${LIBC_INCLUDE_DIR} /llvm-libc-decls/gpu )
121
- set (decl_out_file ${LIBC_INCLUDE_DIR} /llvm-libc-decls/${relative_path} )
122
- add_custom_command (
123
- OUTPUT ${decl_out_file}
124
- COMMAND ${Python3_EXECUTABLE} ${LIBC_SOURCE_DIR} /newhdrgen/yaml_to_classes.py
125
- ${yaml_file}
126
- --export-decls
127
- ${entry_points}
128
- --output_dir ${decl_out_file}
129
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
130
- DEPENDS ${yaml_file} ${fq_data_files}
131
- )
132
- endif ()
133
-
134
- if (ADD_GEN_HDR2_DEPENDS )
135
- get_fq_deps_list (fq_deps_list ${ADD_GEN_HDR2_DEPENDS} )
136
- # Dependencies of a add_header target can only be another add_gen_header target
137
- # or an add_header target.
138
- foreach (dep IN LISTS fq_deps_list )
139
- get_target_property (header_file ${dep} HEADER_FILE_PATH )
140
- if (NOT header_file )
141
- message (FATAL_ERROR "Invalid dependency '${dep} ' for '${fq_target_name} '." )
142
- endif ()
143
- endforeach ()
144
- endif ()
145
- set (generated_hdr_target ${fq_target_name} .__generated_hdr__ )
146
- add_custom_target (
147
- ${generated_hdr_target}
148
- DEPENDS ${out_file} ${fq_deps_list} ${decl_out_file}
149
- )
150
-
151
- add_header_library (
152
- ${target_name}
153
- HDRS
154
- ${out_file}
155
- )
156
-
157
- add_dependencies (${fq_target_name} ${generated_hdr_target} )
158
-
159
- set_target_properties (
160
- ${fq_target_name}
161
- PROPERTIES
162
- HEADER_FILE_PATH ${out_file}
163
- DEPS "${fq_deps_list} "
164
- )
165
-
166
-
167
- endfunction (add_gen_header2 )
168
-
69
+ # A rule for generated header file targets.
169
70
# Usage:
170
71
# add_gen_header(
171
72
# <target name>
0 commit comments