nutofem / nuto

NuTo - yet another finite element library
https://nuto.readthedocs.io
Boost Software License 1.0
17 stars 5 forks source link

Remove object libs from build system #169

Closed Psirus closed 6 years ago

Psirus commented 6 years ago

These were intended to avoid multiple compilation of the same file while still allowing building the unit tests without the finished library. However, it makes the build system quite complicated and prohibits using the CMake targets properly. See #98.

For those coming from #98 and wondering which option of a), b) and c) this implements: d) Don't build things twice, but building unit tests without building the library first is not possible anymore.

codecov[bot] commented 6 years ago

Codecov Report

Merging #169 into PDE_reviewed will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff              @@
##           PDE_reviewed     #169   +/-   ##
=============================================
  Coverage         80.92%   80.92%           
=============================================
  Files               225      225           
  Lines              7260     7260           
=============================================
  Hits               5875     5875           
  Misses             1385     1385

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update b90848a...8839421. Read the comment docs.

Psirus commented 6 years ago

I don't lean strongly either way, with regards to "b) or d)". So I've implemented your favorite version. However, I find the difference between unit and integration tests is conceptual, not bound to the build system. A unit test should have very few dependencies, and should test the one class/function under consideration. Granted, this can be ensured when you're not "allowed" to link the rest of the library to it.