Magellan Linux

Annotation of /trunk/include/meson.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30900 - (hide annotations) (download)
Tue May 15 07:24:41 2018 UTC (6 years ago) by niro
File size: 3715 byte(s)
-fixed libexec dir evalution on non multilib builds
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     echo "-Dwith-{feature}=false"
40     }
41    
42 niro 30900 meson_bool_true()
43     {
44     local feature="$1"
45     meson_opt "feature" "true"
46     }
47    
48     meson_bool_false()
49     {
50     local feature="$1"
51     meson_opt "feature" "false"
52     }
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 29787
72 niro 29793 default_opts+=" --buildtype=release"
73     default_opts+=" --prefix=/usr"
74     default_opts+=" --sysconfdir=/etc"
75     default_opts+=" --localstatedir=/var/lib"
76    
77     if [[ ${MULTILIB_BUILD} = true ]]
78     then
79 niro 30741 # must be escaped so the mlibdir variable gets evaluated later
80     default_opts+=' --libdir=/usr/$(mlibdir)'
81 niro 30900 default_opts+=' --libexecdir=/usr/$(mlibdir)/${PNAME}'
82 niro 29797 all-abis meson setup ${default_opts} ${configure_opts} ${SRCDIR}-$(mabi)/${SRCSUBDIR} ${BUILDDIR}/build-$(mabi) || die
83 niro 29793 else
84 niro 30741 # the mlibdir variable gets right now evaluated
85     default_opts+=" --libdir=/usr/$(mlibdir)"
86 niro 30900 default_opts+=" --libexecdir=/usr/$(mlibdir)/${PNAME}"
87 niro 29797 meson setup ${default_opts} ${configure_opts} ${SRCDIR}/${SRCSUBDIR} ${BUILDDIR}/build || die
88 niro 29793 fi
89 niro 29787 }
90    
91     mninja()
92     {
93 niro 29793 if [[ ${MULTILIB_BUILD} = true ]]
94     then
95 niro 29798 all-abis ninja -C ${SRCDIR}-$(mabi)/${SRCSUBDIR} -C ${BUILDDIR}/build-$(mabi) -v ${MAKEOPTS} "$@"
96 niro 29793 else
97 niro 29798 ninja -C ${SRCDIR}/${SRCSUBDIR} -C ${BUILDDIR}/build -v ${MAKEOPTS} "$@"
98 niro 29793 fi
99 niro 29787 }
100    
101 niro 29793 meson_setup_builddir()
102     {
103     if [[ ${MULTILIB_BUILD} = true ]]
104     then
105     all-abis install -d ${BUILDDIR}/build-$(mabi) || die
106     else
107     install -d ${BUILDDIR}/build || die
108     fi
109     }
110    
111 niro 29787 meson_src_compile()
112     {
113 niro 29793 if [[ ${MULTILIB_BUILD} != true ]]
114     then
115     cd ${SRCDIR}
116     fi
117 niro 29787
118 niro 29793 meson_setup_builddir || die
119     meson_configure "$@" || die
120 niro 29787 mninja || die
121     }
122    
123     meson_src_check()
124     {
125     cd ${BUILDDIR}/build
126     meson test || die
127     }
128    
129 niro 29793 meson_multilib_src_check()
130     {
131     local abi
132     local abis_to_run="${MULTILIB_ABIS}"
133    
134     # respect MULTILIB_ONLY_ABI variable
135     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
136     for abi in ${abis_to_run}
137     do
138     cd ${BUILDDIR}/build-${abi}
139     meson test || die
140     done
141     }
142    
143 niro 29787 meson_src_install()
144     {
145     cd ${BUILDDIR}/build
146     DESTDIR=${BINDIR} ninja install || die
147    
148     cd ${SRCDIR}
149     local i
150     for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
151     FAQ LICENSE NEWS README TODO
152     do
153     if [ -f ${SRCDIR}/${i} ]
154     then
155     minstalldocs ${i} || die
156     fi
157     done
158     }
159    
160 niro 29793 meson_multilib_src_install()
161     {
162     local abi
163     local abis_to_run="${MULTILIB_ABIS}"
164    
165     # respect MULTILIB_ONLY_ABI variable
166     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
167     for abi in ${abis_to_run}
168     do
169     cd ${BUILDDIR}/build-${abi}
170     DESTDIR=${BINDIR} ninja install || die
171    
172     cd ${SRCDIR}-${abi}
173     local i
174     for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
175     FAQ LICENSE NEWS README TODO
176     do
177     if [ -f ${SRCDIR}-${abi}/${i} ]
178     then
179     minstalldocs ${i} || die
180     fi
181     done
182     done
183     }
184    
185     export_inherits meson src_prepare src_compile
186     if [[ ${MULTILIB_BUILD} = true ]]
187     then
188     export_inherits meson_multilib src_check src_install
189     else
190     export_inherits meson src_check src_install
191     fi