Other changes:
- Renamed Parser to OldParser to make it clear this is going away.
- Removed all the useless "unit tests" which did not actually test anything.
- Added a new GTest-based test executable that can be run with CMake's CTest.
- Added unit tests for the new fileParser class, including test files.
Target name is now just libprojectM::projectM for the main library instead of libprojectM::static or libprojectM::shared.
Now using CMake's default mechanism to select the resulting library type via the BUILD_SHARED_LIBS variable. Main use case will be working with the shared library, which is the default.
Playlist library now also builds as a shared library, including proper symbol exports.
Additionally, deleted the leftover TestRunner class and a few old and rather useless test cases.
Also added LLVM find_package call and as a link dependency if the build is configured for using (experimental) LLVM code.
Reorganized tests to link either one of the object libraries for unit testing.
Part of removing the iostream included in PCM.cpp.
I noticed that TestRunner.cpp had a missing #include <iostream>.
By moving the definition to the .cpp, the definition may see <iostream>
without it leaking out to everything that includes TestRunner.hpp.
* Param refactor
collected all the code that reached inside Param (InitCond, Per*Eqn, Expr, Parser) to read/write and stuffed it all back into Param.cpp
made Param extend Expr to avoid any perf penalty (I actually think eval() is a tiny bit faster now)
* presets/tests
* ALWAYS_MATRIX is used with PER_POINT
* use SSE2 to impove initialize_PerPixelMeshes() performance
* TestRunner
very, very simple test framework, but it's better than no framework
(consider investigating adopting something)
* ProgramExpr