Magellan Linux

Contents of /trunk/include/python.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33632 - (show annotations) (download)
Thu Aug 10 15:19:59 2023 UTC (8 months, 3 weeks ago) by niro
File size: 5158 byte(s)
-added missing python_multilib_src_prepare() function
1 # $Id$
2
3 # simulate the old behavior
4 if [[ -z ${MAGE_PYTHON_EXEC} ]]
5 then
6 MAGE_PYTHON_EXEC="python"
7
8 SDEPEND="${SDEPEND}
9 >= dev-lang/python-3"
10 fi
11
12 # call meson include in the smage2, to prevent unnecessary dependencies
13 #sminclude meson
14
15 # get the major.minor current installed python version
16 # -> ex 2.4
17 mget-python-version()
18 {
19 local pyver
20 # pyver="$(${MAGE_PYTHON_EXEC} -V 2>&1 | cut -d' ' -f2 | cut -d. -f1-2)"
21 pyver=$(${MAGE_PYTHON_EXEC} -c "import sys ; print (sys.version[:3])")
22 [[ -z ${pyver} ]] && return 1
23 echo "${pyver}"
24 return 0
25 }
26
27 mget-python-libdir()
28 {
29 local pylib
30 pylib=$(${MAGE_PYTHON_EXEC} -c 'import sysconfig; print (sysconfig.get_path("platlib"))')
31 [[ -z ${pylib} ]] && return 1
32 echo "${pylib}"
33 return 0
34 }
35
36 mget-python-includedir()
37 {
38 local pyinc
39 pyinc=$(${MAGE_PYTHON_EXEC} -c 'import sysconfig; print (sysconfig.get_path("platinclude"))')
40 [[ -z ${pyinc} ]] && return 1
41 echo "${pyinc}"
42 return 0
43 }
44
45 # fallback functions to support old smage scripts, dropped in near future
46 get_python_version()
47 {
48 echo -e "${COLYELLOW}Warning: get_python_version() is depcrecated, please use mget-python-version() instead${COLDEFAULT}" >&2
49 mget-python-version
50 }
51 get_python_libdir()
52 {
53 echo -e "${COLYELLOW}Warning: get_python_libdir() is depcrecated, please use mget-python-libdir() instead${COLDEFAULT}" >&2
54 mget-python-libdir
55 }
56 get_python_includedir()
57 {
58 echo -e "${COLYELLOW}Warning: get_python_includedir() is depcrecated, please use mget-python-includedir() instead${COLDEFAULT}" >&2
59 mget-python-includedir
60 }
61
62 python_src_prepare()
63 {
64 munpack ${SRCFILE} || die
65 }
66
67 python_multilib_src_prepare()
68 {
69 munpack ${SRCFILE} || die
70 }
71
72 python_docompile()
73 {
74 if [[ -e pyproject.toml ]]
75 then
76 TMPDIR=${BUILDDIR} ${MAGE_PYTHON_EXEC} \
77 -m pip wheel --wheel-dir dist --no-build-isolation --no-deps --disable-pip-version-check \
78 --no-cache-dir --use-pep517 --no-clean ${PWD} || die
79 elif [[ -e setup.py ]]
80 then
81 ${MAGE_PYTHON_EXEC} setup.py build $@ || die
82 elif [[ -e waf ]]
83 then
84 ${MAGE_PYTHON_EXEC} waf configure --prefix=/usr --libdir=/usr/$(mlibdir) $@ || die
85 ${MAGE_PYTHON_EXEC} waf build $@ || die
86 elif [[ -e meson.build ]]
87 then
88 # never run multilib builds here, multilib will be enabled by python_multilib_src_compile
89 # this honors the logic of other build methods (python, waf, autotools)
90 MULTILIB_BUILD=false meson_configure -D python=${MAGE_PYTHON_EXEC} || die
91 MULTILIB_BUILD=false mninja || die
92 elif [[ -e configure ]]
93 then
94 if [[ ${MULTILIB_BUILD} = true ]] && [[ ! -z $(typeset -f oldmconfigure) ]] && [[ ! -z $(typeset -f oldmmake) ]]
95 then
96 oldmconfigure $@ || die
97 oldmmake || die
98 else
99 mconfigure $@ || die
100 mmake || die
101 fi
102 elif [[ -e install.py ]]
103 then
104 echo "install.py found - nothing to compile here."
105 else
106 mmake || die
107 fi
108 }
109
110 python_doinstall()
111 {
112 if [[ -e pyproject.toml ]]
113 then
114 TMPDIR=${BUILDDIR} ${MAGE_PYTHON_EXEC} \
115 -m pip install --root ${BINDIR} --no-index --no-deps --disable-pip-version-check \
116 --no-cache-dir --use-pep517 --ignore-installed --no-warn-script-location $(find dist -name \*.whl) || die
117 elif [[ -e setup.py ]]
118 then
119 ${MAGE_PYTHON_EXEC} setup.py install --no-compile --root ${BINDIR} $@ || die
120 elif [[ -e waf ]]
121 then
122 ${MAGE_PYTHON_EXEC} waf install --destdir=${BINDIR} $@ || die
123 elif [[ -e meson.build ]]
124 then
125 # never run multilib builds here, multilib will be enabled by python_multilib_src_compile
126 # this honors the logic of other build methods (python, waf, autotools)
127 MULTILIB=false DESTDIR=${BINDIR} mninja install || die
128 elif [[ -e install.py ]]
129 then
130 ${MAGE_PYTHON_EXEC} install.py --prefix=/usr --files-only --destdir=${BINDIR} $@ || die
131 else
132 if [[ ${MULTILIB_BUILD} = true ]] && [[ ! -z $(typeset -f oldmconfigure) ]] && [[ ! -z $(typeset -f oldmmake) ]]
133 then
134 oldmmake DESTDIR=${BINDIR} install || die
135 else
136 mmake DESTDIR=${BINDIR} install || die
137 fi
138 fi
139 }
140
141 python_src_compile()
142 {
143 cd ${SRCDIR}
144 python_docompile $@ || die
145 }
146
147 python_multilib_src_compile()
148 {
149 local abi
150 local saved_SRCDIR="${SRCDIR}"
151
152 for abi in ${MULTILIB_ABIS}
153 do
154 SRCDIR="${saved_SRCDIR}-${abi}/${SRCSUBDIR}"
155 cd ${SRCDIR}
156 abi-${abi} python_docompile $@ || die
157 done
158 SRCDIR="${saved_SRCDIR}"
159 }
160
161 python_src_check()
162 {
163 return 0
164 }
165
166 python_src_install()
167 {
168 cd ${SRCDIR}
169 python_doinstall $@ || die
170
171 local i
172 for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
173 FAQ LICENSE NEWS README* TODO PKG-INFO
174 do
175 if [ -f ${SRCDIR}/${i} ]
176 then
177 minstalldocs ${i} || die
178 fi
179 done
180 }
181
182 python_multilib_src_install()
183 {
184 local abi
185 local saved_SRCDIR="${SRCDIR}"
186
187 for abi in ${MULTILIB_ABIS}
188 do
189 SRCDIR="${saved_SRCDIR}-${abi}/${SRCSUBDIR}"
190 cd ${SRCDIR}
191 abi-${abi} python_doinstall $@ || die
192
193 local i
194 for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
195 FAQ LICENSE NEWS README* TODO PKG-INFO
196 do
197 if [ -f ${SRCDIR}/${i} ]
198 then
199 oldminstalldocs ${i} || die
200 fi
201 done
202 done
203 SRCDIR="${saved_SRCDIR}"
204 }
205
206 export_inherits python src_prepare src_check
207 if [[ ${MULTILIB_BUILD} = true ]]
208 then
209 export_inherits python_multilib src_compile src_install
210 else
211 export_inherits python src_compile src_install
212 fi