Completely rewritten most of the CMake files to use more robust target specific commands. We no longer have globally defined includes or libraries. This makes it much clearer as to what program depends on what code/library.
Uses functionality that requires CMake 3.13+
Only build shared objects now. This reduces our exe size, and makes it easier to swap out components if needed.
Cleaned up compilation errors and ensure that all of the programs compile.
Dumped cmake flags that weren't needed, or didn't provide value.
Moved the flags in the files that they control. This gives a better coupling between the flag and what it toggles.
Relocated all testing related codes to the test folder.
Fixed FindPLX and FindXIA to take into account changes in those APIs.
Removed FindGSL as it is now bundled with CMake
Now always generate compile_commands.json, just makes it easier for those that need it. It's not like it's a lot of overhead.
Organized Acquisition utility codes to live in better spots.
Related Issue
94
Motivation and Context
The CMake scripts were getting a little out of hand. They didn't conform to modern CMake best practices. I also found them hard to follow.
How Has This Been Tested?
Tested by
building the software with ALL flags enabled.
deploying to TravisCI and ensuring that the programs build
deploying to TravisCI and ensuring all tests still pass.
Types of changes
[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
Description
Related Issue
94
Motivation and Context
The CMake scripts were getting a little out of hand. They didn't conform to modern CMake best practices. I also found them hard to follow.
How Has This Been Tested?
Tested by
Types of changes
Checklist: