[cmake-developers] External objects with IDE generators

Stephen Kelly steveire at gmail.com
Thu Feb 27 11:20:08 EST 2014


Brad King wrote:

> On 02/27/2014 03:32 AM, Stephen Kelly wrote:
>> IDE generators are problematic though.
>> 
>> 'git grep GetExternalObjects' shows that the IDEs mostly don't call
>> GetExternalObjects at all.
> 
> In this discussion we must distinguish "external objects" that are
> explicit .o files mentioned in the list of sources and OBJECT library
> objects.

Why do we have to distinguish them? I'm trying to not distinguish them. Is 
the reason related to what you write below about VS10?

> All the generators, including the IDE generators, funnel
> handling of OBJECT library objects through UseObjectLibraries.

Yes, I'm trying to eliminate UseObjectLibraries. It requires that the list 
of object libraries is pre-populated (by calling LookupObjectLibraries) and 
the list of Objects and the ObjectDirectory are pre-populated by the Global 
generators. 

Instead we need to be able to determine the objects on demand, based on the 
calling context.

> GetExternalObjects is a cmGeneratorTarget method to access the
> source files classified as external objects.

Yes. My intention was to make GetExternalObjects 'the way' to get the 
objects (without distinction) by evaluating TARGET_OBJECTS in 
cmGeneratorExpressionEvaluator.

> 
>> Xcode does it's own thing entirely.
> 
> Hmm, that is true for VS < 10 also.  All those generators still
> have their own loops to classify sources.  They will have to
> be refactored to use cmGeneratorTarget.  Note that the IDE
> generators also need to deal with source groups.

Can you do this? I'm not familiar enough with the generators or the IDEs 
themselves.

Thanks,

Steve.





More information about the cmake-developers mailing list