Bump version to 0.36.9
[cygport.git] / cygclass / xfce4.cygclass
blob5131c9a8fa9b81eb492e2fe8c488212f3b9b07bf
1 ################################################################################
3 # xfce4.cygclass - functions for building Xfce 4 packages
5 # Part of cygport - Cygwin packaging application
6 # Copyright (C) 2006-2020 Cygport authors
7 # Provided by the Cygwin project <https://cygwin.com/>
9 # cygport is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # cygport is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with cygport.  If not, see <https://www.gnu.org/licenses/>.
22 ################################################################################
24 #****h* Cygclasses/xfce4.cygclass
25 #  SYNOPSIS
26 #  inherit xfce4
27 #  DESCRIPTION
28 #  Xfce is a desktop environment for X which is lighter and faster than GNOME
29 #  or KDE but has more features than most lightweight DEs.  The project provides
30 #  desktop components and some basic applications which are built on a few
31 #  libraries which are based on GLib and GTK+.
33 #  This cygclass handles the building of Xfce 4.x packages.
34 #  INHERITS
35 #  autotools.cygclass
36 #****
38 #****o* xfce4.cygclass/HOMEPAGE (xfce4)
39 #  DEFINITION
40 HOMEPAGE="https://www.xfce.org/"
41 #****
43 ORIG_PN=${ORIG_PN:-${PN}}
45 #****o* xfce4.cygclass/SRC_URI (xfce4)
46 #  DESCRIPTION
47 #  Download location of the release tarball.
48 #****
49 #****o* xfce4.cygclass/GIT_URI (xfce4)
50 #  DESCRIPTION
51 #  Git repository for the package.
52 #  NOTE
53 #  git.cygclass should be inherit()ed last for this to be of use.
54 #****
55 case ${ORIG_PN} in
56         exo|garcon|gtk-xfce-engine|libxfce4ui|libxfce4util\
57         |xfce4-appfinder|xfce4-dev-tools|xfce4-panel\
58         |xfce4-session|xfce4-settings|xfconf|xfdesktop|xfwm4)
59                 uri_subdir="xfce/${ORIG_PN}"
60                 ;;
61         libxfce4menu|libxfcegui4|thunar-vfs|xfce-utils)
62                 uri_subdir="archive/${ORIG_PN}"
63                 ;;
64         Thunar)
65                 uri_subdir="xfce/thunar"
66                 ;;
67         Terminal)
68                 uri_subdir="apps/terminal"
69                 ;;
70         xfce4-icon-theme|xfwm4-themes)
71                 uri_subdir="art/${ORIG_PN}"
72                 ;;
73         pyxfce|thunarx-python|xfce4-mm|xfce4-vala)
74                 uri_subdir="bindings/${ORIG_PN}"
75                 ;;
76         thunar-*-plugin)
77                 uri_subdir="thunar-plugins/${ORIG_PN}"
78                 ;;
79         *-plugin)
80                 uri_subdir="panel-plugins/${ORIG_PN}"
81                 ;;
82         *)
83                 uri_subdir="apps/${ORIG_PN}"
84                 ;;
85 esac
87 SRC_URI="mirror://xfce/src/${uri_subdir}/${PV[1]}.${PV[2]}/${ORIG_PN}-${PV}.tar.bz2"
88 GIT_URI="git://git.xfce.org/${uri_subdir}"
90 unset uri_subdir
92 #****C* xfce4.cygclass/xfce4_autoreconf
93 #  SYNOPSIS
94 #  cd $S
95 #  xfce4_autoreconf
96 #  DESCRIPTION
97 #  Updates the build system with xdt-autogen.
98 #  WARNING
99 #  Skipping this step is strongly discouraged.  Patches to configure.ac, aclocal
100 #  macros, or Makefile.am files will not take effect until their tools have been
101 #  regenerated.  Also, Cygwin's libtool package often includes patches which
102 #  are not yet available in the latest upstream release, so libraries may not
103 #  be built optimally, or even correctly, without this step having been run.
104 #  The same applies for some of the other build tools as well.
105 #  REQUIRES
106 #  autoconf, automake, gtk-doc, intltool, libglib2.0-devel, libtool,
107 #  pkg-config, xfce4-dev-tools
108 #  SEE ALSO
109 #  cygautoreconf, gnome2_autoreconf
110 #****
111 xfce4_autoreconf() {
112         local auxdir configure_ac f
114         check_prog_req xdt-autogen xfce4-dev-tools
116         for f in configure.ac configure.ac.in configure.in configure.in.in
117         do
118                 if [ -e $f ]
119                 then
120                         configure_ac=$f
121                         break
122                 fi
123         done
125         if ! defined configure_ac
126         then
127                 error "xfce4: configure.ac or configure.in not found"
128         fi
130         __config_set with_aclocal 1
131         __config_set with_autoconf 1
132         __config_set with_autoheader 1
133         __config_set with_automake 1
134         __config_set with_intltool 1
135         __config_set with_libtool 1
136         __config_set with_glib_gettext 1
138         export WANT_AUTOMAKE
140         sed -n -e 's|^AC_CONFIG_MACRO_DIR*(\[*\([^]]*\)\]*).*|\1|p' ${configure_ac} | xargs -r mkdir -p
142         NOCONFIGURE=1 \
143         XDT_PROG_ACLOCAL=aclocal \
144         XDT_PROG_AUTOCONF=autoconf \
145         XDT_PROG_AUTOHEADER=autoheader \
146         XDT_PROG_AUTOMAKE=automake \
147         revision=${GIT_REV:0:7} \
148         xdt-autogen || error "xdt-autogen failed"
150         auxdir="$(grep '^[^\#]*AC_CONFIG_AUX_DIR' ${configure_ac} | sed -e 's!.*AC_CONFIG_AUX_DIR(\[*\(.*\))!\1!g' -e 's!\]*!!g')"
151         if [ -f ${auxdir:-.}/config.guess ]
152         then
153                 gnuconfigize ${auxdir:-.}
154         fi
157 #****C* xfce4.cygclass/xfce4_compile
158 #  SYNOPSIS
159 #  cd $B
160 #  xfce4_compile [CONFIGURE_FLAGS]
161 #  DESCRIPTION
162 #  Calls cygconf with the following options, followed by cygmake:
163 #  * --disable-visibility: Cygwin does not support ELF visibility attributes
164 #  All arguments to xfce4_compile are passed to cygconf as configure flags.
165 #****
166 xfce4_compile() {
167         cygconf \
168                 --disable-visibility \
169                 PLATFORM_LDFLAGS=-no-undefined \
170                 "${@}"
172         cygmake
175 #****o* xfce4.cygclass/src_compile (xfce4)
176 #  DEFINITION
177 src_compile() {
178         cd ${S}
179         xfce4_autoreconf
180         cd ${B}
181         xfce4_compile
183 #****
185 readonly -f xfce4_autoreconf xfce4_compile