5d134711a1
Allow copying font files to the Fonts subdirectory of the app bundle, private fonts can only be loaded from there under macOS currently.
106 lines
3.9 KiB
XML
106 lines
3.9 KiB
XML
<?xml version="1.0" ?>
|
|
|
|
<makefile>
|
|
|
|
<!--
|
|
Support for application bundles, for wxWidgets samples.
|
|
-->
|
|
|
|
<!--
|
|
Nasty hack: use $(srcdir) to obtain usable CFBundleIdentifier suffix;
|
|
converts $(srcdir) like "../../samples/minimal" to "samples.minimal".
|
|
-->
|
|
<set var="BUNDLE_IDENTIFIER">
|
|
`echo $(DOLLAR)(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`
|
|
</set>
|
|
|
|
<set var="BUNDLE_PLIST" overwrite="0">
|
|
$(TOP_SRCDIR)src/osx/carbon/Info.plist.in
|
|
</set>
|
|
<set var="BUNDLE_ICON" overwrite="0">
|
|
$(TOP_SRCDIR)src/osx/carbon/wxmac.icns
|
|
</set>
|
|
<set var="BUNDLE_RESOURCES" overwrite="0"></set>
|
|
<set var="BUNDLE_FONT_RESOURCES" overwrite="0"></set>
|
|
|
|
<define-tag name="wx-mac-app-bundle" rules="exe">
|
|
|
|
<!-- bundle directory: -->
|
|
<set var="BUNDLE">$(id).app/Contents</set>
|
|
<set var="BUNDLE_TGT">$(BUNDLE)/PkgInfo</set>
|
|
<set var="BUNDLE_TGT_REF">
|
|
<!-- TODO Remove Mac -->
|
|
<if cond="TOOLKIT=='MAC'">$(BUNDLE)/PkgInfo</if>
|
|
<if cond="TOOLKIT=='OSX_CARBON'">$(BUNDLE)/PkgInfo</if>
|
|
<if cond="TOOLKIT=='OSX_COCOA'">$(BUNDLE)/PkgInfo</if>
|
|
<if cond="TOOLKIT=='OSX_IPHONE'">$(BUNDLE)/PkgInfo</if>
|
|
<if cond="TOOLKIT=='COCOA'">$(BUNDLE)/PkgInfo</if>
|
|
</set>
|
|
|
|
<add-target target="$(BUNDLE_TGT)" type="action"
|
|
cond="target and PLATFORM_MACOSX=='1'"/>
|
|
<modify-target target="$(BUNDLE_TGT)">
|
|
<!-- required data: -->
|
|
<depends>$(id)</depends>
|
|
<depends-on-file>$(BUNDLE_PLIST)</depends-on-file>
|
|
<depends-on-file>$(BUNDLE_ICON)</depends-on-file>
|
|
<depends-on-file>$(BUNDLE_RESOURCES)</depends-on-file>
|
|
<depends-on-file>$(BUNDLE_FONT_RESOURCES)</depends-on-file>
|
|
|
|
<command>
|
|
<!-- create the directories: -->
|
|
mkdir -p $(BUNDLE)
|
|
mkdir -p $(BUNDLE)/MacOS
|
|
mkdir -p $(BUNDLE)/Resources
|
|
|
|
<!-- Info.plist: -->
|
|
sed -e "s/IDENTIFIER/$(BUNDLE_IDENTIFIER)/" \
|
|
-e "s/EXECUTABLE/$(id)/" \
|
|
-e "s/VERSION/$(WX_VERSION)/" \
|
|
$(BUNDLE_PLIST) >$(BUNDLE)/Info.plist
|
|
|
|
<!-- PkgInfo: -->
|
|
/bin/echo "APPL????" >$(BUNDLE)/PkgInfo
|
|
|
|
<!-- move the binary: -->
|
|
ln -f $(ref("__targetdir",id))$(ref("__targetname",id)) $(BUNDLE)/MacOS/$(id)
|
|
|
|
<!-- copy the application icon: -->
|
|
cp -f $(BUNDLE_ICON) $(BUNDLE)/Resources/wxmac.icns
|
|
</command>
|
|
<if cond="BUNDLE_RESOURCES!=''">
|
|
<command>
|
|
<!-- copy all other bundle resources: -->
|
|
cp -f $(BUNDLE_RESOURCES) $(BUNDLE)/Resources
|
|
</command>
|
|
</if>
|
|
<if cond="BUNDLE_FONT_RESOURCES!=''">
|
|
<!--
|
|
Special case of font resources, which must be copied into
|
|
the Fonts subdirectory used in src/osx/carbon/Info.plist.in file.
|
|
-->
|
|
<command>
|
|
mkdir -p $(BUNDLE)/Resources/Fonts
|
|
cp -f $(BUNDLE_FONT_RESOURCES) $(BUNDLE)/Resources/Fonts
|
|
</command>
|
|
</if>
|
|
|
|
</modify-target>
|
|
|
|
<!-- add pseudo target id_bundle: -->
|
|
<add-target target="$(id)_bundle" type="phony"
|
|
cond="target and PLATFORM_MACOSX=='1'"/>
|
|
<modify-target target="$(id)_bundle">
|
|
<dependency-of>all</dependency-of>
|
|
<depends>$(BUNDLE_TGT_REF)</depends>
|
|
</modify-target>
|
|
|
|
<!-- "make clean" should delete the bundle: -->
|
|
<modify-target target="clean">
|
|
<command>rm -rf $(id).app</command>
|
|
</modify-target>
|
|
|
|
</define-tag>
|
|
|
|
</makefile>
|