This is a fairly major non-breaking change:
Functionality:
- Added IncludeSize function, that gives an indication which includes cause your compiler the most grief.
- Use CMake for the build instead of Makefiles / VS project files.
- Enable use of std::filesystem, if you have a compiler that has it.
Speed:
- More accurate and faster parsing logic.
- Now using Trajan's algorithm for finding cycles, which makes the cycle analysis much faster. Saves 20% on total runtime on my test target.
- Enabled use of mmap for reading files.
Code quality:
- Fixed various bugs, all resulting in crashes in case of misuse.
- Fix issues found by PVS-Studio. 19 minors and one critical.
- Add Appveyor build & Travis build with unit tests, running on Linux, Mac and Windows.
- Switch testing to simple test framework, to avoid gtest's use troubles on Travis and Appveyor.