CMake:Bundles And Frameworks: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
No edit summary |
|||
Line 80: | Line 80: | ||
Frameworks/ | Frameworks/ | ||
libr1.framework/ | libr1.framework/ | ||
libr1 -> Versions/Current/libr1 | libr1 -> Versions/Current/libr1 | ||
Resources -> Versions/Current/Resources | Resources -> Versions/Current/Resources | ||
Libraries -> Versions/Current/Libraries | |||
Headers -> Versions/Current/Headers | |||
Versions/ | Versions/ | ||
Current -> ver2 | Current -> ver2 | ||
Line 88: | Line 90: | ||
Resources/ | Resources/ | ||
Info.plist | Info.plist | ||
version.plist | version.plist | ||
Libraries/ | |||
libr2.dylib | |||
libr3.dylib | |||
Headers/ | |||
libr1_header1.h | |||
libr1_header2.h | |||
libr1_header3.h | |||
</pre> | </pre> | ||
Line 124: | Line 133: | ||
Frameworks/ | Frameworks/ | ||
libr1.framework/ | libr1.framework/ | ||
libr1 -> Versions/Current/libr1 | libr1 -> Versions/Current/libr1 | ||
Resources -> Versions/Current/Resources | Resources -> Versions/Current/Resources | ||
Libraries -> Versions/Current/Libraries | |||
Headers -> Versions/Current/Headers | |||
Commands -> Versions/Current/Commands | |||
Versions/ | Versions/ | ||
Current -> ver2 | Current -> ver2 | ||
Line 133: | Line 145: | ||
Info.plist | Info.plist | ||
version.plist | version.plist | ||
Libraries/ | |||
libr2.dylib | |||
libr3.dylib | |||
Headers/ | |||
libr1_header1.h | |||
libr1_header2.h | |||
libr1_header3.h | |||
Commands/ | |||
appl2 | |||
bin/ | |||
appl3 | |||
/usr/ | /usr/ | ||
bin/ | bin/ | ||
Line 163: | Line 186: | ||
Frameworks/ | Frameworks/ | ||
libr1.framework/ | libr1.framework/ | ||
libr1 -> Versions/Current/libr1 | libr1 -> Versions/Current/libr1 | ||
Resources -> Versions/Current/Resources | Resources -> Versions/Current/Resources | ||
Libraries -> Versions/Current/Libraries | |||
Headers -> Versions/Current/Headers | |||
Commands -> Versions/Current/Commands | |||
Versions/ | Versions/ | ||
Current -> ver2 | Current -> ver2 | ||
Line 172: | Line 198: | ||
Info.plist | Info.plist | ||
version.plist | version.plist | ||
Libraries/ | |||
libr2.dylib | |||
libr3.dylib | |||
Headers/ | |||
libr1_header1.h | |||
libr1_header2.h | |||
libr1_header3.h | |||
Commands/ | |||
appl2 | |||
bin/ | |||
appl3 | |||
/usr/ | /usr/ | ||
bin/ | bin/ |
Revision as of 20:39, 16 March 2006
Issue
(In all examples, the applications are named appl1, appl2, ..., libraries are named libr1, libr2, ..., header files are named appl1_header1, appl2_header2, libr1_header1, ..., and there are auxilary files associated with application and library appl1_aux1, appl2_aux2, libr1_aux1, .... and some resource files associated with application and library appl1_res1, appl2_res2, libr1_res1, .... All versions are ver1, ver2, ...)
On Mac there are several different cases of combinations of bundles, frameworks, and unix tools.
The problem is that CMAKE_INSTALL_PREFIX is not enough. Also, when creating bundles and frameworks, auxilary files should be in the proper subdirectory structure.
Cases
Unix tools only
- No issues (just like any other unix)
Bundle only
- Everything in a same directory:
/Applications/ appl1.app/ Contents/ Info.plist MacOS/ appl1 -> appl1-1 appl1-1 appl1_aux1 appl1_aux2 Resources/ appl1_res1 appl1_res2
Framework only
- Everything in a same directory:
/Library/ Frameworks/ libr1.framework/ libr1 -> Versions/Current/libr1 Resources -> Versions/Current/Resources Libraries -> Versions/Current/Libraries Headers -> Versions/Current/Headers Versions/ Current -> ver2 ver2/ libr1 Resources/ Info.plist version.plist Libraries/ libr2.dylib libr3.dylib Headers/ libr1_header1.h libr1_header2.h libr1_header3.h
Bundle + Framework
- Bundle stuff in one directory, framework stuff in another one
/Applications/ appl1.app/ Contents/ Info.plist MacOS/ appl1 -> appl1-ver1 appl1-ver2 appl1_aux1 appl1_aux2 Resources/ appl1_res1 appl1_res2 /Library/ Frameworks/ libr1.framework/ libr1 -> Versions/Current/libr1 Resources -> Versions/Current/Resources Libraries -> Versions/Current/Libraries Headers -> Versions/Current/Headers Versions/ Current -> ver2 ver2/ libr1 Resources/ Info.plist version.plist Libraries/ libr2.dylib libr3.dylib Headers/ libr1_header1.h libr1_header2.h libr1_header3.h
Bundle + Unix tools
- Bundle stuff in one directory, unix tools in typical unix location
/Applications/ appl1.app/ Contents/ Info.plist MacOS/ appl1 -> appl1-ver1 appl1-ver2 appl1_aux1 appl1_aux2 Resources/ appl1_res1 appl1_res2 /usr/ bin/ appl2 share/ appl2-version/ appl2_aux1 appl2_aux2
Framework + Unix tools
- Framework stuff in one directory, unix tools in typical unix location
/Library/ Frameworks/ libr1.framework/ libr1 -> Versions/Current/libr1 Resources -> Versions/Current/Resources Libraries -> Versions/Current/Libraries Headers -> Versions/Current/Headers Commands -> Versions/Current/Commands Versions/ Current -> ver2 ver2/ libr1 Resources/ Info.plist version.plist Libraries/ libr2.dylib libr3.dylib Headers/ libr1_header1.h libr1_header2.h libr1_header3.h Commands/ appl2 bin/ appl3 /usr/ bin/ appl1 appl2 -> /Library/Frameworks/libr1.framework/Commands/appl2 appl3 -> /Library/Frameworks/libr1.framework/Version/ver1/bin/appl3 share/ appl1-version/ appl1_aux1 appl1_aux2
Bundle + Framework + Unix tools
- Framework stuff in one directory, unix tools in typical unix location
/Applications/ appl1.app/ Contents/ Info.plist MacOS/ appl1 -> appl1-ver1 appl1-ver2 appl1_aux1 appl1_aux2 Resources/ appl1_res1 appl1_res2 /Library/ Frameworks/ libr1.framework/ libr1 -> Versions/Current/libr1 Resources -> Versions/Current/Resources Libraries -> Versions/Current/Libraries Headers -> Versions/Current/Headers Commands -> Versions/Current/Commands Versions/ Current -> ver2 ver2/ libr1 Resources/ Info.plist version.plist Libraries/ libr2.dylib libr3.dylib Headers/ libr1_header1.h libr1_header2.h libr1_header3.h Commands/ appl2 bin/ appl3 /usr/ bin/ appl1 appl2 -> /Library/Frameworks/libr1.framework/Commands/appl2 appl3 -> /Library/Frameworks/libr1.framework/Version/ver1/bin/appl3 share/ appl1-version/ appl1_aux1 appl1_aux2