summaryrefslogtreecommitdiffstats
path: root/zenmap/install_scripts/macosx/zenmap.bundle
blob: dff4c318bd291c74e9254d0e420329cd9dfdc95a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE app-bundle [
<!ENTITY PYVER "3.10">
<!ENTITY pyreqs SYSTEM "pyreqs.xml">
]>
<app-bundle>

  <meta>
    <!-- Where to pick up the GTK+ installation, icon themes,
         etc. Note that "${env:JHBUILD_PREFIX}" is evaluated to the
         value of the environment variable JHBUILD_PREFIX. You can
         define additional prefixes and refer to them in paths
         throughout this file on the form "${prefix:name}". This is
         useful for installing certain libraries or even the
         application itself separately. Note that JHBUILD_PREFIX is
         defined by jhbuild, so it you are not using jhbuild you can
         either define your own or just hardcode the path here.
    -->
    <prefix name="default">${env:JHBUILD_PREFIX}</prefix>

    <!-- The project directory is the default location of the created
         app. If you leave out the path, the current directory is
         used. Note the usage of an environment variable here again.
    -->
    <destination overwrite="yes">${env:ZENMAP_DIST_DIR}</destination>

    <!-- Comment this out to keep the install names in binaries.  -->
    <run-install-name-tool/>

    <!-- REMOVED: A launcher script is pretty much mandatory here so that we can
         set $PYTHON to point to the python in the bundle.
    <launcher-script>${project}/launcher.sh</launcher-script>
    -->

     <!-- Indicate the active gtk version to use. This is needed only
         for gtk+-3.0 projects. -->
    <gtk>gtk+-3.0</gtk>
 </meta>

  <!-- The special macro "${project}" refers to the directory where
       this bundle file is located. The application name and bundle
       identifier are taken from the plist file.
  -->
  <plist>${project}/Info.plist</plist>

<!-- See examples/python-launcher.bundle for info on entitlements if needed -->
<!-- NEW! -->
  <!-- Build gramps-launcher with:
          gcc -L$PREFIX/lib `python-config -\-cflags -\-ldflags` \
              -o $PREFIX/bin/python-launcher \
	      path/to/gtk-mac-bundler/examples/python-launcher.c
       with the obvious substitution.
  -->
 <main-binary>
     ${prefix}/bin/zenmap-launcher
  </main-binary>

  <!-- We need to pack our own Python to avoid compatibility problems. -->
  <binary dest="${bundle}/Contents/MacOS">
    ${prefix}/bin/python3
  </binary>
  <!-- Copy in GTK+ modules. Note the use of the
       "${pkg:module:variable}" macro, which evaluates to a pkg-config
       variable in the specified module. Note that any libraries that
       binaries link to are also copied in automatically.
  -->
<!-- PNG is built-in -->
  <binary>
    ${prefix}/lib/gdk-pixbuf-2.0/${pkg:gdk-pixbuf-2.0:gdk_pixbuf_binary_version}/loaders/libpixbufloader-gif.so
  </binary>

<!-- Copy in the quartz input method. The rest aren't used on MacOS. -->
  <binary>
    ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/immodules/im-quartz.so
  </binary>

<!-- And the print backends -->
  <binary>
    ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/printbackends/*.so
  </binary>

  <!-- Python modules other than tnese are grabbed with get_deps.py -->
  <binary>
    ${prefix}/lib/python&PYVER;/site-packages/gi/*.so
  </binary>
  <binary>
    ${prefix}/lib/python&PYVER;/site-packages/cairo/*.so
  </binary>

&pyreqs;

  <binary>
    ${prefix}/lib/libgtkmacintegration-gtk3.dylib
  </binary>

  <gir> ${prefix}/share/gir-1.0/Atk-1.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/GLib-2.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/GModule-2.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/GObject-2.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/Gdk-3.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/GdkPixbuf-2.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/Gio-2.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/Gtk-3.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/HarfBuzz-0.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/Pango-1.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/PangoCairo-1.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/PangoOT-1.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/cairo-1.0.gir </gir>
  <gir> ${prefix}/share/gir-1.0/freetype2-2.0.gir </gir>

  <!-- This python file sets up all of the environment variables
       needed to run your program. The example contains those
       necessary for running a basic Gtk program. -->
  <data dest="${bundle}/Contents/Resources">
    ${project}/zenmap_launcher.py
  </data>

  <data>
    ${prefix}/share/glib-2.0/schemas
  </data>


  <!-- Copy icons. Note that the .icns file is an Apple format which
       contains up to 4 sizes of icon. You can use
       /Developer/Applications/Utilities/Icon Composer.app to import
       artwork and create the file. -->
  <data dest="${bundle}/Contents/Resources">
    ${project}/zenmap.icns
  </data>

  <!-- Icon themes to copy. The "icons" property can be either of
       "auto", "all", or "none". All or none should be
       self-explanatory, while auto means that the script will try to
       figure out which icons are needed. This is done by getting all
       the strings from all copied binaries, and matching them against
       icon names. To be safe, you should use "all". "none" is useful
       if you want just the index.theme file but no icons, mostly
       needed for the "hicolor" base theme.
  >
  <icon-theme icons="none">
    Tango
  </icon-theme -->

</app-bundle>