@@ -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 }  ), * datfiles ),
311+             args = (
312+                 module_name ,
313+                 OutputFile (f"semiwrap_init.{ package_name }  ),
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