Bump version to 0.36.9
[cygport.git] / cygclass / gtkmm.cygclass
blob717ef6fea335cafdcae6c73a1324ed4cdf6c69c6
1 ################################################################################
3 # gtkmm.cygclass - functions for building GTKmm C++ bindings
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/gtkmm.cygclass
25 #  SYNOPSIS
26 #  inherit gtkmm
27 #  DESCRIPTION
28 #  The GTKmm project provides C++ bindings for most of the GNOME library
29 #  stack.  Packages are autotools-based with some custom aclocal macros and
30 #  Makefile segments.  Doxygen API documentation is included in most packages.
32 #  This cygclass builds the GTKmm binding packages.
33 #  INHERITS
34 #  autotools.cygclass, gnome.org.cygclass
35 #****
37 ORIG_PN=${ORIG_PN:-${PN/[0-9]*/}}
38 SRC_DIR=${ORIG_PN}-${PV}
40 inherit gnome.org
42 #****o* gtkmm.cygclass/CATEGORY (gtkmm)
43 #  DEFINITION
44 CATEGORY="Libs"
45 #****
46 #****o* gtkmm.cygclass/SUMMARY (gtkmm)
47 #  DEFINITION
48 SUMMARY="GNOME C++ bindings for ${ORIG_PN/mm/}-${PV_MAJ}.x"
49 #****
50 #****o* gtkmm.cygclass/HOMEPAGE (gtkmm)
51 #  DEFINITION
52 HOMEPAGE="https://www.gtkmm.org/"
53 #****
55 # .rc files are removed for regeneration by configure
56 DIFF_EXCLUDES+=" Doxyfile MSVC_Net200*"
58 #****C* gtkmm.cygclass/gtkmm_autoreconf
59 #  SYNOPSIS
60 #  cd $S
61 #  gtkmm_autoreconf
62 #  DESCRIPTION
63 #  Updates the autotool build system with cygautoreconf.
64 #  WARNING
65 #  Skipping this step is strongly discouraged.  Patches to configure.ac, aclocal
66 #  macros, or Makefile.am files will not take effect until their tools have been
67 #  regenerated.  Also, Cygwin's libtool package often includes patches which
68 #  are not yet available in the latest upstream release, so libraries may not
69 #  be built optimally, or even correctly, without this step having been run.
70 #  REQUIRES
71 #  autoconf, automake, libtool, mm-common, pkg-config
72 #****
73 gtkmm_autoreconf() {
74         # make sure mm-common is installed (for the aclocal macros)
75         check_prog_req mm-common-prepare mm-common
77         __config_set with_aclocal 1
78         __config_set with_autoconf 1
79         __config_set with_autoheader 1
80         __config_set with_automake 1
81         __config_set with_libtool 1
83         if [ -d scripts ]
84         then
85                 ACLOCAL_FLAGS+=" -I scripts"
86         fi
87         NO_AUTOHEADER=1
88         cygautoreconf
90         sed -i -e '/^SUBDIRS = .*/s/tests//' Makefile.in
93 #****C* gtkmm.cygclass/gtkmm_compile
94 #  SYNOPSIS
95 #  cd $B
96 #  gtkmm_compile [CONFIGURE_FLAGS]
97 #  DESCRIPTION
98 #  Calls cygconf, followed by cygmake.  All arguments to gtkmm_compile are
99 #  passed to cygconf as configure flags.
100 #****
101 gtkmm_compile() {
102         cygconf ${@}
103         cygmake LDFLAGS="${LDFLAGS} -no-undefined"
106 #****T* gtkmm.cygclass/gtkmm_test
107 #  SYNOPSIS
108 #  cd $B
109 #  gtkmm_test
110 #  DESCRIPTION
111 #  Runs the test programs with "make check".
112 #  NOTE
113 #  Not all GTKmm bindings include tests.
114 #****
115 gtkmm_test() {
116         if [ -d tests ]
117         then
118                 make -C tests check
119         else
120                 make check
121         fi
124 #****o* gtkmm.cygclass/src_compile (gtkmm)
125 #  DEFINITION
126 src_compile() {
127         cd ${S}
128         gtkmm_autoreconf
129         cd ${B}
130         gtkmm_compile
132 #****
134 #****o* gtkmm.cygclass/src_test (gtkmm)
135 #  DEFINITION
136 src_test() {
137         cd ${B}
138         gtkmm_test
140 #****
142 readonly -f gtkmm_autoreconf gtkmm_compile gtkmm_test