/usr/share/help/cs/gnome-devel-demos/weatherAutotools.js.page is in gnome-devel-docs 3.28.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 145 146 147 148 149 | <?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" style="task" id="weatherAutotools.js" xml:lang="cs">
<info>
<link type="guide" xref="weatherApp.js#main" group="#last"/>
<revision version="0.1" date="2012-03-09" status="stub"/>
<credit type="author copyright">
<name>Susanna Huhtanen</name>
<email its:translate="no">ihmis.suski@gmail.com</email>
<years>2012</years>
</credit>
<desc/>
</info>
<title>Autotools a ikony</title>
<synopsis>
<p>V této části lekce sestrojíme soubory pro autotools a vlastní ikony, které budeme potřebovat pro aplikaci s počasím, aby perfektně zapadla do pracovního prostředí. Abyste si mohli napsat a spustit kód příkladu sami, budete potřebovat v počítači nainstalovaný editor pro psaní kódu, terminál a GNOME 3.0 nebo novější. V této lekci budeme postupovat následujícími částmi:</p>
<list>
<item><p><link xref="#autotools">Autotools</link></p></item>
<item><p><link xref="#icons">Vlastní ikony pro vaši aplikaci</link></p></item>
</list>
</synopsis>
<section id="autotools">
<title>Autotools a nutné soubory</title>
<p>To, že máté ve své složce více než jeden soubor, trochu komplikuje použití autotools. Potřebujete soubor .desktop, autogen.sh, Makefile.am, configure.as a nově soubor myapp.sh.in. Uprava souborů autotools je složitá záležitost. Více informací můžete najít v různých zdrojích, dobrý přehled na dané téma je v <link href="http://en.wikipedia.org/wiki/GNU_build_system">článku na Wikipedii</link>.</p>
<list>
<item><p>weatherapp.desktop</p></item>
<item><p>weatherapp.sh.in</p></item>
<item><p>Makefile.am</p></item>
<item><p>configure.ac</p></item>
<item><p>autogen.sh</p></item>
</list>
<p>weatherapp.desktop</p>
<code mime="text/.desktop" style="numbered">
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Weather app
Comment=Weather showing application
Exec=weatherapp.sh
Icon=application-default-icon
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;</code>
<p>Věc, která v tomto souboru stojí za pozornost, je, že řádek <code>Exec</code> bude v tomto souboru .desktop funkční až teprve po proběhnutí všech ostatních souboru <file>Makefile</file>. Soubor <file>weatherapp.sh</file> je malý shellový skript vytvořený z <file>weatherapp.sh.in</file>.</p>
<p>weatherapp.sh.in</p>
<code mime="text/sh.in" style="numbered">
#!/bin/sh
export GJS_PATH=@bindir@
gjs @bindir@/weatherapp.js</code>
<p>Tento soubor je šablonou, podle které Makefile udělá soubor <file>.desktop</file> pro spouštění aplikace.</p>
<p>Makefile.am</p>
<code mime="text/am" style="numbered">
# Skutečný spustitelný program je nastaven do primitiva SCRIPTS
# Prefix bin_ říká, kam to nakopírovat
bin_SCRIPTS = weatherapp.js geonames.js weatherapp.sh
# Seznam souborů, které se mají šířit
EXTRA_DIST= \
$(bin_SCRIPTS) \
$(private_icons) \
$(NULL)
CLEANFILES =
# Soubory .desktop
desktopdir = $(datadir)/applications
desktop_DATA =weatherapp.desktop
# Užitečný příkaz provádějící substituce proměnných Makefile v jiných souborech
# než Makefile (skriptech, souborech service atd.)
do_subst = sed -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \
-e 's|@abs_top_builddir[@]|$(abs_top_builddir)|g' \
-e 's|@localedir[@]|$(localedir)|g' \
-e 's|@bindir[@]|$(bindir)|g' \
-e 's|@libexecdir[@]|$(libexecdir)|g' \
-e 's|@pkglibdir[@]|$(pkglibdir)|g' \
-e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
-e 's|@have_libnotify[@]|$(HAVE_LIBNOTIFY)|g' \
-e 's|@have_libsoup[@]|$(HAVE_LIBSOUP)|g' \
-e 's|@have_cheese[@]|$(HAVE_CHEESE)|g'
weatherapp.sh: weatherapp.sh.in
$(AM_V_GEN) $(do_subst) $< > $@
chmod +x $@
CLEANFILES += weatherapp.sh
EXTRA_DIST += weatherapp.sh.in
# Ikona aplikace
appicondir=$(datadir)/icons/hicolor/scalable/apps
appicon_DATA=weather-icon.svg
# Ikony v aplikaci
NULL =
private_icons = \
weather-clear.svg \
weather-few-clouds.svg \
weather-fog.svg \
weather-icon.svg \
weather-overcast.svg \
weather-showers.svg \
weather-showers-scattered.svg \
weather-snow.svg \
$(NULL)
install-icons:
for icon in $(private_icons); do \
mkdir -p $(DESTDIR)$(pkgdatadir)/icons/; \
$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/; \
done
install-data-local: install-icons</code>
<p>Toto potřebuje lehké vysvětlení. V porovnání s <file>Makefile.am</file> z HelloWorld zde došlo k drobným změnám. Pojďme se podívat na všechny nové části:</p>
<p><code>bin_scripts</code> jsou soubory, které jsou zapotřebí k běhu aplikace. V tomto případě jsou první dva soubory vlastní program a třetí soubor je skript, který aplikací spouští. </p>
<p><code>EXTRA_DIST</code> jsou soubory, které budou šířeny.</p>
<p>Blok <code>do_subst</code> jsou drobnosti, které ale musí být tam, kde jsou.</p>
<p>Za komentářem <code># Ikony v aplikaci</code> jsou všechny ikony, které používáme v programu. Aby byly použitelné, je potřeba je nainstalovat na správná místa a to zařídí <code>install-icons</code>.</p>
<p>configure.ac</p>
<code mime="text/ac" style="numbered">
dnl This file is processed by autoconf to create a configure script
AC_INIT([Weather App], 1.0)
AM_INIT_AUTOMAKE([1.10 no-define foreign])
AC_CONFIG_FILES(Makefile)
AC_OUTPUT</code>
<p>autogen.sh</p>
<code mime="text/sh" style="numbered">
#!/bin/sh
# Toto nám spustí autoconf, automake, atd.
autoreconf --force --install</code>
</section>
<section id="icons">
<title>Vlastní ikony pro vaši aplikaci</title>
<p>Pokud uvažujete o vlastních ikonách, je dobré pravidlo: očekáváte, že uvidíte tuto ikono použitou i někde jinde, nebo je výhradně pro vaši aplikaci? V prvním případě (např. ikony v souboru .desktop zobrazuje shell) potřebujete <file>/usr/share/hicolor</file>, v opačném (např. ikony počasí ve vaší aplikaci) <file>/usr/share/$application/bla/bla</file>.</p>
<p>Pokud používáte autotools, budete muset provést některé změny ve svých souborech .desktop a Makefile.am. V souboru .desktop změňte název ikony na <code>Icon=weather-icon</code>. V souboru <file>Makefile.am</file> přidejte tyto dva řádky na konec vašeho bloku <code># Ikona aplikace</code>.</p>
<p>appicondir=$(datadir)/icons/hicolor/scalable/apps</p>
<p>appicon_DATA=weather-icon.svg</p>
</section>
</page>
|