qmake generator for cmake?

William A. Hoffman billlist at nycap.rr.com
Sun Jan 29 04:12:36 CET 2006


At 09:59 PM 1/28/2006, Tanner Lovelace wrote:
>On 1/28/06, William A. Hoffman <billlist at nycap.rr.com> wrote:
>
>> So, I have a question.   When you say you want to create a framework.
>> Will the framework consist of on shared library or a group of them?
>
>A basic framework is just a shared library, any needed headers, libraries,
>and resources.  So, yes, it could be either one or a group.
>
>One of the nice things about frameworks, btw,
>is their ability to be versioned.  Generally, all the shared libs, headers,
>etc... goes in a directory like this:
>
>/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
>/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/
>/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/
>/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/
>
>Then you have links from the
>
>/System/Library/Frameworks/OpenGL.framework/
>
>directory to the current version.  Since mach-o embeds the library path
>into executables, if you like with a framework, then it gets upgraded, you'll
>still dynamically access the correct library as long as its versioned path
>stays the same.
>
>It is possible to combine frameworks into "umbrella frameworks" but
>the only ones of those I know are system frameworks.
>
>I consider myself a fair c++ hacker.  I could take a look at the cmake
>code too.  So, where should we be looking? :-)

There would be two places to look.   As long as we are not talking about
umbrella frameworks it should not be too hard.  
Here is a thread about it on the cmake list: 
http://public.kitware.com/pipermail/cmake/2005-December/007736.html

To implement this, it would have to be done in two places:
1. the unix makefile generator.  cmLocalUnixMakefileGenerator.cxx
For a similar thing, you can see the support for Mac APP bundles
in cmake:

cmLocalUnixMakefileGenerator3::WriteExecutableRule

Look for MACOSX_BUNDLE

For a framework, it would be something similar, but in
cmLocalUnixMakefileGenerator3
::WriteSharedLibraryRule

-Bill



More information about the Kde-buildsystem mailing list