]>
Commit | Line | Data |
---|---|---|
1 | <?xml version="1.0" ?> | |
2 | <!-- $Id$ --> | |
3 | ||
4 | <makefile> | |
5 | ||
6 | <!-- | |
7 | Support for application bundles, for wxWindows samples. | |
8 | --> | |
9 | ||
10 | <!-- | |
11 | Nasty hack: use $(srcdir) to obtain usable CFBundleIdentifier suffix; | |
12 | converts $(srcdir) like "../../samples/minimal" to "samples.minimal". | |
13 | --> | |
14 | <set var="BUNDLE_IDENTIFIER"> | |
15 | `echo $(DOLLAR)(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'` | |
16 | </set> | |
17 | ||
18 | <set var="BUNDLE_PLIST"> | |
19 | $(TOP_SRCDIR)src/mac/Info.plist.in | |
20 | </set> | |
21 | <set var="BUNDLE_RESOURCE"> | |
22 | $(LIBDIRNAME)/libwx_$(TOOLCHAIN_NAME).$(WXSOVERSION[0]).rsrc | |
23 | </set> | |
24 | <set var="BUNDLE_ICONS"> | |
25 | $(TOP_SRCDIR)src/mac/wxmac.icns | |
26 | </set> | |
27 | ||
28 | <define-tag name="wx-mac-app-bundle" rules="exe"> | |
29 | ||
30 | <!-- bundle directory: --> | |
31 | <set var="BUNDLE">$(id).app/Contents</set> | |
32 | <set var="BUNDLE_TGT">$(BUNDLE)/PkgInfo</set> | |
33 | ||
34 | <add-target target="$(BUNDLE_TGT)" type="action"/> | |
35 | <modify-target target="$(BUNDLE_TGT)"> | |
36 | <!-- required data: --> | |
37 | <depends>$(id)</depends> | |
38 | <depends-on-file>$(BUNDLE_PLIST)</depends-on-file> | |
39 | <depends-on-file>$(BUNDLE_RESOURCE)</depends-on-file> | |
40 | <depends-on-file>$(BUNDLE_ICONS)</depends-on-file> | |
41 | ||
42 | <command> | |
43 | <!-- create the directories: --> | |
44 | mkdir -p $(BUNDLE) | |
45 | mkdir -p $(BUNDLE)/MacOS | |
46 | mkdir -p $(BUNDLE)/Resources | |
47 | ||
48 | <!-- Info.plist: --> | |
49 | sed -e "s/IDENTIFIER/$(BUNDLE_IDENTIFIER)/" \ | |
50 | -e "s/EXECUTABLE/$(id)/" \ | |
51 | -e "s/VERSION/$(WX_VERSION)/" \ | |
52 | $(BUNDLE_PLIST) >$(BUNDLE)/Info.plist | |
53 | ||
54 | <!-- PkgInfo: --> | |
55 | echo -n "APPL????" >$(BUNDLE)/PkgInfo | |
56 | ||
57 | <!-- make a hardlink to the binary: --> | |
58 | ln -f $(ref("__targetdir",id))$(ref("__targetname",id)) $(BUNDLE)/MacOS/$(id) | |
59 | ||
60 | <!-- ditto wxWindows resources and icons: --> | |
61 | ln -sf $(BUNDLE_RESOURCE) $(BUNDLE)/Resources/$(id).rsrc | |
62 | ln -sf $(BUNDLE_ICONS) $(BUNDLE)/Resources/wxmac.icns | |
63 | </command> | |
64 | </modify-target> | |
65 | ||
66 | <!-- add pseudo target id_bundle: --> | |
67 | <add-target target="$(id)_bundle" type="phony" | |
68 | cond="PLATFORM_MACOSX=='1'"/> | |
69 | <modify-target target="$(id)_bundle"> | |
70 | <dependency-of>all</dependency-of> | |
71 | <depends>$(BUNDLE_TGT)</depends> | |
72 | </modify-target> | |
73 | ||
74 | <!-- "make clean" should delete the bundle: --> | |
75 | <modify-target target="clean"> | |
76 | <command>rm -rf $(id).app</command> | |
77 | </modify-target> | |
78 | ||
79 | </define-tag> | |
80 | ||
81 | </makefile> |