On Thu, Mar 31, 2011 at 8:29 AM, Michael Jackson <span dir="ltr"><<a href="mailto:mike.jackson@bluequartz.net">mike.jackson@bluequartz.net</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
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?<br>
</blockquote><div><br></div><div>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...)</div>
<div><br></div><div>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.</div><div><br></div><div>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...</div>
<div><br></div><div>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"...</div>
<div><br></div><div>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.</div><div><br></div><div>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.</div>
<div><br></div><div>(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...)</div>
<div><br></div><div><br></div><div>Sorry for the hassle,</div><div>David</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
Thanks<br>
___________________________________________________________<br>
Mike Jackson <a href="http://www.bluequartz.net" target="_blank">www.bluequartz.net</a><br>
<br>
<br>
</div><div><div></div><div class="h5">On Mar 30, 2011, at 11:45 PM, <a href="mailto:clinton@elemtech.com">clinton@elemtech.com</a> wrote:<br>
<br>
> I think you are running into an error message introduced with this commit.<br>
> <<a href="http://cmake.org/gitweb?p=cmake.git;a=commit;h=c2895f48a4e79af49937b9e6a260076440b1a67a" target="_blank">cmake.org/gitweb?p=cmake.git;a=commit;h=c2895f48a4e79af49937b9e6a260076440b1a67a</a>><br>
> You can read about the change which was to prevent problems.<br>
> Does it not apply to you and its being too restrictive?<br>
><br>
> Clint<br>
><br>
> ----- Reply message -----<br>
> From: "Michael Jackson" <<a href="mailto:mike.jackson@bluequartz.net">mike.jackson@bluequartz.net</a>><br>
> Date: Wed, Mar 30, 2011 4:50 pm<br>
> Subject: [CMake] BundleUtilities Error between 2.8.3 and 2.8.4<br>
> To: "CMake ML" <<a href="mailto:cmake@cmake.org">cmake@cmake.org</a>><br>
><br>
> 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.<br>
><br>
> OS X 10.6.7, CMake 2.8.3 Xcode 3.2.x tool set.<br>
><br>
> Here is the output from the "make install"<br>
> -- #------------ Starting OS X Tool Fixup --------------------------<br>
> -- fixup_bundle<br>
> -- app='/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'<br>
> -- libs=''<br>
> -- dirs='/Users/mjackson/Workspace/EIM-emmpm/Build/Bin;/Users/mjackson/Workspace/EIM-emmpm/Build/Bin'<br>
> -- fixup_bundle: preparing...<br>
> -- fixup_bundle: copying...<br>
> -- 1/6: *NOT* copying '/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'<br>
> -- 2/6: copying '/Users/Shared/Toolkits/tiff/lib/libtiff_debug.dylib'<br>
> -- 3/6: copying '/Users/mjackson/Workspace/EIM-emmpm/Build/Bin/libEMMPMLib_debug.dylib'<br>
> -- fixup_bundle: fixing...<br>
> -- 4/6: fixing up '/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'<br>
> exe_dotapp_dir/='/Users/Shared/Toolkits/emmpm/tools.app/'<br>
> item_substring='/Users/Shared/Toolkits/emmpm/tools/emmp'<br>
> resolved_embedded_item='/Users/Shared/Toolkits/emmpm/tools/emmpm_debug'<br>
><br>
> Install or copy the item into the bundle before calling fixup_bundle<br>
><br>
> 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):<br>
> cannot fixup an item that is not in the bundle...<br>
> Call Stack (most recent call first):<br>
> /Users/Shared/Toolkits/CMake-2.8.4/CMake-2.8.4.app/Contents/share/cmake-2.8/Modules/BundleUtilities.cmake:645 (fixup_bundle_item)<br>
> apps/OSX_Scripts/emmpm_CompleteBundle.cmake:86 (fixup_bundle)<br>
> apps/cmake_install.cmake:44 (INCLUDE)<br>
> cmake_install.cmake:33 (INCLUDE)<br>
><br>
><br>
> 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.<br>
><br>
> Then source to the project is located at <a href="http://scm.bluequartz.net/eim/emmpm" target="_blank">http://scm.bluequartz.net/eim/emmpm</a><br>
><br>
><br>
> Thanks<br>
> ___________________________________________________________<br>
> Mike Jackson <a href="http://www.bluequartz.net" target="_blank">www.bluequartz.net</a><br>
> Principal Software Engineer <a href="mailto:mike.jackson@bluequartz.net">mike.jackson@bluequartz.net</a><br>
> BlueQuartz Software Dayton, Ohio<br>
><br>
> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
><br>
><br>
> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</div></div></blockquote></div><br>