Modernize CMake scripts #439
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a rewrite of the CMake configuration that removes a lot of legacy code which is no longer needed and makes the build system more convoluted than necessary.
By switching to modern CMake semantics, we gain the following advantages:
Include directories and dependent libraries are associated with the exported target, no additional configuration beyond target_link_libraries() required.
Built-in Qt MOC and UIC handling
Proper separation of build and install interface; this also makes RPATH just work out of the box without additional configuration.
Native build of vendored QGLViewer library, no need to call qmake and import the result.
Proper handling and versioning of dependencies. No hard-coded build paths showing up in unexpected places.