[CMake] Copying plugins into a bundle

Peter Kümmel syntheticpp at gmx.net
Mon Feb 14 13:04:45 EST 2011


On 14.02.2011 18:14, Michael Jackson wrote:
> 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
>

Hi Mike,

I already found your project and many of your mails on this
list while googling for a solution, seems you are very deep
in this stuff!

Thanks,
Peter

>
> 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
>
> _______________________________________________
> 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