[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: kdesrc-build: cmake should take local (instead of system-wide) cmake modules
From:       "gregor.mi.sw" <codestruct () posteo ! org>
Date:       2018-05-09 11:12:10
Message-ID: 3ef9f84c1b3b677348c1ead9f98d85bd () posteo ! de
[Download RAW message or body]



Am 09.05.2018 08:19 schrieb Ben Cooksley:
> On Wed, May 9, 2018 at 9:28 AM, gregor.mi.sw <codestruct@posteo.org> 
> wrote:
>> 
>> 
>> 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?
> 
> If you have previously run CMake without setting CMAKE_PREFIX_PATH you
> will need to remove your build directory first, otherwise it will
> reuse modules it has already found.

Hello Ben, I already removed the build dir (forgot to mention that). I 
assume that it should be sufficient to delete the build dir of the 
application that should be configured 
(/home/gregor/kde/src/build/kde/workspace/kinfocenter/) and not also 
those of the imported libraries (KF5Service, KF5Solid, KF5Wayland etc.). 
I wonder if there is maybe an additional (global) cmake cache or a 
special behaviour of kdesrc-build.

Gregor

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic