encounter / objdiff

A local diffing tool for decompilation projects
Apache License 2.0
124 stars 21 forks source link

Improve dependency gating on objdiff-core #126

Closed AngheloAlf closed 1 month ago

AngheloAlf commented 1 month ago

Mark as many dependencies as optional as I could without actually touching the code.

The way I tested this was to mark every dependency as optional and then try to build objdiff-core with each individual feature, and then added each dependency as the build complained about missing stuff.

A remarkable thing I noted is that I wasn't able to build any of the architectures on its own besides ppc because of this error:

error[E0599]: no method named `ppc` found for reference `&dyn ObjArch` in the current scope
  --> objdiff-core/src/obj/read.rs:68:10
   |
67 |       if arch
   |  ________-
68 | |         .ppc()
   | |         -^^^ method not found in `&dyn ObjArch`
   | |_________|
   |

For more information about this error, try `rustc --explain E0599`.

So to test every other architecture I had to enable ppc too. Because of this any-arch can't be built on its own either (kinda makes sense, but weird either way).

Finally, I used the dep: syntax when listing dependencies on the features out of habit. I can remove those if you prefer.

encounter commented 1 month ago

Thanks a ton!