On this day, MSVC linker started complaining about missing symbols like
WavImporter::doOpenData() in the WavHeaderTest. Mind you, there's
NOTHING the WavHeader.h would use from there. Neither the test. The only
thing that connects those two together is that WavHeader.h includes
WavImporter.h (probably just a leftover from the time where those two
actually depended on each other). My suspicion is that this got
triggered due to recent changes in AbstractPlugin (it's movable now) and
MSVC attempts to instantiate the destructor or whatnot, needing
references to the privately defined virtual functions. Or something. All
that while nothing from there is EVER used.
Removing the header dependency, hopefully this fixes it. Ugh.
The only places where they aren't absolute are:
- when header is included from corresponding source file
- when including headers which are not part of final installation (e.g.
test-specific configuration, headers from Implementation/)
Everything what was in src/ is now in src/Corrade, everything from
src/Plugins is now in src/MagnumPlugins, everything from external/ is in
src/MagnumExternal. Added new CMakeLists.txt file and updated the other
ones for the moves, no other change was made. If MAGNUM_BUILD_DEPRECATED
is set, everything compiles and installs like previously except for the
plugins, which are now in MagnumPlugins and not in Magnum/Plugins.
Not sure how to handle everything properly (e.g. namespaces and naming
for implementation classes, tests...), will update coding style for
plugins accordingly later.