[CMake] osx bundle question

Zaak Beekman zbeekman at gmail.com
Sun Apr 20 23:01:22 EDT 2014


I compile my Fortran and C project using the GCC and Intel compilers on Mac
OS X. After calls to fixup_bundle the required dynamic libraries get copied
into the Contents/MacOS/ directory, and libgcc_s.1.dylib is copied there
when compiling with either of the compilers. However, the output of otool
-L ...../Contents/MacOS/myapp is different depending on which compiler was
used. For the GCC compiled and fixed up executable the output is:
`@executable_path/../MacOS/libgcc_s.1.dylib (compatibility version 1.0.0,
current version 1.0.0)` whereas for the Intel compiled bundle executable it
is: `/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 2577.0.0)`

So my questions are:

   1. Will the present a problem running the packaged binary on other Macs
   which may not have compilers installed?
   2. Why did this happen?
   3. Is there something I can do to fix it, if it is broken.

Bellow is some of the output from the 'install' target, where the
'fixup_bundle' command is called:

Intel:
Install the project...
-- Install configuration: "Release"
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Info.plist
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/MacOS
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/MacOS/myapp
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Resources
-- Installing:
/Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Resources/myapp.icns
-- fixup_bundle
--   app='/Volumes/MYAPP/legacy/APPLE/myapp.app'
--   libs=''
--   dirs=''
-- fixup_bundle: preparing...
-- fixup_bundle: copying...
-- 1/6: *NOT* copying
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- 2/6: copying '/usr/local/lib/libgcc_s.1.dylib'
-- 3/6: copying '/usr/local/lib/libstdc++.6.dylib'
-- fixup_bundle: fixing...
-- 4/6: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- 5/6: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/libgcc_s.1.dylib'
-- 6/6: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/libstdc++.6.dylib'
-- fixup_bundle: cleaning up...
-- fixup_bundle: verifying...
-- 
===========================================================================
-- Analyzing app='/Volumes/MYAPP/legacy/APPLE/myapp.app'
-- bundle='/Volumes/MYAPP/legacy/APPLE/myapp.app'
-- executable='/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- valid='1'
-- executable file 1:
/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp
-- verified='1'
-- info='Verified 1 executable files in
'/Volumes/MYAPP/legacy/APPLE/myapp.app''
-- 
-- verified='1'
-- info=''
-- 
-- fixup_bundle: done

gcc/gfortran:
Install the project...
-- Install configuration: "Release"
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Info.plist
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/MacOS
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/MacOS/myapp
-- Installing: /Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Resources
-- Installing:
/Volumes/MYAPP/legacy/APPLE/./myapp.app/Contents/Resources/myapp.icns
-- fixup_bundle
--   app='/Volumes/MYAPP/legacy/APPLE/myapp.app'
--   libs=''
--   dirs=''
-- fixup_bundle: preparing...
-- fixup_bundle: copying...
-- 1/8: *NOT* copying
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- 2/8: copying '/opt/local/lib/libgcc/libgcc_s.1.dylib'
-- 3/8: copying '/opt/local/lib/libgcc/libgfortran.3.dylib'
-- 4/8: copying '/opt/local/lib/libgcc/libquadmath.0.dylib'
-- fixup_bundle: fixing...
-- 5/8: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- 6/8: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/libgcc_s.1.dylib'
-- 7/8: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/libgfortran.3.dylib'
-- 8/8: fixing up
'/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/libquadmath.0.dylib'
-- fixup_bundle: cleaning up...
-- fixup_bundle: verifying...
-- 
===========================================================================
-- Analyzing app='/Volumes/MYAPP/legacy/APPLE/myapp.app'
-- bundle='/Volumes/MYAPP/legacy/APPLE/myapp.app'
-- executable='/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp'
-- valid='1'
-- executable file 1:
/Volumes/MYAPP/legacy/APPLE/myapp.app/Contents/MacOS/myapp
-- verified='1'
-- info='Verified 1 executable files in
'/Volumes/MYAPP/legacy/APPLE/myapp.app''
-- 
-- verified='1'
-- info=''
-- 
-- fixup_bundle: done

Thanks,

Izaak Beekman
===================================
(301)244-9367
Princeton University Doctoral Candidate
Mechanical and Aerospace Engineering
ibeekman at princeton.edu

UMD-CP Visiting Graduate Student
Aerospace Engineering
ibeekman at umiacs.umd.edu
ibeekman at umd.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20140420/dc037b74/attachment.html>


More information about the CMake mailing list