[cmake-developers] New OBJECT library feature

Alexander Neundorf neundorf at kde.org
Mon Mar 19 17:29:27 EDT 2012


On Monday 19 March 2012, Brad King wrote:
> Hi Folks,
> 
> I've just pushed a new 'object-library' topic and merged to 'next'
> for testing.  David Cole and I have been working on it for a couple
> of weeks.  The following documentation added to the add_library
> command explains:
> 
> --------------------------------------------------------------------------
>   The signature
> 
>     add_library(<name> OBJECT <src>...)
> 
>   creates a special "object library" target.  An object library compiles
>   source files but does not archive or link their object files into a
>   library.  Instead other targets created by add_library or
>   add_executable may reference the objects using an expression of the
>   form $<TARGET_OBJECTS:objlib> as a source, where "objlib" is the
>   object library name.  For example:
> 
>     add_library(... $<TARGET_OBJECTS:objlib> ...)
>     add_executable(... $<TARGET_OBJECTS:objlib> ...)
> 
>   will include objlib's object files in a library and an executable
>   along with those compiled from their own sources.  Object libraries
>   may contain only sources (and headers) that compile to object files.
>   They may contain custom commands generating such sources, but not
>   PRE_BUILD, PRE_LINK, or POST_BUILD commands.  Object libraries cannot
>   be imported, exported, installed, or linked.
> --------------------------------------------------------------------------
> 
> Many of the documented restrictions are temporary until meaningful
> behavior can be defined and implemented for them in a future version.
> It is easiest to simply disallow all but the basic use case for now.
> 
> This feature plays a role similar to autotools convenience libraries
> but works with all toolchains and under VS and Xcode.  We've updated
> all primary generators to support object libraries including the Ninja
> generator.  Until this goes into master watch out for conflicts when
> making changes to the other generators.

Cool :-)
This must be one of the most requested missing features :-)
 
> We are still missing support in the "Extra" generators to present
> OBJECT libraries in the project files.  They need to appear much like
> STATIC libraries but have no library/archive file.  We request help
> from the contributors of Extra generators to handle them.

Can you please create a ticket for each of them, and assign them to me ?
I'll see that I can do the Eclipse one still for 2.8.8.
CodeBlocks/QtCreator will have to wait until 2.8.9 I think.

Alex


More information about the cmake-developers mailing list