On 01/18/2017 03:14 PM, Ben Boeckel wrote:
> So I talked with Rob about this a bit and the INTERFACE bit is actually
> the *exporting* of the target. Installing the target can install the
> objects. I think the way this could work is that if it is installed, the
> objects go and if they are exported,

I agree something along these lines is the way to go.  The limitation of
not being able to install object libraries is only there because when
object libraries were first implemented they had a very specific purpose
and we didn't want to have to delay them just to think through all the
semantics of installation.

> they are exported as an INTERFACE library which supports a
> $<TARGET_OBJECTS> genex (and if the target is not installed, it
> wouldn't work).

We should also consider exporting them as something like

  add_library(myobjlib OBJECT IMPORTED)
  set_property(TARGET myobjlib PROPERTY IMPORTED_OBJECTS ...)

There is no reason it has to specifically be an INTERFACE library.
In fact if we don't also work out target_link_libraries semantics
for object libraries then we can't export them as INTERFACE libraries
or tll() with them would have to be defined.

-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

Reply via email to