[ffmpeg] add if guard, fix library ordering on linux, minor clean up #14360
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.
What does your PR fix? Currently, repeated calls to find_package(FFMPEG) across a single cmake project results in the FFmpeg libraries being included more than once (see for instance the cmake log here: https://travis-ci.org/github/mcmtroffaes/ffmpeg-msvc-build/jobs/740501464#L361). This patch adds a guard to fix that problem. It also fixes the link ordering of the x64-linux static builds, because gcc expects dependencies to be specified last (see for instance build failure here: https://travis-ci.org/github/mcmtroffaes/ffmpeg-msvc-build/jobs/740832347#L430 - unresolved symbols even though the library is specified on the command line, but the symbol is not resolved due to wrong library ordering). Finally, there's some minor clean ups too (cmake includes, version field). Tested on x64-linux and x64-windows-static-md triplets.
Which triplets are supported/not supported? Have you updated the CI baseline? No changes.
Does your PR follow the maintainer guide? To the best of my knowledge, yes.