Building kitinerary in the PIM docker

Ingo Klöcker kloecker at kde.org
Mon Feb 28 19:08:55 GMT 2022


On Montag, 28. Februar 2022 18:39:34 CET Glen Ditchfield wrote:
> On Monday, February 28, 2022 10:28:19 A.M. CST Volker Krause wrote:
> > On Montag, 28. Februar 2022 13:48:04 CET Ingo Klöcker wrote:
> > > On Montag, 28. Februar 2022 05:25:49 CET Glen Ditchfield wrote:
> > > > I'm trying to build kitinerary master with the PIM docker image,
> > > > but the build fails.  The error.log file ends with this:
> > > > ===========
> > > > -- Configuring done
> > > > 
> > > > CMake Error at src/lib/CMakeLists.txt:7 (add_library):
> > > >   Target "KPimItinerary" links to target "Qt5::QmlPrivate" but the
> > > > 
> > > > target was
> > > > 
> > > >   not found.  Perhaps a find_package() call is missing for an
> > > >   IMPORTED
> > > >   target, or an ALIAS target is missing?
> > > > 
> > > > ===========
> > > > 
> > > > What's missing?
> > > 
> > > The private headers of Qt QML are missing in the image. You can
> > > install them in the running Docker container. (I cannot tell you
> > > how because I don't know what distribution the image is based on.)
> > > The downside is that anything you install in a running Docker
> > > container is lost as soon as the container exits (unless you do
> > > some trickery with mounting a local directory).
> 
> Ingo, the PIM Docker image (https://community.kde.org/KDE_PIM/Docker) is
> based on Neon, and uses a host directory so `apt` installs persist.

I don't think so. The host directory is mounted as /home/neon/kdepim in the 
container, but `apt` installs into /include, /usr and other directories.

> > That would be my understanding as well, OTOH I do see
> > "qtdeclarative5-private- dev" listed in
> > https://invent.kde.org/pim/kdepim-docker/-/blob/master/ Dockerfile,
> > which sounds like exactly that package...
> 
> qtdeclarative5-private- dev is installed.
> 
> Is this a cmake configuration file problem?  It's amazing how little I
> understand about cmake, but I did try adding "QmlPrivate" to the end of
> the statement
>     find_package(Qt${QT_MAJOR_VERSION} ${QT_REQUIRED_VERSION} REQUIRED
>     COMPONENTS Gui Qml)
> in the top-level CMakeLists.txt.  That just caused the cmake error
> messsage 'Could not find a package configuration file provided by
> "Qt5QmlPrivate"', and I haven't found a package that provides the
> required configuration files.

kguiaddons does this:
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE Private)

Try doing something like
find_package(Qt${QT_MAJOR_VERSION}Qml ${REQUIRED_QT_VERSION} REQUIRED 
NO_MODULE Private)
after the find_package() call mentioned by you. I'm also a newbie when it 
comes to cmake. I always look at and steal from other `CMakeLists.txt`s. :-)

Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20220228/d1756722/attachment.sig>


More information about the kde-pim mailing list