Replace full library names with -L commands and -llib-name pairs. This
way it resembles what autotools produce and additionally -l can not be
used with GNU linker and full paths (as it prepends "lib" to such
arguments).
Also moves helper functions into a module file and replaces JOIN
generator expressions with list(TRANSFORM) commands in order to get
the correct sources list at the configure stage.
When torrent-rasterbar is built a static library, CMake supplies link
dependencies inside the LINK_ONLY generator expressions. But pkg-config
does not support such operational mode, and thus we can safely replace
those expressions with the library names. Closes#3354.
1. Replace custom 'shared' option with the standard BUILD_SHARED_LIBS
flag
2. Replace foreach() calls for source items with target_sources() and
generator expression $<JOIN:>.
3. Remove build types definition: makes no sense for
single-configuration generators, and is populated automatically for
multi-configuration ones.
4. Add feature summary
5. Enahnce compiler flags management for static runtime by utilizing functions
from the ucm project
6. Copy almost all options from the Jamfile.
7. If compiler supports C++14, use it.
8. Raise minimum required CMake version to 3.11 and drop bundled FindIconv.cmake