[CMake] Copying plugins into a bundle

Michael Jackson mike.jackson at bluequartz.net
Mon Feb 14 12:14:54 EST 2011


You may want to take a look at some of the macros that I have created just for this purpose: copying my own plugins plus some of Qt's plugins into the application bundle.

http://scm.bluequartz.net/support-libraries/cmp/trees/master
Take a look at the cmpCMakeMacros.cmake file


One of my projects that uses the "CMP" project as a git submodule is here:

http://scm.bluequartz.net/eim/iphelper

Basically the "IPHelper" project creates a Qt based desktop app that uses the Qt image loading codecs plus my own plugins. All are packaged into the OS X App bundle (or windows install directory).

BSD license for all the cmake code.

Hope that helps.
--
Mike Jackson <www.bluequartz.net>

On Feb 14, 2011, at 12:02 PM, Peter Kümmel wrote:

> On 14.02.2011 17:23, David Cole wrote:
>> On Sat, Feb 12, 2011 at 12:41 PM, Peter Kümmel<syntheticpp at gmx.net>  wrote:
>> 
>>> On 12.02.2011 18:26, Peter Kümmel wrote:
>>> 
>>>> I wanna create a bundle on OSX with fixup_bundle but I have problems with
>>>> plugins.
>>>> 
>>>> The plugins are build with add_library(MODULE) into
>>>> ${CMAKE_BINARY_DIR}/plugins.
>>>> 
>>>> set(app ${CMAKE_BINARY_DIR}/bin/b.app)
>>>> install(CODE
>>>>      "file(GLOB_RECURSE plugins
>>>> \"\${CMAKE_BINARY_DIR}/plugins/*${CMAKE_SHARED_MODULE_SUFFIX}\")
>>>>      include(BundleUtilities)
>>>>      fixup_bundle(\"${app}\" \"\${plugins}\" \"\")"
>>>>      COMPONENT RUNTIME)
>>>> 
>>>> Does not work, cmake says it does "*NOT* copying" the plugin.
>>>> 
>>> 
>>> And what does it mean "copying"? from where to where?
>>> 
>>> 
>>>  Is there a way to enable copying? Or Have I ti install
>>>> them into the bundle before calling fixup.
>>>> 
> 
>> 
>> See this bug and its related issues for details:
>> http://public.kitware.com/Bug/view.php?id=9744
>> 
>> The gist of it is that, yes, you do have to copy/install your plugins into
>> the bundle first before calling fixup_bundle. This is a change in behavior
>> between CMake 2.8.2 and 2.8.3 as a result of the above bug fix.
>> 
> 
> OK, I've solved this by directly building into the bundle path by setting
> CMAKE_LIBRARY_OUTPUT_DIRECTORY and by installing Qt's plugins into the
> bundle dir which is below bin/.
> 
> Is it a common practice to use 'install' just for copying files?
> 
>> 
>> And to answer " And what does it mean "copying"? from where to where?":
>> 
>> Copying from outside the bundle somewhere to inside the bundle in its
>> "embedded" location. As it does with the automatically-pulled-in
>> prerequisite libraries.
>> 
> 
> I assume on mac all files listed by otool -L?
> 
> Many thanks,
> Peter
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list