[CMake] Changes made for Mac fixup_bundle

Clinton Stimpson clinton at elemtech.com
Thu Nov 7 10:12:02 EST 2013


BundleUtilities.cmake assumes a bundle layout, which is

App.app/
  Contents/
    MacOS/
    Frameworks/

Instead, you have
install/
  bin/TestApp
  Frameworks/
  MacOS/

Which does not work.  You could try overriding the relative placement of 
libraries with something like this:

  function(gp_item_default_embedded_path_override item path)
    set(path @executable_path PARENT_SCOPE)
  endfunction()

Or modify the layout of your install tree.

Clint


On Wednesday, October 23, 2013 04:07:01 PM Yoon, Jong Seo wrote:
> The command I pass to fixup_bundle is
> 
> fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${LIBRARY_DIRS}\")
> 
> The arguments printed out is
> 
> APPS =  
> /Users/jongseoyoon/jsy/crkit/builds/release-1.6_build_2.8.3_2nd/crkit_build
> /install/bin/TestApp QTPLUGINS =
> LIBRARY_DIRS =  
> /Users/foo/build/install/itk/lib/InsightToolkit/Users/foo/build/install/vtk
> /lib/vtk-5.6/Users/foo/build/install/qt-4.8.4/Users/foo/build/install/Framew
> orks/vtk-5.6.1/lib//Users/foo/build/install/Frameworks/qt-4.8.4/lib/Users/fo
> o/build/install/Frameworks/InsightToolkit
> 
> The QTPLUGINS are empty for both cmake 2.8.3 and cmake 2.8.11.2.
> I don't use QTPLUGINS, but does this need to be not empty?
> 
> Regarding the item_substring, that is not a typo. It does come out that way,
> and I tried to find where that is occurring, but I couldn't. Could that be
> the reason by it's failing to execute fixup_bundle?
> 
> Thank you so much for helping me out!
> 
> Sincerely,
> 
> Jong
> 
> -----Original Message-----
> From: Clinton Stimpson [mailto:clinton at elemtech.com]
> Sent: Tuesday, October 22, 2013 5:02 PM
> To: cmake at cmake.org
> Cc: Yoon, Jong Seo
> Subject: Re: [CMake] Changes made for Mac fixup_bundle
> 
> 
> Is this a typo?
>  item_substring='/Users/foo/build /install/MacO'
> 
> Can you please post the arguments you are passing to fixup_bundle()?  The
> arguments are also printed out, for example: fixup_bundle
>    app='/.../cmake/build/Tests/BundleUtilities/testdir2/testbundleutils2'
>    libs='/.../cmake/build/Tests/BundleUtilities/testdir2/module2.so'
>    dirs='/.../cmake/build/Tests/BundleUtilities'
> 
> Clint
> 
> On Tuesday, October 22, 2013 05:16:20 PM Yoon, Jong Seo wrote:
> > Hi Everyone,
> > 
> > I have a question regarding the changes cmake changes from 2.8.3 to
> > 2.8.4 and above.
> > 
> > I am getting this error when I try to make a dmg file for Mac using
> > cmake 2.8.11.2.
> > 
> > exe_dotapp_dir/='/Users/foo/build/install/bin/'
> > item_substring='/Users/foo/build /install/MacO'
> > resolved_embedded_item='/Users/foo/build/install/MacOS/libITKBasicFilters.
> > 3. 20.dylib'
> > 
> > Install or copy the item into the bundle before calling fixup_bundle.
> > Or maybe there's a typo or incorrect path in one of the args to
> > fixup_bundle?
> > 
> > CMake Error at
> > /Users/foo/build/install/cmake/share/cmake-2.8/Modules/BundleUtilities
> > .cmak
> > e:568 (message): cannot fixup an item that is not in the bundle...
> > Call Stack (most recent call first):
> > /Users/foo/build/install/cmake/share/cmake-2.8/Modules/BundleUtilities
> > .cmake
> > 
> > :656 (fixup_bundle_item)
> > 
> > /Users/foo/build/bingcc/cmake_install.cmake:39
> > (fixup_bundle)
> > 
> > The package I am trying to build works for cmake 2.8.3, but the error
> > message above shows up when I try to build it with cmake 2.8.4 and above.
> > Was there any changes to fixup_bundle from cmake 2.8.3 to cmake 2.8.4?
> > 
> > Can anyone tell me what the error means?
> > 
> > I am making this package with itk 3.20.1, vtk 5.6.1, and qt 4.8.4.
> > 
> > Thank you so much for your help!
> > 
> > Sincerely,
> > 
> > Jong

-- 
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com


More information about the CMake mailing list