Commit Graph

60 Commits

Author SHA1 Message Date
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
cb288439a4 {android,win32}/build.py: make stdout/stderr unbuffered
Avoid excessive buffering if run by CI.
2022-08-08 23:48:23 +02:00
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
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
6ed4aff4d3 python/build/libs.py: remove flac, switch to Meson wrap 2021-09-21 16:44:51 +02:00
10782f4c84 {android,win32}/build.py: use makedirs(exist_ok) 2021-09-21 16:04:31 +02:00
520028dcfc python/build/libs.py: remove libexpat, switch to Meson wrap 2021-09-21 14:08:23 +02:00
aef0535c55 python/build/libs.py: remove libvorbis, switch to Meson wrap 2021-09-21 13:49:50 +02:00
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
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
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
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
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
aba18924ee win32/build.py: link libstdc++ and libcc statically
Fixes 
2018-11-04 11:10:00 +01:00
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
13ce142df1 python/build/meson.py: generate windres line 2018-10-14 23:41:38 +02:00
12bc625fe1 android/build.py: add aarch64 support 2018-08-17 19:20:25 +02:00
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
62127bbb12 python/build/libs.py: add libmpdclient 2018-05-12 16:24:24 +02:00
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
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
fcaedec2ab {android,win32}/build.py: move "-O* -g" to common_flags 2018-01-19 12:33:28 +01:00
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
f633e6ca49 python/build/libs: add LAME
Enable it in the Windows build script, closes .

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
07b06d76be {android,win32}/build.py: concatenate variables from the command line 2017-07-19 20:53:52 +02:00
c3d883c6cb win32/build.py: default to x64 build 2017-02-20 21:06:43 +01:00
097e30321b win32/build.py: add option --32 2017-02-20 21:06:31 +01:00
b6ddeaacf2 win32/build.py: convert argument parser to loop
Allow multiple arguments.
2017-02-20 21:06:21 +01:00
b0c60ec124 win32/build.py: add variable "x64", assign host_arch later 2017-02-20 21:04:34 +01:00
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
019aea3d63 {android,win32}/build.py: move code to python/build/libs.py 2015-11-23 10:43:06 +01:00
21439108ed {android,win32}/build.py: move code to python/build/dirs.py 2015-11-23 10:38:48 +01:00
754b30a7a6 win32/build.py: move class ZlibProject to build/zlib.py 2015-11-21 00:43:50 +01:00
89d5d480d7 {android,win32}/build.py: move class FfmpegProject to build/ffmpeg.py 2015-11-21 00:36:54 +01:00
fbcacb590b {android,win32}/build.py: FfmpegProject detects CPU and OS 2015-11-21 00:35:52 +01:00
f97ad2b2ee {android,win32}/build.py: move class BoostProject to build/boost.py 2015-11-21 00:17:00 +01:00
e70f7141be {android,win32}/build.py: move class AutotoolsProject to build/autotools.py 2015-11-21 00:05:48 +01:00
7a08ce7ece {android,win32}/build.py: move class Project to build/project.py 2015-11-21 00:00:42 +01:00
86486336ec {android,win32}/build.py: add tarball_path and src_path to toolchain class
Reduce dependencies on global variables.
2015-11-20 23:47:52 +01:00
ec2a2522aa win32/build.py: restore option "out_of_tree"
Got lost in the previous commit.
2015-11-20 23:40:14 +01:00
556f9ee39c {android,win32}/build.py: move common code to python/build/ 2015-11-20 22:14:53 +01:00
7dad662d69 {android,win32}/build.py: fix missing rename 2015-11-20 22:14:11 +01:00
2daa3eb61f {android,win32}/build.py: add toolchain classes 2015-11-20 20:30:42 +01:00
3079aa1f9d {android,win32}/build.py: upgrade FFmpeg to 2.8.2 2015-11-17 17:16:56 +01:00
41e63031b0 {android,win32}/build.py: upgrade Boost to 1.59.0 2015-10-27 11:33:09 +01:00
bb86f27fdf {android,win32}/build.py: upgrade FFmpeg to 2.8.1 2015-10-27 11:31:13 +01:00
5cf4f62610 {android,win32}/build.py: upgrade CURL to 7.45.0 2015-10-27 11:31:13 +01:00
ccdb94b06c configure.ac: remove GLib option
Not used anymore.
2015-06-27 16:06:28 +02:00
07c5d3277f {android,win32}/build.py: allow overriding shared path via environment 2015-06-03 07:48:38 +02:00
d1d44a4fde {android,win32}/build.py: move tarballs to subdirectory "download" 2015-06-03 07:46:58 +02:00