[CMake] BundleUtilities Error between 2.8.3 and 2.8.4
David Cole
david.cole at kitware.com
Thu Mar 31 12:01:15 EDT 2011
On Thu, Mar 31, 2011 at 8:29 AM, Michael Jackson <
mike.jackson at bluequartz.net> wrote:
> So things did majorly change between the two versions. My questions are now
> 1) How do I "fixup" an executable that is NOT an application bundle and 2)
> Do I now need to supply my own copy rules for things like Qt Frameworks, 3rd
> party, but non-system libraries?
>
1) Now that we're strictly producing an error out when a file is not
"inside" the bundle, fixing up a plain command line executable that is not
inside a bundle structure on the Mac has been made "ill defined"
(inadvertently...)
We do not have a test in the CMake test suite of calling fixup_bundle on
such a creature. If we did, I would have caught this immediately when making
that change.
As a possible workaround (not 100% certain it will work, but I think it
should), "pretend" your app is in a bundle simply by naming its containing
directory with a name ending in ".app". You could even fake it out by
renaming the directory to have the ".app", calling fixup_bundle, and then
renaming the dir back to its original name. This is a workaround (*cough*
hack *cough*), and only suggested so you can use it immediately if it works
for you...
In the meantime, this should be fixed to deal with this case on the Mac,
since it does essentially the same thing on Windows and Linux, where there
is no convention of a "bundle structure"...
We need a new test added that is shown to fail presently, and then a fix to
make it pass, while still maintaining all our other existing fixup_bundle
behavior.
2) You need to supply install rules for "dynamically loaded shared
libraries" (like plugins) -- fixup_bundle will only copy in files that it
determines are necessary based on otool -L output. It no longer copies in
the "${libs}" list as it used to in CMake 2.8.3 and earlier.
(Which is why we added the error message to 2.8.4 -- to explicitly call
attention to the fact that we inadvertently changed the behavior with one of
the bug fixes we allowed in the 2.8.3 release...)
Sorry for the hassle,
David
>
> Thanks
> ___________________________________________________________
> Mike Jackson www.bluequartz.net
>
>
> On Mar 30, 2011, at 11:45 PM, clinton at elemtech.com wrote:
>
> > I think you are running into an error message introduced with this
> commit.
> > <
> cmake.org/gitweb?p=cmake.git;a=commit;h=c2895f48a4e79af49937b9e6a260076440b1a67a
> >
> > You can read about the change which was to prevent problems.
> > Does it not apply to you and its being too restrictive?
> >
> > Clint
> >
> > ----- Reply message -----
> > From: "Michael Jackson" <mike.jackson at bluequartz.net>
> > Date: Wed, Mar 30, 2011 4:50 pm
> > Subject: [CMake] BundleUtilities Error between 2.8.3 and 2.8.4
> > To: "CMake ML" <cmake at cmake.org>
> >
> > Were there any major changes to the BundleUtilities.cmake file between
> 2.8.3 and 2.8.4? I have a project that installs just fine when running
> against CMake 2.8.3 but when using CMake 2.8.4 it errors out somewhere in
> BundleUtilities. I was wondering if there were any major changes to that
> file that would have caused issues when I upgraded.
> >
> > OS X 10.6.7, CMake 2.8.3 Xcode 3.2.x tool set.
> >
> > Here is the output from the "make install"
> > -- #------------ Starting OS X Tool Fixup --------------------------
> > -- fixup_bundle
> > -- app='/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'
> > -- libs=''
> > --
> dirs='/Users/mjackson/Workspace/EIM-emmpm/Build/Bin;/Users/mjackson/Workspace/EIM-emmpm/Build/Bin'
> > -- fixup_bundle: preparing...
> > -- fixup_bundle: copying...
> > -- 1/6: *NOT* copying '/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'
> > -- 2/6: copying '/Users/Shared/Toolkits/tiff/lib/libtiff_debug.dylib'
> > -- 3/6: copying
> '/Users/mjackson/Workspace/EIM-emmpm/Build/Bin/libEMMPMLib_debug.dylib'
> > -- fixup_bundle: fixing...
> > -- 4/6: fixing up '/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'
> > exe_dotapp_dir/='/Users/Shared/Toolkits/emmpm/tools.app/'
> > item_substring='/Users/Shared/Toolkits/emmpm/tools/emmp'
> > resolved_embedded_item='/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'
> >
> > Install or copy the item into the bundle before calling fixup_bundle
> >
> > CMake Error at
> /Users/Shared/Toolkits/CMake-2.8.4/CMake-2.8.4.app/Contents/share/cmake-2.8/Modules/BundleUtilities.cmake:557
> (message):
> > cannot fixup an item that is not in the bundle...
> > Call Stack (most recent call first):
> >
> /Users/Shared/Toolkits/CMake-2.8.4/CMake-2.8.4.app/Contents/share/cmake-2.8/Modules/BundleUtilities.cmake:645
> (fixup_bundle_item)
> > apps/OSX_Scripts/emmpm_CompleteBundle.cmake:86 (fixup_bundle)
> > apps/cmake_install.cmake:44 (INCLUDE)
> > cmake_install.cmake:33 (INCLUDE)
> >
> >
> > The library (EMMPMLib) is located in
> /Users/mjackson/Workspace/EIM-emmpm/Build/Bin and the executable is located
> in /Users/Shared/Toolkits/emmpm/tools/ with a name of emmpm_debug. Note that
> emmpm_debug is a command line application and NOT an actual .app bundle.
> >
> > Then source to the project is located at
> http://scm.bluequartz.net/eim/emmpm
> >
> >
> > Thanks
> > ___________________________________________________________
> > Mike Jackson www.bluequartz.net
> > Principal Software Engineer mike.jackson at bluequartz.net
> > BlueQuartz Software Dayton, Ohio
> >
> > _______________________________________________
> > 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
>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110331/d7dd6bd8/attachment.htm>
More information about the CMake
mailing list