[CMake] LOCATION target property, generator expressions

Hendrik Greving hendrik.greving.smi at gmail.com
Tue Oct 2 13:12:01 EDT 2018


By the way, the new generator expression support in 3.13, is this for
LINK_FLAGS or LINK_OPTIONS. And regardless of the former, will it be
possible to compute a relative path based on generator expressions, i.e.
file(RELATIVE $<TARGET_FILE_DIR:mytarget> $<TARGET_FILE_DIR:mytargetlib>)?

On Thu, Sep 27, 2018 at 5:03 PM Hendrik Greving <
hendrik.greving.smi at gmail.com> wrote:

> Thanks. Ok one step back. What we want is to have the same relative path
> from binary/executable to linked library in build and install tree (which
> we assume is the same for us). Looks like by default, e.g. cmake 3.9, puts
> in an absolute path. The current (c-)makefiles compute the relative part of
> an executable -> library by using LOCATION and add this to
> -Wl,-rpath=$ORIGIN/[relative part]. We want to do the same w/o LOCATION
> (i.e. resolving CMP0026)
>
> On Thu, Sep 27, 2018 at 7:29 AM Brad King <brad.king at kitware.com> wrote:
>
>> On 09/26/2018 10:23 AM, Hendrik Greving wrote:
>> > Is there any way before 3.13 to achieve what I need? Right now we
>> > modify LINK_FLAGS based on something that is computed with values
>> > from LOCATION.
>> [snip]
>> > our cmake setup is using LOCATION property for two targets to compute
>> > a relative path from these two, and adds this to LINK_FLAGS
>> > (for rpath, but irrelevant in this context).
>>
>> To at least see if 3.13 will support your use case, you could
>> try a nightly binary from here:
>>
>>   https://cmake.org/files/dev/?C=M;O=D
>>
>> Use `$<TARGET_FILE_DIR:mytarget>/..` to refer to a path relative
>> to the target file location.
>>
>> I've never seen a need to adjust link flags based on the target
>> location.  CMake has several features for RPATH support.  What
>> are you really trying to do?
>>
>> -Brad
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20181002/961f564a/attachment.html>


More information about the CMake mailing list