Commit Graph

74 Commits

Author SHA1 Message Date
Max Kellermann
a4ead670ed subprojects: add libmpdclient wrap 2023-12-20 17:15:29 +01:00
Max Kellermann
303d981099 subprojects: add lame 2023-12-20 16:50:13 +01:00
Max Kellermann
dfef30a737 subprojects: add curl 2023-12-11 10:53:43 +01:00
Max Kellermann
55ca3709ef subprojects: add ogg, flac, opus 2023-12-11 10:53:43 +01:00
Max Kellermann
39476bed85 Merge branch 'v0.23.x' 2023-09-26 15:36:26 +02:00
Max Kellermann
4669f7e2b9 {android,win32}/build.py: move Toolchain classes to python/build/toolchain.py 2023-09-26 12:47:02 +02:00
Max Kellermann
4c90f88704 win32: rename CrossGccToolchain to MingwToolchain 2023-09-26 12:46:10 +02:00
Max Kellermann
a7213b78d6 win32/build.py: move code to class CrossGccToolchain 2023-09-26 12:20:53 +02:00
Max Kellermann
b09a54b2c2 python/build/autotools.py: use toolchain.arflags 2023-05-21 20:42:04 +02:00
Max Kellermann
22eccaa64f python/build/autotools.py: use toolchain.arflags 2023-03-06 13:33:11 +01:00
Max Kellermann
5c5e522fcd output/jack: remove DLL support
This effectively reverts commit 0f02bbc2fe which was a horrible
kludge for JACK support on Windows.  Maintaining this kludge doesn't
seem worth the trouble (the JACK version was never updated), and
apparently nobody uses this.
2023-03-06 08:10:00 +01:00
Sweet Blue
2a75222fe2
Added libsamplerate to win32 build script 2023-02-23 14:26:32 +01:00
Max Kellermann
3cc770a00b remove obsolete Boost dependency
Boost makes building a piece of software much more difficult than
necessary.  It's a huge library, and just uncompressing it takes a
considerable amount of time. MPD only used a tiny fraction of it, yet
its header bloat made the MPD build very slow.  Locating Boost was
difficult due to its arcane build system and its resistance to use
pkg-config; it's always a special case.  MPD could never use features
of newer Boost versions because Linux distributions always shipped old
Boost versions.  Boost made everything complicated and slow.

So, finally, after getting rid of GLib (commit ccdb94b06c), switching
to C++ and using Boost (commit 0801b3f495), we've finally get rid of
it 8 years later.

Unfortunately, I had to reimplement parts of it along the way
(e.g. IntrusiveList).  Kind of NIH, but on the other hand, compiling
MPD has become much easier for users.
2023-01-23 15:06:58 +01:00
Max Kellermann
cb288439a4 {android,win32}/build.py: make stdout/stderr unbuffered
Avoid excessive buffering if run by CI.
2022-08-08 23:48:23 +02:00
Shen-Ta Hsieh
3e05cba30e
python/build/libs.py: update libopenmpt configure flags
Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com>
2021-11-04 15:23:24 +08:00
Max Kellermann
45f3dd8b7a Revert "python/build/libs.py: remove flac, switch to Meson wrap"
This reverts commit 6ed4aff4d3.  The
Meson wrap is broken on non-x86, because it unconditionally includes
<cpuid.h> which is an x86 only header.
2021-10-07 13:28:17 +02:00
Max Kellermann
6ed4aff4d3 python/build/libs.py: remove flac, switch to Meson wrap 2021-09-21 16:44:51 +02:00
Max Kellermann
10782f4c84 {android,win32}/build.py: use makedirs(exist_ok) 2021-09-21 16:04:31 +02:00
Max Kellermann
520028dcfc python/build/libs.py: remove libexpat, switch to Meson wrap 2021-09-21 14:08:23 +02:00
Max Kellermann
aef0535c55 python/build/libs.py: remove libvorbis, switch to Meson wrap 2021-09-21 13:49:50 +02:00
Max Kellermann
2699889342 python/build/cmake.py: use CMAKE_TOOLCHAIN_FILE
Let cmake know that we're cross-crompiling.
2021-09-20 23:14:13 +02:00
Max Kellermann
0f02bbc2fe output/jack: enable on Windows
This enables the JACK output plugin on Windows, but doesn't link
against libjack64.dll, instead loads the DLL at runtime with
LoadLibrary().  This kludge avoids the extremely fragile JACK shared
memory protocol by using the system's libjack64.dll, without requiring
the same DLL at build time.
2021-04-26 21:47:20 +02:00
Max Kellermann
3b51c53eca win32/build.py: add -D_FORTIFY_SOURCE=0
This fixes the Windows build.  Linking failed because some packages
(e.g. libFLAC) default to enabling `_FORTIFY_SOURCE`, which is broken
in recent mingw versions
(https://github.com/msys2/MINGW-packages/issues/5803).
2020-09-04 14:33:11 +02:00
Max Kellermann
7583cfe9b7 {android,win32}/build.py: enable the GME decoder plugin
Closes https://github.com/MusicPlayerDaemon/MPD/issues/891
2020-06-10 21:33:29 +02:00
Max Kellermann
257a77fa35 {android,win32}/build.py: build libmodplug and WildMidi
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
2020-05-27 15:03:49 +02:00
Max Kellermann
e22bdee808 win32/res/meson.build: drop tilde suffix from version number before splitting
MPD sometimes uses version numbers like "0.22~git" to mark unreleased
versions.  That makes the win32 resource compiler unhappy, because it
expects numbers only.
2019-03-18 09:58:40 +01:00
Max Kellermann
aba18924ee win32/build.py: link libstdc++ and libcc statically
Fixes #404
2018-11-04 11:10:00 +01:00
Max Kellermann
94592c1406 build with Meson instead of autotools
So long, autotools!  This is my last MPD related project to migrate
away from it.  It has its strengths, but also very obvious weaknesses
and weirdnesses.  Today, many of its quirks are not needed anymore,
and are cumbersome and slow.  Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann
13ce142df1 python/build/meson.py: generate windres line 2018-10-14 23:41:38 +02:00
Max Kellermann
12bc625fe1 android/build.py: add aarch64 support 2018-08-17 19:20:25 +02:00
Joshua Wise
a5cc13b0c5 build: Add libexpat to the crosscompile build on Windows.
The Curl plugin requires libexpat in order to work these days, so we should
download and build it in order to get the plugin enabled on Windows.
2018-08-17 17:13:39 +02:00
Max Kellermann
62127bbb12 python/build/libs.py: add libmpdclient 2018-05-12 16:24:24 +02:00
Max Kellermann
25cd47b8dc win32/build.py: enable libnfs
Now that all build failures have been fixed, we can enable the
feature.
2018-02-24 22:44:42 +01:00
Max Kellermann
666e456551 win32/build.py: add -DWINVER=0x0600 -D_WIN32_WINNT=0x0600
configure.ac sets this, but this wasn't used for compiling third-party
libraries.  This setting however is important for libnfs, which adds
fallback definitions for POLLIN and POLLOUT with bogus values.
2018-02-24 22:44:11 +01:00
Max Kellermann
fcaedec2ab {android,win32}/build.py: move "-O* -g" to common_flags 2018-01-19 12:33:28 +01:00
Max Kellermann
3717fb6c8d win32/build.py: add -march=pentium3 to fix 32 bit LAME build
Workaround for the following LAME build failure:

 error: inlining failed in call to always_inline '_mm_sqrt_ps': target
 specific option mismatch

This is because the LAME build scripts do not check whether SSE is
available; they only check for the presence of the "xmmintrin.h"
header.

Requiring a Pentium 3 CPU is reasonable enough, and it's the first CPU
to feature SSE support.
2017-08-31 19:48:59 +02:00
Max Kellermann
f633e6ca49 python/build/libs: add LAME
Enable it in the Windows build script, closes #78.

LAME currently doesn't support Android:

 checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized
2017-07-19 20:53:52 +02:00
Max Kellermann
07b06d76be {android,win32}/build.py: concatenate variables from the command line 2017-07-19 20:53:52 +02:00
Max Kellermann
c3d883c6cb win32/build.py: default to x64 build 2017-02-20 21:06:43 +01:00
Max Kellermann
097e30321b win32/build.py: add option --32 2017-02-20 21:06:31 +01:00
Max Kellermann
b6ddeaacf2 win32/build.py: convert argument parser to loop
Allow multiple arguments.
2017-02-20 21:06:21 +01:00
Max Kellermann
b0c60ec124 win32/build.py: add variable "x64", assign host_arch later 2017-02-20 21:04:34 +01:00
Max Kellermann
8380c3be02 python/build/autotools: pass RANLIB to configure
Fixes various static library linker failures ("bad extended name entry
at header"), because the wrong "ranlib" was used.
2016-10-26 17:00:17 +02:00
Max Kellermann
019aea3d63 {android,win32}/build.py: move code to python/build/libs.py 2015-11-23 10:43:06 +01:00
Max Kellermann
21439108ed {android,win32}/build.py: move code to python/build/dirs.py 2015-11-23 10:38:48 +01:00
Max Kellermann
754b30a7a6 win32/build.py: move class ZlibProject to build/zlib.py 2015-11-21 00:43:50 +01:00
Max Kellermann
89d5d480d7 {android,win32}/build.py: move class FfmpegProject to build/ffmpeg.py 2015-11-21 00:36:54 +01:00
Max Kellermann
fbcacb590b {android,win32}/build.py: FfmpegProject detects CPU and OS 2015-11-21 00:35:52 +01:00
Max Kellermann
f97ad2b2ee {android,win32}/build.py: move class BoostProject to build/boost.py 2015-11-21 00:17:00 +01:00
Max Kellermann
e70f7141be {android,win32}/build.py: move class AutotoolsProject to build/autotools.py 2015-11-21 00:05:48 +01:00