On 08.05.2018 23:15, Milian Wolff wrote:
On Dienstag, 8. Mai 2018 22:40:39 CEST gregor.mi.sw wrote:
Hello,
I have a question regarding kdesrc-build and CMake.
I setup the build environment variables and ran kdesrc-build and got a
compiler error kinfocenter.
I investigated
/home/gregor/kde/src/build/kde/workspace/kinfocenter/CMakeCache.txt and
found the following lines
//The directory containing a CMake configuration file for KF5Service.
KF5Service_DIR:PATH=/usr/lib64/cmake/KF5Service
//The directory containing a CMake configuration file for KF5Solid.
KF5Solid_DIR:PATH=/usr/lib64/cmake/KF5Solid
//The directory containing a CMake configuration file for KF5Wayland.
KF5Wayland_DIR:PATH=/usr/lib64/cmake/KF5Wayland
The directories of the needed KF5 frameworks point to the system wide
installed ones.
I removed the system-wide devel package for solid (because it caused the
compiler error) and ran kdesrc-build again:
//The directory containing a CMake configuration file for KF5Service.
KF5Service_DIR:PATH=/usr/lib64/cmake/KF5Service
//The directory containing a CMake configuration file for KF5Solid.
KF5Solid_DIR:PATH=/home/gregor/kde/usr/lib64/cmake/KF5Solid
//The directory containing a CMake configuration file for KF5Wayland.
KF5Wayland_DIR:PATH=/usr/lib64/cmake/KF5Wayland
Now it shows the correct (local) path for solid (but not the other ones). Is
there an environment variable or something I have to set to tell Cmake to
always look for local modules first?
Try CMAKE_PREFIX_PATH. See e.g. this old blog post on the matter:
https://blogs.kde.org/2008/12/12/how-get-cmake-find-what-you-want-it
Thanks for the hint. The variable was already set:
CMAKE_PREFIX_PATH=/home/gregor/kde/usr:
In the blog post, it is said, that CMAKE_PREFIX_PATH is searched _first_. I find it strange that I
had to uninstall the system-wide devel package in order to have cmake pick up the library in
/home/gregor/kde/usr. And for the other libraries it still uses /usr. Any idea how to investigate
this further?
Gregor