Since qt5_use_modules() is removed from QT5 (as spotted
by Jürgen Spitzmüller), we had to create own version
of this macro.
According to this page:
http://doc.qt.io/qt-5/cmake-manual.html
the way to replace use of qt5_use_modules() for module "_mod" and target "_target"
is to use
1.) cmake_minimum_required(VERSION 3.1.0)
2.) find_package(Qt5${_mod} CONFIG REQUIRED)
3.) target_link_libraries(${_target} Qt5::${_mod})
The last one sets all reguired libraries, compile flags and needed includes for the ${_target}
Disable possible warn about not known policy
Extend Clang compiler detection to cover Apple CLang
(cherry picked from commit d6b21e20e2)
(cherry picked from commit 72a2f92239)
(cherry picked from commit 6343452a73)
(cherry picked from commit cb08d4a879)
(cherry picked from commit 1bf4d7b0fc)
MSVC does not need a special flag to specify the standard. Using --std=c++14
produces a warning, but compilation succeeds, so the old code did mistakenly
choose --std=c++14 for MSVC.
Older gcc versions (e.g. the first one which has usable std::regex: gcc 4.9)
require the --std=c++11 flag to be set. Otherwise std::regex is not made
available. Therefore we need to keep the flag in the loop.