[CMake] Copying plugins into a bundle

Peter Kümmel syntheticpp at gmx.net
Mon Feb 14 12:02:08 EST 2011


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



More information about the CMake mailing list