Magellan Linux

Annotation of /trunk/include/meson.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33262 - (hide annotations) (download)
Tue Oct 22 12:33:27 2019 UTC (4 years, 6 months ago) by niro
File size: 5361 byte(s)
-use ${abi} not $(mabi)
1 niro 29787 # $Id$
2     # meson config tools
3    
4     SDEPEND="${SDEPEND}
5     >= dev-util/meson-0.43
6     >= dev-util/ninja-1.8"
7    
8     # enables features like --enable-blah with make
9     meson_enable()
10     {
11     local feature="$1"
12     local option="$2"
13     [[ -z ${option} ]] && option="true"
14    
15     echo "-Denable-${feature}=${option}"
16     }
17    
18     # disables features like --disable-blah with make
19     meson_disable()
20     {
21     local feature="$1"
22 niro 29793 echo "-Denable-${feature}=false"
23 niro 29787 }
24    
25     # enables features like --with-blah with make
26     meson_with()
27     {
28     local feature="$1"
29     local option="$2"
30     [[ -z ${option} ]] && option="true"
31    
32     echo "-Dwith-${feature}=${option}"
33     }
34    
35     # enables features like --with-blah with make
36     meson_without()
37     {
38     local feature="$1"
39 niro 30917 echo "-Dwith-${feature}=false"
40 niro 29787 }
41    
42 niro 30900 meson_bool_true()
43     {
44     local feature="$1"
45 niro 30916 meson_opt "${feature}" "true"
46 niro 30900 }
47    
48     meson_bool_false()
49     {
50     local feature="$1"
51 niro 30916 meson_opt "${feature}" "false"
52 niro 30900 }
53    
54 niro 29787 # generic meson opts
55     meson_opt()
56     {
57     local feature="$1"
58     local option="$2"
59     echo "-D${feature}=${option}"
60     }
61    
62     meson_src_prepare()
63     {
64     munpack ${SRCFILE} || die
65     }
66    
67     meson_configure()
68     {
69     local configure_opts="$@"
70 niro 29793 local default_opts
71 niro 33260 [[ -n ${MESON_SRCDIR} ]] || local MESON_SRCDIR
72     [[ -n ${MESON_BUILDDIR} ]] || local MESON_BUILDDIR
73 niro 29787
74 niro 29793 default_opts+=" --buildtype=release"
75     default_opts+=" --prefix=/usr"
76     default_opts+=" --sysconfdir=/etc"
77     default_opts+=" --localstatedir=/var/lib"
78    
79     if [[ ${MULTILIB_BUILD} = true ]]
80     then
81 niro 30741 # must be escaped so the mlibdir variable gets evaluated later
82     default_opts+=' --libdir=/usr/$(mlibdir)'
83 niro 30900 default_opts+=' --libexecdir=/usr/$(mlibdir)/${PNAME}'
84 niro 33239 : ${MESON_SRCDIR="${SRCDIR}-$(mabi)/${SRCSUBDIR}"}
85     : ${MESON_BUILDDIR="${BUILDDIR}/build-$(mabi)"}
86     all-abis meson setup ${default_opts} ${configure_opts} ${MESON_SRCDIR} ${MESON_BUILDDIR} || die
87 niro 29793 else
88 niro 30741 # the mlibdir variable gets right now evaluated
89     default_opts+=" --libdir=/usr/$(mlibdir)"
90 niro 30900 default_opts+=" --libexecdir=/usr/$(mlibdir)/${PNAME}"
91 niro 33239 : ${MESON_SRCDIR="${SRCDIR}/${SRCSUBDIR}"}
92     : ${MESON_BUILDDIR="${BUILDDIR}/build"}
93     meson setup ${default_opts} ${configure_opts} ${MESON_SRCDIR} ${MESON_BUILDDIR} || die
94 niro 29793 fi
95 niro 29787 }
96    
97     mninja()
98     {
99 niro 31579 local abi
100     local abis_to_run="${MULTILIB_ABIS}"
101 niro 33260 [[ -n ${MESON_SRCDIR} ]] || local MESON_SRCDIR
102     [[ -n ${MESON_BUILDDIR} ]] || local MESON_BUILDDIR
103 niro 31579
104     # respect MULTILIB_ONLY_ABI variable
105     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
106    
107 niro 29793 if [[ ${MULTILIB_BUILD} = true ]]
108     then
109 niro 31579 for abi in ${abis_to_run}
110     do
111     echo -e "${COLBLUE}*** ${COLGREEN}running ninja for ABI -${abi}${COLDEFAULT}"
112 niro 33239 : ${MESON_SRCDIR="${SRCDIR}-$(mabi)/${SRCSUBDIR}"}
113     : ${MESON_BUILDDIR="${BUILDDIR}/build-$(mabi)"}
114     abi-${abi} ninja -C ${MESON_SRCDIR} -C ${MESON_BUILDDIR} -v ${MAKEOPTS} "$@"
115 niro 31579 done
116 niro 29793 else
117 niro 33239 : ${MESON_SRCDIR="${SRCDIR}/${SRCSUBDIR}"}
118     : ${MESON_BUILDDIR="${BUILDDIR}/build"}
119     ninja -C ${MESON_SRCDIR} -C ${MESON_BUILDDIR} -v ${MAKEOPTS} "$@"
120 niro 29793 fi
121 niro 29787 }
122    
123 niro 29793 meson_setup_builddir()
124     {
125 niro 31579 local abi
126     local abis_to_run="${MULTILIB_ABIS}"
127 niro 33260 [[ -n ${MESON_BUILDDIR} ]] || local MESON_BUILDDIR
128 niro 31579
129     # respect MULTILIB_ONLY_ABI variable
130     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
131    
132 niro 29793 if [[ ${MULTILIB_BUILD} = true ]]
133     then
134 niro 31579 for abi in ${abis_to_run}
135     do
136     echo -e "${COLBLUE}*** ${COLGREEN}running ninja for ABI -${abi}${COLDEFAULT}"
137 niro 33239 : ${MESON_BUILDDIR="${BUILDDIR}/build-$(mabi)"}
138     abi-${abi} install -d ${MESON_BUILDDIR} || die
139 niro 31579 done
140 niro 29793 else
141 niro 33239 : ${MESON_BUILDDIR="${BUILDDIR}/build"}
142     install -d ${MESON_BUILDDIR} || die
143 niro 29793 fi
144     }
145    
146 niro 29787 meson_src_compile()
147     {
148 niro 33260 [[ -n ${MESON_SRCDIR} ]] || local MESON_SRCDIR
149    
150 niro 29793 if [[ ${MULTILIB_BUILD} != true ]]
151     then
152 niro 33239 : ${MESON_SRCDIR="${SRCDIR}"}
153     cd ${MESON_SRCDIR}
154 niro 29793 fi
155 niro 29787
156 niro 29793 meson_setup_builddir || die
157     meson_configure "$@" || die
158 niro 29787 mninja || die
159     }
160    
161     meson_src_check()
162     {
163 niro 33260 [[ -n ${MESON_BUILDDIR} ]] || local MESON_BUILDDIR
164    
165 niro 33239 : ${MESON_BUILDDIR="${BUILDDIR}/build"}
166 niro 33260 meson test -C ${MESON_BUILDDIR} || die
167 niro 29787 }
168    
169 niro 29793 meson_multilib_src_check()
170     {
171     local abi
172     local abis_to_run="${MULTILIB_ABIS}"
173 niro 33260 [[ -n ${MESON_BUILDDIR} ]] || local MESON_BUILDDIR
174 niro 29793
175     # respect MULTILIB_ONLY_ABI variable
176     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
177     for abi in ${abis_to_run}
178     do
179 niro 33260 : ${MESON_BUILDDIR="${BUILDDIR}/build-$(mabi)"}
180     abi-${abi} meson test -C ${MESON_BUILDDIR} || die
181 niro 29793 done
182     }
183    
184 niro 29787 meson_src_install()
185     {
186 niro 33260 [[ -n ${MESON_SRCDIR} ]] || local MESON_SRCDIR
187    
188 niro 33239 : ${MESON_SRCDIR="${SRCDIR}"}
189    
190 niro 33260 DESTDIR=${BINDIR} mninja install || die
191 niro 29787
192 niro 33239 cd ${MESON_SRCDIR}
193 niro 29787 local i
194     for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
195     FAQ LICENSE NEWS README TODO
196     do
197 niro 33239 if [ -f ${MESON_SRCDIR}/${i} ]
198 niro 29787 then
199     minstalldocs ${i} || die
200     fi
201     done
202     }
203    
204 niro 29793 meson_multilib_src_install()
205     {
206     local abi
207     local abis_to_run="${MULTILIB_ABIS}"
208 niro 33260 [[ -n ${MESON_SRCDIR} ]] || local MESON_SRCDIR
209 niro 29793
210 niro 33260 DESTDIR=${BINDIR} mninja install || die
211    
212 niro 29793 # respect MULTILIB_ONLY_ABI variable
213     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
214     for abi in ${abis_to_run}
215     do
216 niro 33262 : ${MESON_SRCDIR="${SRCDIR}-${abi}"}
217 niro 29793
218 niro 33239 cd ${MESON_SRCDIR}
219 niro 29793 local i
220     for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
221     FAQ LICENSE NEWS README TODO
222     do
223 niro 33239 if [ -f ${MESON_SRCDIR}/${i} ]
224 niro 29793 then
225     minstalldocs ${i} || die
226     fi
227     done
228     done
229     }
230    
231     export_inherits meson src_prepare src_compile
232     if [[ ${MULTILIB_BUILD} = true ]]
233     then
234     export_inherits meson_multilib src_check src_install
235     else
236     export_inherits meson src_check src_install
237     fi