@@ -151,7 +151,7 @@ endfunction()
151
151
function (declare_mlir_python_extension name )
152
152
cmake_parse_arguments (ARG
153
153
""
154
- "ROOT_DIR;MODULE_NAME;ADD_TO_PARENT;PYTHON_BINDINGS_LIBRARY"
154
+ "ROOT_DIR;MODULE_NAME;ADD_TO_PARENT;PYTHON_BINDINGS_LIBRARY;GENERATE_TYPE_STUBS "
155
155
"SOURCES;PRIVATE_LINK_LIBS;EMBED_CAPI_LINK_LIBS"
156
156
${ARGN} )
157
157
@@ -163,17 +163,24 @@ function(declare_mlir_python_extension name)
163
163
if (NOT ARG_PYTHON_BINDINGS_LIBRARY )
164
164
set (ARG_PYTHON_BINDINGS_LIBRARY "pybind11" )
165
165
endif ()
166
+ if (ARG_PYTHON_BINDINGS_LIBRARY STREQUAL "pybind11" )
167
+ set (ARG_GENERATE_TYPE_STUBS OFF )
168
+ endif ()
169
+ if (NOT DEFINED ARG_GENERATE_TYPE_STUBS )
170
+ set (ARG_GENERATE_TYPE_STUBS ON )
171
+ endif ()
166
172
167
173
add_library (${name} INTERFACE )
168
174
set_target_properties (${name} PROPERTIES
169
175
# Yes: Leading-lowercase property names are load bearing and the recommended
170
176
# way to do this: https://gitlab.kitware.com/cmake/cmake/-/issues/19261
171
- EXPORT_PROPERTIES "mlir_python_SOURCES_TYPE;mlir_python_EXTENSION_MODULE_NAME;mlir_python_EMBED_CAPI_LINK_LIBS;mlir_python_DEPENDS;mlir_python_BINDINGS_LIBRARY"
177
+ EXPORT_PROPERTIES "mlir_python_SOURCES_TYPE;mlir_python_EXTENSION_MODULE_NAME;mlir_python_EMBED_CAPI_LINK_LIBS;mlir_python_DEPENDS;mlir_python_BINDINGS_LIBRARY;mlir_python_GENERATE_TYPE_STUBS "
172
178
mlir_python_SOURCES_TYPE extension
173
179
mlir_python_EXTENSION_MODULE_NAME "${ARG_MODULE_NAME} "
174
180
mlir_python_EMBED_CAPI_LINK_LIBS "${ARG_EMBED_CAPI_LINK_LIBS} "
175
181
mlir_python_DEPENDS ""
176
182
mlir_python_BINDINGS_LIBRARY "${ARG_PYTHON_BINDINGS_LIBRARY} "
183
+ mlir_python_GENERATE_TYPE_STUBS "${ARG_GENERATE_TYPE_STUBS} "
177
184
)
178
185
179
186
# Set the interface source and link_libs properties of the target
@@ -276,19 +283,22 @@ function(add_mlir_python_modules name)
276
283
)
277
284
add_dependencies (${modules_target} ${_extension_target} )
278
285
mlir_python_setup_extension_rpath (${_extension_target} )
279
- generate_type_stubs (
280
- ${_module_name}
281
- ${_extension_target}
282
- "${modules_target} .extension._mlir.dso"
283
- "${CMAKE_CURRENT_SOURCE_DIR} /mlir/_mlir_libs/_mlir"
284
- )
285
- declare_mlir_python_sources (
286
- "${MLIR_PYTHON_PACKAGE_PREFIX} .${_module_name} _type_stub_gen"
287
- ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR} /mlir"
288
- ADD_TO_PARENT "${sources_target} "
289
- SOURCES_GLOB "_mlir_libs/${_module_name} /**/*.pyi"
290
- )
291
- add_dependencies ("${modules_target} " "${NB_STUBGEN_CUSTOM_TARGET} " )
286
+ get_target_property (_generate_type_stubs ${sources_target} mlir_python_GENERATE_TYPE_STUBS )
287
+ if (_generate_type_stubs )
288
+ generate_type_stubs (
289
+ ${_module_name}
290
+ ${_extension_target}
291
+ "${modules_target} .extension._mlir.dso"
292
+ "${CMAKE_CURRENT_SOURCE_DIR} /mlir/_mlir_libs/_mlir"
293
+ )
294
+ declare_mlir_python_sources (
295
+ "${MLIR_PYTHON_PACKAGE_PREFIX} .${_module_name} _type_stub_gen"
296
+ ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR} /mlir"
297
+ ADD_TO_PARENT "${sources_target} "
298
+ SOURCES_GLOB "_mlir_libs/${_module_name} /**/*.pyi"
299
+ )
300
+ add_dependencies ("${modules_target} " "${NB_STUBGEN_CUSTOM_TARGET} " )
301
+ endif ()
292
302
else ()
293
303
message (SEND_ERROR "Unrecognized source type '${_source_type} ' for python source target ${sources_target} " )
294
304
return ()
0 commit comments