Fixing OpenAL and libsndfile dependencies in kdegames (Was `Re: KDE/kdegames')

Raphael Kubo da Costa kubito at gmail.com
Wed May 25 05:25:57 CEST 2011


Ian Wadham <iandw.au at gmail.com> writes:

> On Thursday 19 May 2011 2:35:13 am Raphael Kubo da Costa wrote:
>> So what I have in mind is the following:
>>
>>   * Granatier and KGoldRunner are optional parts of kdegames (ie. one
>>     can call cmake with -DBUILD_granatier=OFF and
>>     -DBUILD_kgoldrunner=OFF and none of them will be built).
>>   * If one chooses not to build Granatier and KGoldRunner, CMake must
>>     not check for libsndfile and OpenAL.
>>   * If one does choose to build Granatier and/or KGoldRunner, CMake must
>>     check for both libsndfile and OpenAL, and fail at the end of the
>>     configuration phase (ie. after cmake runs and before you run make)
>>     if either of them (or both) is not found.
[snip]
>> Is it clear now?

> I am concerned about using -DBUILD_*.  It is a good idea, but people build
> KDE Games all the time and for various reasons other than releasing,
> packaging and distributing.  For example, they are games developers or
> want to play (test :-) ?) the very latest versions.  I do not think they will
> all know about the BUILD_* variables of KDE's build macros and anyway
> they might be using a script to run CMake, such as cmakekde or kdesrc-build.
>
> I toyed with doing set (BUILD_kgoldrunner FALSE) in kdegames/CMakeLists.txt,
> but that means that you have to test for  "OpenAL found" as an optional
> dependency at the KDE Games level, which puts us back where we started.
>
> I also played with message (WARNING "...") if Granatier/KGoldrunner could
> not be built as required, but found it hard to warn, in a way that would
> always be seen, that part of KDE Games would be missing, even if the
> rest built correctly.  The module generates a large CMake and Make log.

Sorry, I'm a bit confused with your explanation. From what I had
understood, the final objective is to make OpenAL/libsndfile hard
dependencies (ie. not finding them makes CMake fail) if and only if at
least one of granatier and kgoldrunner is being built. If people
building KDE games trunk (or master) suddenly cannot build it anymore
due to these dependencies not being present, the CMake message at the
end will clearly tell them which dependencies are missing and which game
uses them. It will then be just a matter of intalling two more packages,
and I don't see how this should make things more difficult to
cmakekde/kdesrc-build users, or to anyone at all.


More information about the Kde-buildsystem mailing list