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