Application Bundle

Added by Steve Sharp over 3 years ago

does Jamplus (or anyone) have any rules for generating macosx application bundles ?

Thanks!
Steve.


Replies (4)

RE: Application Bundle - Added by Joshua Jensen over 3 years ago

An application bundle is just a bunch of random files in certain directories. How would you want a rule for making a bundle to work? I could see the rule writing the .plist file into the bundle. CMake does it like so:

SET(MACOSX_BUNDLE_INFO_STRING "1.3 Build 1859, Copyright 2007 Cavebug Games LLC")
SET(MACOSX_BUNDLE_ICON_FILE "Pathstorm")
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
SET(MACOSX_BUNDLE_LONG_VERSION_STRING "1.3 Build 1859")
SET(MACOSX_BUNDLE_BUNDLE_NAME "Pathstorm")
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.3")
SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2007 Cavebug Games LLC")
SET_SOURCE_FILES_PROPERTIES(${EXTRA_DATA} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
SET_SOURCE_FILES_PROPERTIES(${DOCS_SRCS} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/Docs)
SET_SOURCE_FILES_PROPERTIES(${EXTRA_FRAMEWORKS} PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)

The MACOSX_PACKAGE_LOCATION bit is just as easily done with a copy or even a symbolic link (through the SoftLink rule).

Thoughts?

Josh

RE: Application Bundle - Added by Steve Sharp over 3 years ago

yeah thats kinda what i was thinking, pass the target executable, the icon and some info and generate the info.plist :

#=============================================================================
rule sh.MacBundle ( TARGET : executable info icon ) {

#
  1. TARGET.app/Contents
  2. Info.plist <-- at least includes the locations of executable and icon
  3. MacOS/ <-- executable here (or a link to it)
  4. Resources/ <-- application icon here #

}

RE: Application Bundle - Added by Joshua Jensen over 3 years ago

How does this feel?

if $(PLATFORM) in macosx32 macosx64 {
    C.BundleInfo SimpleWx : info : "1.1 Build 1000, Copyright 2010 wxWidgets" ;
    C.BundleInfo SimpleWx : iconfile : "SimpleWx" ;
    C.BundleInfo SimpleWx : longversion : "1.1 Build 1000" ;
    C.BundleInfo SimpleWx : bundlename : "SimpleWx" ;
    C.BundleInfo SimpleWx : shortversion : 1.1 ;
    C.BundleInfo SimpleWx : bundleversion : 1.0 ;
    C.BundleInfo SimpleWx : copyright : "Copyright 2010 wxWidgets" ;
}

C.Application SimpleWx : $(SRCS) : windows bundle ;

-Josh

RE: Application Bundle - Added by Steve Sharp about 3 years ago

Perfect, that works a treat! (bit late reply i know!)

(1-4/4)