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
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.
38 #****o* xfce4.cygclass/HOMEPAGE (xfce4)
40 HOMEPAGE="https://www.xfce.org/"
43 ORIG_PN=${ORIG_PN:-${PN}}
45 #****o* xfce4.cygclass/SRC_URI (xfce4)
47 # Download location of the release tarball.
49 #****o* xfce4.cygclass/GIT_URI (xfce4)
51 # Git repository for the package.
53 # git.cygclass should be inherit()ed last for this to be of use.
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}"
61 libxfce4menu|libxfcegui4|thunar-vfs|xfce-utils)
62 uri_subdir="archive/${ORIG_PN}"
65 uri_subdir="xfce/thunar"
68 uri_subdir="apps/terminal"
70 xfce4-icon-theme|xfwm4-themes)
71 uri_subdir="art/${ORIG_PN}"
73 pyxfce|thunarx-python|xfce4-mm|xfce4-vala)
74 uri_subdir="bindings/${ORIG_PN}"
77 uri_subdir="thunar-plugins/${ORIG_PN}"
80 uri_subdir="panel-plugins/${ORIG_PN}"
83 uri_subdir="apps/${ORIG_PN}"
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}"
92 #****C* xfce4.cygclass/xfce4_autoreconf
97 # Updates the build system with xdt-autogen.
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.
106 # autoconf, automake, gtk-doc, intltool, libglib2.0-devel, libtool,
107 # pkg-config, xfce4-dev-tools
109 # cygautoreconf, gnome2_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
125 if ! defined configure_ac
127 error "xfce4: configure.ac or configure.in not found"
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
140 sed -n -e 's|^AC_CONFIG_MACRO_DIR*(\[*\([^]]*\)\]*).*|\1|p' ${configure_ac} | xargs -r mkdir -p
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 ]
153 gnuconfigize ${auxdir:-.}
157 #****C* xfce4.cygclass/xfce4_compile
160 # xfce4_compile [CONFIGURE_FLAGS]
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.
168 --disable-visibility \
169 PLATFORM_LDFLAGS=-no-undefined \
175 #****o* xfce4.cygclass/src_compile (xfce4)
185 readonly -f xfce4_autoreconf xfce4_compile