Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-09 Thread Brad King
On 11/09/2016 01:28 PM, maikel van den Hurk wrote:
>> Stephen Kelly wrote:
>> I believe it's because of a chicken-egg concern - the link libraries are the
>> basis for transitivity for other properties. I remember discussing that in
>> the mailing list back in the design phase.
> 
> When trying to remove the limitation I couldn't find any issue actually.

I think what may have happened was that originally we attempted to make
the value of each usage requirement property itself (get_property) have
the transitive closure already filled out.  Later we changed to making
the property itself non-transitive but have the genex evaluation take care
of transitivity instead.  This means there is no chicken-n-egg problem
for LINK_LIBRARIES anymore.

> I can make a PR on gitlab which will make this possible.

Thanks.  Note that changing $ behavior
will require a policy.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-09 Thread maikel van den Hurk
When trying to remove the limitation I couldn't find any issue actually. Do I 
overlook something here? If not I can make a PR on gitlab which will make this 
possible.


Maikel



Van: cmake-developers <cmake-developers-boun...@cmake.org> namens Stephen Kelly 
<steve...@gmail.com>
Verzonden: maandag 7 november 2016 01:23
Aan: cmake-developers@cmake.org
Onderwerp: Re: [cmake-developers] Add property to get all linked libraries 
including transitive ones

Brad King wrote:

> On 11/04/2016 09:52 AM, maikel van den Hurk wrote:
>> What about doing what was targeted with this bug:
>> https://cmake.org/Bug/view.php?id=12435?
>
> That issue is now tracked here:
>
>  https://gitlab.kitware.com/cmake/cmake/issues/12435
[https://gitlab.kitware.com/uploads/project/avatar/541/cmakelogo-centered.png]<https://gitlab.kitware.com/cmake/cmake/issues/12435>

Possibility to get all link libraries for a target? (#12435) · Issues · CMake / 
CMake<https://gitlab.kitware.com/cmake/cmake/issues/12435>
gitlab.kitware.com
This issue was created automatically from an original [Mantis 
Issue](https://cmake.org/Bug/view.php?id=12435). Further discussion may take 
place here.



>
> I've just added some notes to the discussion.
>
> Steve, do you recall why $<TARGET_PROPERTY:tgt,LINK_LIBRARIES>
> is not transitive as genexes for other usage requirements are?

I believe it's because of a chicken-egg concern - the link libraries are the
basis for transitivity for other properties. I remember discussing that in
the mailing list back in the design phase.

Thanks,

Steve.


--

Powered by www.kitware.com<http://www.kitware.com>

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-06 Thread Stephen Kelly
Brad King wrote:

> On 11/04/2016 09:52 AM, maikel van den Hurk wrote:
>> What about doing what was targeted with this bug:
>> https://cmake.org/Bug/view.php?id=12435?
> 
> That issue is now tracked here:
> 
>  https://gitlab.kitware.com/cmake/cmake/issues/12435
> 
> I've just added some notes to the discussion.
> 
> Steve, do you recall why $
> is not transitive as genexes for other usage requirements are?

I believe it's because of a chicken-egg concern - the link libraries are the 
basis for transitivity for other properties. I remember discussing that in 
the mailing list back in the design phase.

Thanks,

Steve.


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-04 Thread Brad King
On 11/04/2016 09:52 AM, maikel van den Hurk wrote:
> What about doing what was targeted with this bug: 
> https://cmake.org/Bug/view.php?id=12435?

That issue is now tracked here:

 https://gitlab.kitware.com/cmake/cmake/issues/12435

I've just added some notes to the discussion.

Steve, do you recall why $
is not transitive as genexes for other usage requirements are?

> Is this information already present in cmake-server right now?

Not sure.

> Still I believe that the suggestion of the bug mentioned is actually the 
> better path. 
[snip]
> write out properly ivy module descriptor

Without knowing more about an "ivy module descriptor" I cannot say whether
cmake-server or a generate-time solution from CMake is better.  I can say
I don't think it should be the responsibility of project code to generate
files for external tooling unrelated to the build process.  The tooling
should be able to extract the information from any CMake project, and the
cmake-server approach would allow that.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-04 Thread maikel van den Hurk
What about doing what was targeted with this bug: 
https://cmake.org/Bug/view.php?id=12435? That would really help a lot.

Is this information already present in cmake-server right now? Still I believe 
that the suggestion of the bug mentioned is actually the better path.


Van: Brad King <brad.k...@kitware.com>
Verzonden: donderdag 3 november 2016 12:53
Aan: maikel van den Hurk
CC: cmake-developers@cmake.org; Tobias Hunger
Onderwerp: Re: [cmake-developers] Add property to get all linked libraries 
including transitive ones

On 11/02/2016 04:23 PM, maikel van den Hurk wrote:
> We are trying to develop a proper C++ dependency management tool
> ...be able to get all transitive linked libraries

The cmake-server mode introduced in 3.7 was created to support tooling.
Perhaps something with that can be made to work if it doesn't provide
the needed information already.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-03 Thread Brad King
On 11/02/2016 04:23 PM, maikel van den Hurk wrote:
> We are trying to develop a proper C++ dependency management tool
> ...be able to get all transitive linked libraries

The cmake-server mode introduced in 3.7 was created to support tooling.
Perhaps something with that can be made to work if it doesn't provide
the needed information already.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-02 Thread Florent Castelli
One usage I would have had for this feature would have been to generate 
a pre-linked library.
Basically, merging a static library and its dependencies together (check 
ld -r) and output an object file for static linking (not a shared library).
This is required as merging static libraries may conflict on filenames 
in the archive (they could be renamed though) or generate huge archives 
(hey, here's 1000 copies of std::string and std::vector methods and 
their debug symbols).


Instead, I recursed on all the dependencies to generate an extra build 
step to merge everything. The file is small and can be cached.
We did that to save time for our iOS devs so they didn't have to rebuild 
our big C++ library all the time. We targeted iOS 7, so shared libraries 
were not available.


It's a bit more involved, but it would have been useful. Though, I 
understand it can be tricky to get the on-disk path to a library with 
all generators (we had 2 code paths, one for Xcode builds and another 
one for Ninja).


/Florent

On 02/11/2016 12:56, Brad King wrote:

On 11/01/2016 04:30 PM, maikel van den Hurk wrote:

obtain actually all transitive linked libraries of a specific target.

[snip]

this information is only fully available during generation time.

What is an example use case for this?  I don't think we can offer a
configure-time solution but perhaps there is a generate-time solution
to the use case.

-Brad



--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-02 Thread maikel van den Hurk
We are trying to develop a proper C++ dependency management tool which will 
combine Ivy together with CMake. Our intention is to open source this this 
modules later for everyone.

As we need to keep track of all dependencies we would like to be able to get 
all transitive linked libraries to be able to write out properly ivy module 
descriptor. We could try to write some logic which will go over all the targets 
and get from them LINK_LIBRARIES and INTERFACE_LINK_LIBRARIES, but given the 
knowledge of all transitive is available internally in CMake already it would 
great if this could be exposed at generate-time.


Maikel

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Re: [cmake-developers] Add property to get all linked libraries including transitive ones

2016-11-02 Thread Brad King
On 11/01/2016 04:30 PM, maikel van den Hurk wrote:
> obtain actually all transitive linked libraries of a specific target.
[snip]
> this information is only fully available during generation time.

What is an example use case for this?  I don't think we can offer a
configure-time solution but perhaps there is a generate-time solution
to the use case.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers