Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[gentoo-user] How to cmake?

78 views
Skip to first unread message

Peter Humphrey

unread,
Aug 25, 2021, 11:00:03 PM8/25/21
to
Hello list,

I wanted to try KDFM, which I read about in Linux Format. It's a file manager
with some interesting features. So I went to sourceforge.net/projects/kdfm,
downloaded the source and extracted it to /usr/local/src/kdfm-code.

What do I do next? I tried 'cmake ./src' and similar and got Unknown CMake
command "qt5_wrap_ui". Googling for that found a few helpful pages, but I
think I'd need to be a Qt5 developer to understand them.

Can anyone point me in the direction to find out what to do?

--
Regards,
Peter.

Jack

unread,
Aug 25, 2021, 11:10:04 PM8/25/21
to
Minor point, I would recommend creating a build subid, cc into it and
the "cmake path-to-source-dir".  I think most KDE stuff doesn't like
building in-tree.  Equery doesn't identify any package for qt5_wrap_ui. 
If it's part of the source, then you might need some parameter for
cmake, or else there's another dependency not packaged in Gentoo.

Jack

tastytea

unread,
Aug 26, 2021, 6:00:05 AM8/26/21
to
You need to run cmake in the directory that has the top-level
CMakeLists.txt. Use cmake -S . -B build from the top-level directory.
This whill use . as source directory and build as build directory.
You will need kde-frameworks/extra-cmake-modules.¹

Kind regards, tastytea

¹ <https://sourceforge.net/p/kdfm/code/ci/master/tree/CMakeLists.txt#l8>

--
Get my PGP key with `gpg --locate-keys tast...@tastytea.de` or at
<https://tastytea.de/tastytea.asc>.

Peter Humphrey

unread,
Aug 26, 2021, 10:30:04 AM8/26/21
to
On Thursday, 26 August 2021 10:49:38 BST tastytea wrote:

> You need to run cmake in the directory that has the top-level
> CMakeLists.txt. Use cmake -S . -B build from the top-level directory.
> This whill use . as source directory and build as build directory.
> You will need kde-frameworks/extra-cmake-modules.¹

Okay, I did that. It ran for much longer, and threw no errors, and once again
it ended with 'Build files have been written to: /usr/local/src/kdfm-code/src'.
Then:

wstn /usr/local/src/kdfm-code # cmake ./src
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-
root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-
root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-
root'
-- Could not set up the appstream test. appstreamcli is missing.
[...]
-- Configuring done
[...]
-- Generating done
-- Build files have been written to: /usr/local/src/kdfm-code/src

Google hasn't helped with appstreamcli being missing.

Have the build files been written or not? What do I do with them?

> ¹ <https://sourceforge.net/p/kdfm/code/ci/master/tree/CMakeLists.txt#l8>

I don't see the relevance of that.

Sorry to be thick, but my coding days are >30 years behind me, and that
was in a different area entirely.

--
Regards,
Peter.

tastytea

unread,
Aug 26, 2021, 10:50:03 AM8/26/21
to
On 2021-08-26 15:24+0100 Peter Humphrey <pe...@prh.myzen.co.uk> wrote:

> On Thursday, 26 August 2021 10:49:38 BST tastytea wrote:
>
> > You need to run cmake in the directory that has the top-level
> > CMakeLists.txt. Use cmake -S . -B build from the top-level
> > directory. This whill use . as source directory and build as build
> > directory. You will need kde-frameworks/extra-cmake-modules.¹
>
> Okay, I did that. It ran for much longer, and threw no errors, and
> once again it ended with 'Build files have been written to:
> /usr/local/src/kdfm-code/src'. Then:

Don't run cmake in src/, run it in the directory src is in.

> -- Could not set up the appstream test. appstreamcli is missing.

appstreamcli is in dev-libs/appstream.

> Have the build files been written or not? What do I do with them?

# This configures the build (checks for dependencies and so on)
cmake -S . -B build
# This compiles the sources
cmake --build build

The binary is in ./build/src/kdfm – you can install it globally with
sudo cmake --install build

Kind regards, tastytea

Mark Knecht

unread,
Aug 26, 2021, 10:50:04 AM8/26/21
to
Peter,
   I'm no expert at this but a year ago I wanted to try fixing a few bugs in the KDE solitaire game and was faced with understanding and building the code. After numerous problems like yours above I ended up deciding I needed a development environment and chose KDevelop. Once I did that, with a little more study, I was able to build the program and run it. You might give something like that a try.

   On the downside, KDevelop is pretty big and heavy. I don't know how the updates run on that program but building it would likely be a bit of a time sink if you don't already have it installed and then keeping it updated could possibly be more time. On Ubuntu it's a non-issue.

Good luck,
Mark 

Peter Humphrey

unread,
Aug 26, 2021, 11:10:03 AM8/26/21
to
On Thursday, 26 August 2021 15:39:53 BST tastytea wrote:

> Don't run cmake in src/, run it in the directory src is in.

I have been doing so.

--->8

> # This configures the build (checks for dependencies and so on)
> cmake -S . -B build
> # This compiles the sources
> cmake --build build
>
> The binary is in ./build/src/kdfm – you can install it globally with
> sudo cmake --install build

Excellent! Many thanks, kind Sir!

Aside: how much training and experience would be needed to reach that
level of competence?

--
Regards,
Peter.

tastytea

unread,
Aug 26, 2021, 12:30:03 PM8/26/21
to
On 2021-08-26 15:59+0100 Peter Humphrey <pe...@prh.myzen.co.uk> wrote:

> On Thursday, 26 August 2021 15:39:53 BST tastytea wrote:
>
> > Don't run cmake in src/, run it in the directory src is in.
>
> I have been doing so.
>
> --->8
>
> > # This configures the build (checks for dependencies and so on)
> > cmake -S . -B build
> > # This compiles the sources
> > cmake --build build
> >
> > The binary is in ./build/src/kdfm – you can install it globally with
> > sudo cmake --install build
>
> Excellent! Many thanks, kind Sir!

You're welcome. 😊

> Aside: how much training and experience would be needed to reach that
> level of competence?

It's really easy… if you're a programmer who uses cmake every day. 😄
I would expect projects to put this info into the readme file (and most
do), but apparently they didn't think that users might want to compile
it? 🙄
0 new messages