CMake dependency data now available

Aleix Pol aleixpol at kde.org
Tue Oct 14 14:38:43 UTC 2014


On Tue, Oct 14, 2014 at 3:19 PM, Aleix Pol <aleixpol at kde.org> wrote:

> On Sun, Oct 12, 2014 at 10:57 AM, Rolf Eike Beer <kde at opensource.sf-tec.de
> > wrote:
>
>> Am Sonntag 12 Oktober 2014, 21:24:51 schrieb Ben Cooksley:
>> > Hi all,
>> >
>> > Not too long ago, sysadmin received a request to have the tool
>> > "cmake-dependencies.py" from kde-dev-tools run by the CI system to
>> > make packagers jobs easier.
>>
>> […]
>>
>> > If anyone has any queries, please let me know.
>>
>> This is a flat view on the dependencies AFAICT. In other words, you can't
>> tell
>> if this is a direct dependency or a "dependency [of a dependency]+", so
>> this
>> should not be used directly for a Depends: line IMHO. I was just looking
>> at
>> KGpg (what else *g*), and there show up things like Phonon, Cygwin and
>> Perl
>> that KGpg does not care in any way about, these things are just dragged
>> in by
>> something else.
>>
>> It's no problem that these things show up if you use this information as
>> "what
>> do I need to install to be sure that KGpg builds", but please don't use
>> this
>> as "these are the things that KGpg must directly depend on when
>> installed".
>>
>
> Well, the fact that you as a KGpg maintainer don't care about, doesn't
> mean that it's false.
>
> Furthermore, this also displays what's the environment used while testing
> a said package. KDE CI can't ensure things will work the same way if you
> have different dependencies.
>
> If you deem necessary, we can introduce a depth field. In fact, let me
> look into it...
>
>
>> Btw, is this line for Perl correct?
>>
>>         {"files": ["FindPerl.cmake"], "version": "5.16.2()", "project":
>> "Perl"},
>>
>> There are both "null" and "()" as version information for some packages, I
>> guess they both mean "no specific version requested"? Should those be
>> merged
>> into the same value?
>>
>
> Yes. The parenthesis displays what part of the version is not required
> IIRC, correct.
>
> Aleix
>

Just looked into it, getting a depth property was almost impossible, but I
managed to get a somewhat accurate last file, then checked if the last file
was a CMakeLists.txt file and put the result in an "explicit" field.

The resulting output looks like this [1], when running it against Analitza,
on my system.

It's a bit odd, considering how Qt5 is marked as required but the
submodules won't, because they are in practice dependencies of
Qt5Config.cmake, but I'd say we can extract the proper information. If you
think it's useful I can push the change.

Aleix

[1]
[
        {"files": ["Qt5TestConfig.cmake", "Qt5TestConfigVersion.cmake"],
"explicit": false, "project": "Qt5Test", "version": null},
        {"files": ["Qt5NetworkConfigVersion.cmake",
"Qt5NetworkConfig.cmake"], "explicit": false, "project": "Qt5Network",
"version": null},
        {"files": ["Qt5CoreConfigVersion.cmake", "Qt5CoreConfig.cmake"],
"explicit": false, "project": "Qt5Core", "version": null},
        {"files": ["Qt5QuickConfigVersion.cmake", "Qt5QuickConfig.cmake"],
"explicit": false, "project": "Qt5Quick", "version": null},
        {"files": ["Qt5GuiConfig.cmake", "Qt5GuiConfigVersion.cmake"],
"explicit": false, "project": "Qt5Gui", "version": null},
        {"files": ["Qt5QmlConfig.cmake", "Qt5QmlConfigVersion.cmake"],
"explicit": false, "project": "Qt5Qml", "version": null},
        {"files": ["FindOpenGL.cmake"], "explicit": true, "project":
"OpenGL", "version": "()"},
        {"files": ["FindReadline.cmake"], "explicit": true, "project":
"Readline", "version": "()"},
        {"files": ["Qt5OpenGLConfig.cmake",
"Qt5OpenGLConfigVersion.cmake"], "explicit": false, "project": "Qt5OpenGL",
"version": null},
        {"files": ["FindCurses.cmake"], "explicit": true, "project":
"Curses", "version": "()"},
        {"files": ["FindX11.cmake"], "explicit": false, "project": "X11",
"version": null},
        {"files": ["FindPackageMessage.cmake"], "explicit": false,
"project": "PackageMessage", "version": null},
        {"files": ["FindPackageHandleStandardArgs.cmake"], "explicit":
false, "project": "PackageHandleStandardArgs", "version": null},
        {"files": ["Qt5XmlConfig.cmake", "Qt5XmlConfigVersion.cmake"],
"explicit": false, "project": "Qt5Xml", "version": null},
        {"files": ["Qt5SvgConfig.cmake", "Qt5SvgConfigVersion.cmake"],
"explicit": false, "project": "Qt5Svg", "version": null},
        {"files": ["ECMConfig.cmake", "ECMConfigVersion.cmake"],
"explicit": true, "project": "ECM", "version": null},
        {"files": ["Qt5ConfigVersion.cmake", "Qt5Config.cmake"],
"explicit": true, "project": "Qt5", "version": null},
        {"files": ["Qt5WidgetsConfigVersion.cmake",
"Qt5WidgetsConfig.cmake"], "explicit": false, "project": "Qt5Widgets",
"version": null},
        {"files": ["FindEigen3.cmake"], "explicit": true, "project":
"Eigen3", "version": "(2.91.0)"}
]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/release-team/attachments/20141014/67a4987b/attachment.html>


More information about the release-team mailing list