Summary:
new finding tech:
- find_gem function configures gem-specific FindFoo files and wraps around
find_package
- FindFoo files look for ruby and then attempt to require the gem name
i.e. it checks if the gem can be successfully loaded by the interpreter
- since this is based on find_package it may be influenced in all the
regular ways (e.g. forced found or disabled from finding altogether
via CMAKE_DISABLE_FIND_PACKAGE_$PKGNAME)
various notes for the future:
- technically this isn't 100% correct because the require name of a gem and
the gem name may not be the same. e.g. the gem `docker-api` has the
require name `docker`. for all currently used gems the names are however
the same and so simply requiring the gem name is expected to work
- the implementation doesn't care about versions, again because we don't
need it to
- test-unit is a bundled gem, some distributions (e.g. Arch) do split it
out without making suitable dependency arrangements on a package level
though
the tech is heavily inspired by Aleix Pol's tech for finding QML modules
as seen in extra-cmake-modules
Test Plan:
- ruby not found: none of the modules found
- test-unit not present: error
- simplecov not prseent: never errors
- having a module installed or not is reported in the cmake output
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19856