Not serious, but an example of why cmake is no better than other
build systems.

I've been building plasma, to see if I can get it to work without
systemd (and ideally without some other things, but for several of
those the answer was "no").  In each run of cmake it tells me which
optional packages it found, plus what they enable, and then it tells
which required packages have been found.  In fact, if it gets to
that report then I can assume that _all_ the required packages were
found.

But what it doesn't tell me is why missing optional packages might
be useful.  Example, from plasma-desktop-5.3.1 with a few lines
before and after to show I have not edited out the important
details:

-- Found KF5DBusAddons:
/opt/kf5/lib/cmake/KF5DBusAddons/KF5DBusAddonsConfig.cmake (found
version "5.11.0")
-- Found KF5: success (found suitable version "5.11.0", minimum
required is "5.9.0") found components:  Auth Plasma PlasmaQuick
DocTools I18n KCMUtils NewStuff KDELibs4Support Notifications
NotifyConfig Attica Wallet Runner GlobalAccel Declarative People
DBusAddons
CMake Warning at CMakeLists.txt:60 (find_package):
  By not providing "FindPackageKitQt5.cmake" in CMAKE_MODULE_PATH
this
  project has asked CMake to find a package configuration file
provided by
  "PackageKitQt5", but CMake did not find one.

  Could not find a package configuration file provided by
"PackageKitQt5"
  (requested version 0.9) with any of the following names:

    PackageKitQt5Config.cmake
    packagekitqt5-config.cmake

  Add the installation prefix of "PackageKitQt5" to
CMAKE_PREFIX_PATH or set
  "PackageKitQt5_DIR" to a directory containing one of the above
files.  If
  "PackageKitQt5" provides a separate development package or SDK, be
sure it
  has been installed.


-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28")
-- Found LIBUSB: /usr/lib64/libusb.so

Now in this case, it is fairly obvious that PackageKitQt5 will not
bring anything to the party, because we build from source.  But in
general any builder has to guess if that unmet dependency might be
useful.

But for *some* of the optional deps which are present, I get an
explanation of why they will be used (although not PkgConfig - to be
honest I am not convinced that any of this stuff really uses it).
My complaint is that by this point I've already installed them so
the "why" is not important :

-- The following OPTIONAL packages have been found:

 * KF5Activities (required version >= 5.11.0) , management of Plasma
 * activities
   Needed by activity related plasmoids and the pager.
 * USB , User level access to USB devices ,
 * <http://libusb.sourceforge.net>
   Provides Logitech mouse support in KControl.
 * Fontconfig , Font access configuration library ,
 * <http://www.freedesktop.org/wiki/Software/fontconfig>
   Needed to build font configuration and installation tools
 * Evdev , Evdev driver headers needed for input KCM
 * PkgConfig

Weird.  What I find weirder is the 'nix developers who prefer cmake.

ĸen
-- 
This one goes up to eleven!
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to