@@ -308,18 +308,41 @@ def _process_extension_module(
308308
309309 modinit = BuildTarget (
310310 command = "gen-modinit-hpp" ,
311- args = (module_name , OutputFile (f"semiwrap_init.{ package_name } .hpp" ), * datfiles ),
311+ args = (
312+ module_name ,
313+ OutputFile (f"semiwrap_init.{ package_name } .hpp" ),
314+ * datfiles ,
315+ ),
312316 install_path = None ,
313317 )
314318 module_sources .append (modinit )
315319 yield modinit
316320
321+ #
322+ # Emit the module
323+ #
324+
325+ # Use a local dependency to store everything so it can be referenced elsewhere
326+ cached_dep = self .pkgcache .add_local (
327+ name = varname ,
328+ includes = [* includes , self .pyproject .package_root / package_path ],
329+ requires = depends ,
330+ libinit_py = libinit_module ,
331+ )
332+ local_dep = LocalDependency (
333+ name = cached_dep .name ,
334+ include_paths = tuple (cached_dep .include_path ),
335+ depends = tuple (self ._resolve_dep (dep ) for dep in depends ),
336+ )
337+ yield local_dep
338+ self .local_dependencies [local_dep .name ] = local_dep
339+
317340 modobj = ExtensionModule (
318341 name = varname ,
319342 package_name = package_name ,
320343 sources = tuple (module_sources ),
321- depends = tuple ( self . _resolve_dep ( dep ) for dep in depends ),
322- include_directories = ( * includes , self . pyproject . package_root / package_path ),
344+ depends = ( local_dep , ),
345+ include_directories = tuple ( ),
323346 install_path = package_path ,
324347 )
325348 yield modobj
0 commit comments