File structure to satisfy both building and testing?

Awesome. I really appreciate the help. I played around more to try to understand things better.

It seems that during testing, what gets compiled from lib/ is anything satisfying the logic below. Please correct me if I’m wrong.

( [is listed under lib_deps] OR
  [is in the dependency tree of your test code] OR
  [is in the dependency tree of src/main.cpp]  <-- why? seems wrong *see below
) AND NOT [is listed under lib_ignore]

* In my case, this rule adds pointless dependencies that make compilation fail. Therefore, I must manually exclude them via lib_ignore.