[cmake-developers] How should Mac frameworks work?

Clinton Stimpson clinton at elemtech.com
Mon Jul 1 13:21:55 EDT 2013


On Monday, July 01, 2013 06:51:01 PM Stephen Kelly wrote:
> Clinton Stimpson wrote:
> > With the refactor IMPORTED_LOCATION in generated export files went from
> > /path/to/foo.framework/foo
> > to
> > /path/to/foo.framework/Version/A/foo
> > That change naturally came out of the refactor.
> > 
> > Since for non-frameworks, the property is the location of the actual file
> > on disk, it seemed this was a good change.
> 
> Thanks for the info. Does this mean that before 2.8.11, I should populate
> the IMPORTED_LOCATION with /path/to/foo.framework/foo, and after I should
> populate it with /path/to/foo.framework/Version/A/foo ?
> 
> If there is no version check in the export file, doesn't that mean that an
> export generated with 2.8.11 does not work with earlier versions? That's
> something that should be switched on a version check if it works differently
> with earlier versions.
> 

This change hasn't been released yet and will go into CMake 2.8.12.
As far as I know, it really doesn't matter which of the 2 you use for 
IMPORTED_LOCATION as they both work.

As a test, I did an experiment with the CMake/Tests/ExportImport test.
I built the Export project with master, and the Import project with CMake 
2.8.11 and it worked fine.

Similarly, using lib/libfoo.so instead of lib/libfoo.so.1.2 for 
IMPORTED_LOCATION also works, doesn't it?  But the latter would be preferred 
if there are multiple versions are installed.

If Qt were to put multiple versions of libraries into one framework, then I 
think the IMPORTED_LOCATION should be more specific.

-- 
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com



More information about the cmake-developers mailing list