diff --git a/lang/ninja/src/build.sld b/lang/ninja/src/build.sld index 8fdcc21..d1298f9 100644 --- a/lang/ninja/src/build.sld +++ b/lang/ninja/src/build.sld @@ -59,6 +59,14 @@ (fprintf (current-error-port) "Path doesn't exist as build edge: ~S\n" path) (error "Path doesn't exist as build edge" path)))) + ; Workaround for Meson not adding the .so as build dependency when linking, instead using a .symbols file. + ; This makes sense, as it only relinks when symbols change, but it breaks the dependency link, and is the only + ; place this happens in Ninja file processing. + ; TODO: how does nix-ninja handle this? + (when (string-suffix? ".so.symbols" path) + (let ((index (string-contains path ".p/"))) + (append-file (string-copy path 0 index))))) + ; Add the inputs, implicit dependencies, _and_ order-only dependencies to our vfs. (for-each append-file (build-edge-inputs current-edge)) (for-each append-file (build-edge-implicit-dependencies current-edge))