2022-08-08 10:17:54 +02:00
|
|
|
#!/usr/bin/env -S python3 -u
|
2014-12-09 12:59:03 +01:00
|
|
|
|
|
|
|
import os, os.path
|
2015-11-21 00:17:00 +01:00
|
|
|
import sys, subprocess
|
2017-12-29 17:12:55 +01:00
|
|
|
import shutil
|
2014-12-09 12:59:03 +01:00
|
|
|
|
|
|
|
configure_args = sys.argv[1:]
|
|
|
|
|
2017-02-20 21:06:37 +01:00
|
|
|
x64 = True
|
2014-12-17 16:47:25 +01:00
|
|
|
|
2017-02-20 21:04:44 +01:00
|
|
|
while len(configure_args) > 0:
|
|
|
|
arg = configure_args[0]
|
|
|
|
if arg == '--64':
|
|
|
|
x64 = True
|
2017-02-20 21:06:27 +01:00
|
|
|
elif arg == '--32':
|
|
|
|
x64 = False
|
2017-02-20 21:04:44 +01:00
|
|
|
else:
|
|
|
|
break
|
|
|
|
configure_args.pop(0)
|
2017-02-20 21:04:07 +01:00
|
|
|
|
|
|
|
if x64:
|
2014-12-17 16:35:27 +01:00
|
|
|
host_arch = 'x86_64-w64-mingw32'
|
2017-02-20 21:04:07 +01:00
|
|
|
else:
|
|
|
|
host_arch = 'i686-w64-mingw32'
|
2014-12-17 16:35:27 +01:00
|
|
|
|
2014-12-09 12:59:03 +01:00
|
|
|
# the path to the MPD sources
|
2015-01-26 20:59:57 +01:00
|
|
|
mpd_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]) or '.', '..'))
|
2015-11-20 22:10:22 +01:00
|
|
|
sys.path[0] = os.path.join(mpd_path, 'python')
|
2014-12-09 12:59:03 +01:00
|
|
|
|
|
|
|
# output directories
|
2015-11-23 10:38:48 +01:00
|
|
|
from build.dirs import lib_path, tarball_path, src_path
|
2023-09-26 12:07:48 +02:00
|
|
|
from build.toolchain import MingwToolchain
|
2015-06-03 07:48:38 +02:00
|
|
|
|
2014-12-17 16:47:25 +01:00
|
|
|
arch_path = os.path.join(lib_path, host_arch)
|
|
|
|
build_path = os.path.join(arch_path, 'build')
|
|
|
|
root_path = os.path.join(arch_path, 'root')
|
2014-12-09 12:59:03 +01:00
|
|
|
|
|
|
|
# a list of third-party libraries to be used by MPD on Android
|
2015-11-23 10:43:06 +01:00
|
|
|
from build.libs import *
|
2014-12-09 12:59:03 +01:00
|
|
|
thirdparty_libs = [
|
2018-02-24 22:59:33 +01:00
|
|
|
libmpdclient,
|
2015-11-23 10:43:06 +01:00
|
|
|
zlib,
|
|
|
|
libid3tag,
|
2017-07-19 20:26:11 +02:00
|
|
|
liblame,
|
2020-05-26 21:08:29 +02:00
|
|
|
libmodplug,
|
2021-11-04 08:23:24 +01:00
|
|
|
libopenmpt,
|
2020-05-26 21:08:29 +02:00
|
|
|
wildmidi,
|
2020-06-10 20:58:31 +02:00
|
|
|
gme,
|
2015-11-23 10:43:06 +01:00
|
|
|
ffmpeg,
|
2018-02-24 22:14:44 +01:00
|
|
|
libnfs,
|
2023-02-23 14:26:32 +01:00
|
|
|
libsamplerate,
|
2014-12-09 12:59:03 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
# build the third-party libraries
|
2023-09-26 12:46:04 +02:00
|
|
|
toolchain = MingwToolchain(mpd_path,
|
|
|
|
'/usr', host_arch, x64,
|
|
|
|
tarball_path, src_path, build_path, root_path)
|
2015-11-20 20:30:42 +01:00
|
|
|
|
2014-12-09 12:59:03 +01:00
|
|
|
for x in thirdparty_libs:
|
2015-11-20 20:30:42 +01:00
|
|
|
if not x.is_installed(toolchain):
|
|
|
|
x.build(toolchain)
|
2014-12-09 12:59:03 +01:00
|
|
|
|
|
|
|
# configure and build MPD
|
|
|
|
|
2017-12-29 17:12:55 +01:00
|
|
|
from build.meson import configure as run_meson
|
|
|
|
run_meson(toolchain, mpd_path, '.', configure_args)
|
|
|
|
subprocess.check_call(['/usr/bin/ninja'], env=toolchain.env)
|