{android,win32}/build.py: build libmodplug and WildMidi
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
This commit is contained in:
parent
4e5d6e560b
commit
257a77fa35
2
NEWS
2
NEWS
|
@ -8,8 +8,10 @@ ver 0.21.24 (not yet released)
|
||||||
- wildmidi: attempt to detect WildMidi using pkg-config
|
- wildmidi: attempt to detect WildMidi using pkg-config
|
||||||
- wildmidi: fix Windows build failure
|
- wildmidi: fix Windows build failure
|
||||||
* Android
|
* Android
|
||||||
|
- enable the decoder plugins ModPlug and WildMidi
|
||||||
- fix build failure with Android NDK r21
|
- fix build failure with Android NDK r21
|
||||||
* Windows
|
* Windows
|
||||||
|
- enable the decoder plugins ModPlug and WildMidi
|
||||||
- work around Meson bug breaking the Windows build with GCC 10
|
- work around Meson bug breaking the Windows build with GCC 10
|
||||||
* fix unit test failure
|
* fix unit test failure
|
||||||
|
|
||||||
|
|
|
@ -168,6 +168,8 @@ thirdparty_libs = [
|
||||||
opus,
|
opus,
|
||||||
flac,
|
flac,
|
||||||
libid3tag,
|
libid3tag,
|
||||||
|
libmodplug,
|
||||||
|
wildmidi,
|
||||||
ffmpeg,
|
ffmpeg,
|
||||||
curl,
|
curl,
|
||||||
libexpat,
|
libexpat,
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from build.project import Project
|
||||||
|
|
||||||
|
def configure(toolchain, src, build, args=()):
|
||||||
|
cross_args = []
|
||||||
|
|
||||||
|
if toolchain.is_windows:
|
||||||
|
cross_args.append('-DCMAKE_SYSTEM_NAME=Windows')
|
||||||
|
cross_args.append('-DCMAKE_RC_COMPILER=' + toolchain.windres)
|
||||||
|
|
||||||
|
configure = [
|
||||||
|
'cmake',
|
||||||
|
src,
|
||||||
|
|
||||||
|
'-DCMAKE_INSTALL_PREFIX=' + toolchain.install_prefix,
|
||||||
|
'-DCMAKE_BUILD_TYPE=release',
|
||||||
|
|
||||||
|
'-DCMAKE_C_COMPILER=' + toolchain.cc,
|
||||||
|
'-DCMAKE_CXX_COMPILER=' + toolchain.cxx,
|
||||||
|
|
||||||
|
'-DCMAKE_C_FLAGS=' + toolchain.cflags + ' ' + toolchain.cppflags,
|
||||||
|
'-DCMAKE_CXX_FLAGS=' + toolchain.cxxflags + ' ' + toolchain.cppflags,
|
||||||
|
|
||||||
|
'-GNinja',
|
||||||
|
] + cross_args + args
|
||||||
|
|
||||||
|
subprocess.check_call(configure, env=toolchain.env, cwd=build)
|
||||||
|
|
||||||
|
class CmakeProject(Project):
|
||||||
|
def __init__(self, url, md5, installed, configure_args=[],
|
||||||
|
**kwargs):
|
||||||
|
Project.__init__(self, url, md5, installed, **kwargs)
|
||||||
|
self.configure_args = configure_args
|
||||||
|
|
||||||
|
def configure(self, toolchain):
|
||||||
|
src = self.unpack(toolchain)
|
||||||
|
build = self.make_build_path(toolchain)
|
||||||
|
configure(toolchain, src, build, self.configure_args)
|
||||||
|
return build
|
||||||
|
|
||||||
|
def build(self, toolchain):
|
||||||
|
build = self.configure(toolchain)
|
||||||
|
subprocess.check_call(['ninja', 'install'],
|
||||||
|
cwd=build, env=toolchain.env)
|
|
@ -4,6 +4,7 @@ from os.path import abspath
|
||||||
from build.project import Project
|
from build.project import Project
|
||||||
from build.zlib import ZlibProject
|
from build.zlib import ZlibProject
|
||||||
from build.meson import MesonProject
|
from build.meson import MesonProject
|
||||||
|
from build.cmake import CmakeProject
|
||||||
from build.autotools import AutotoolsProject
|
from build.autotools import AutotoolsProject
|
||||||
from build.ffmpeg import FfmpegProject
|
from build.ffmpeg import FfmpegProject
|
||||||
from build.boost import BoostProject
|
from build.boost import BoostProject
|
||||||
|
@ -111,6 +112,29 @@ liblame = AutotoolsProject(
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
libmodplug = AutotoolsProject(
|
||||||
|
'https://downloads.sourceforge.net/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz',
|
||||||
|
'457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de',
|
||||||
|
'lib/libmodplug.a',
|
||||||
|
[
|
||||||
|
'--disable-shared', '--enable-static',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
wildmidi = CmakeProject(
|
||||||
|
'https://codeload.github.com/Mindwerks/wildmidi/tar.gz/wildmidi-0.4.3',
|
||||||
|
'498e5a96455bb4b91b37188ad6dcb070824e92c44f5ed452b90adbaec8eef3c5',
|
||||||
|
'lib/libWildMidi.a',
|
||||||
|
[
|
||||||
|
'-DBUILD_SHARED_LIBS=OFF',
|
||||||
|
'-DWANT_PLAYER=OFF',
|
||||||
|
'-DWANT_STATIC=ON',
|
||||||
|
],
|
||||||
|
base='wildmidi-wildmidi-0.4.3',
|
||||||
|
name='wildmidi',
|
||||||
|
version='0.4.3',
|
||||||
|
)
|
||||||
|
|
||||||
ffmpeg = FfmpegProject(
|
ffmpeg = FfmpegProject(
|
||||||
'http://ffmpeg.org/releases/ffmpeg-4.2.3.tar.xz',
|
'http://ffmpeg.org/releases/ffmpeg-4.2.3.tar.xz',
|
||||||
'9df6c90aed1337634c1fb026fb01c154c29c82a64ea71291ff2da9aacb9aad31',
|
'9df6c90aed1337634c1fb026fb01c154c29c82a64ea71291ff2da9aacb9aad31',
|
||||||
|
|
|
@ -96,6 +96,8 @@ thirdparty_libs = [
|
||||||
zlib,
|
zlib,
|
||||||
libid3tag,
|
libid3tag,
|
||||||
liblame,
|
liblame,
|
||||||
|
libmodplug,
|
||||||
|
wildmidi,
|
||||||
ffmpeg,
|
ffmpeg,
|
||||||
curl,
|
curl,
|
||||||
libexpat,
|
libexpat,
|
||||||
|
|
Loading…
Reference in New Issue