FindGraphviz: Add Graphviz_DEFINITIONS to define GVDLL and release 0.14.2 #414
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.
Since graphviz 3, any downstream library that on Windows links against a graphviz shared library needs to define the
GVDLL
preprocessor definition (see https://gitlab.com/graphviz/graphviz/-/blob/3.0.0/CHANGELOG.md#changed).To deal with this, this PR adds the
Graphviz_DEFINITIONS
output variable to theFindGraphviz
module, and populates withGVDLL
when on Windows (on graphviz < 3 defining this definition will be harmless). As that prepocessor definition should not be set when linking static graphviz, and given that we can't detect inFindGraphviz
if the linked graphviz is static or not, an ad-hoc CMake variableYCM_FINDGRAPHVIZ_USE_STATIC_GRAPHVIZ
is introduced in the case this definition needs to be disabled.Partial fix for robotology/robotology-superbuild#1166 and robotology/robotology-superbuild#1152 .