From 45f3dd8b7acbb1cd34b3a02a4ccb3087447f1783 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Thu, 7 Oct 2021 13:26:39 +0200
Subject: [PATCH] Revert "python/build/libs.py: remove flac, switch to Meson
 wrap"

This reverts commit 6ed4aff4d3a11df280d1f93cea015003fc581648.  The
Meson wrap is broken on non-x86, because it unconditionally includes
<cpuid.h> which is an x86 only header.
---
 android/build.py         |  1 +
 meson.build              |  3 ---
 python/build/libs.py     | 12 ++++++++++++
 src/lib/xiph/meson.build |  4 +---
 subprojects/.gitignore   |  1 -
 subprojects/flac.wrap    | 12 ------------
 win32/build.py           |  1 +
 7 files changed, 15 insertions(+), 19 deletions(-)
 delete mode 100644 subprojects/flac.wrap

diff --git a/android/build.py b/android/build.py
index 9d90512ca..dd5bb2f5b 100755
--- a/android/build.py
+++ b/android/build.py
@@ -151,6 +151,7 @@ thirdparty_libs = [
     libmpdclient,
     libogg,
     opus,
+    flac,
     libid3tag,
     libmodplug,
     wildmidi,
diff --git a/meson.build b/meson.build
index 79fd3beba..b8f81ef28 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,6 @@ project(
     # If we build those libraries as Meson subproject, they shall be
     # linked statically into the MPD executable.
     'expat:default_library=static',
-    'flac:default_library=static',
     'fmt:default_library=static',
     'gtest:default_library=static',
     'sqlite3:default_library=static',
@@ -22,8 +21,6 @@ project(
     # Not interested in compiler warnings from subprojects.
     'expat:werror=false',
     'expat:warning_level=0',
-    'flac:werror=false',
-    'flac:warning_level=0',
     'fmt:warning_level=0',
     'gtest:warning_level=0',
     'sqlite3:warning_level=0',
diff --git a/python/build/libs.py b/python/build/libs.py
index 1c7d80919..fa419b11d 100644
--- a/python/build/libs.py
+++ b/python/build/libs.py
@@ -42,6 +42,18 @@ opus = AutotoolsProject(
     cppflags='-DOPUS_EXPORT=',
 )
 
+flac = AutotoolsProject(
+    'http://downloads.xiph.org/releases/flac/flac-1.3.3.tar.xz',
+    '213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748',
+    'lib/libFLAC.a',
+    [
+        '--disable-shared', '--enable-static',
+        '--disable-xmms-plugin', '--disable-cpplibs',
+        '--disable-doxygen-docs',
+    ],
+    subdirs=['include', 'src/libFLAC'],
+)
+
 zlib = ZlibProject(
     'http://zlib.net/zlib-1.2.11.tar.xz',
     '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066',
diff --git a/src/lib/xiph/meson.build b/src/lib/xiph/meson.build
index 729b75fcc..8786ac7e6 100644
--- a/src/lib/xiph/meson.build
+++ b/src/lib/xiph/meson.build
@@ -1,6 +1,4 @@
-libflac_dep = dependency('flac', version: '>= 1.2',
-                         fallback: ['flac', 'flac_dep'],
-                         required: get_option('flac'))
+libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac'))
 libopus_dep = dependency('opus', required: get_option('opus'))
 
 if get_option('tremor').enabled()
diff --git a/subprojects/.gitignore b/subprojects/.gitignore
index 5534fb826..4eb01d547 100644
--- a/subprojects/.gitignore
+++ b/subprojects/.gitignore
@@ -1,7 +1,6 @@
 /packagecache/
 
 /expat-*/
-/flac-*/
 /fmt-*/
 /googletest-*/
 /sqlite-*/
diff --git a/subprojects/flac.wrap b/subprojects/flac.wrap
deleted file mode 100644
index d99ffa31a..000000000
--- a/subprojects/flac.wrap
+++ /dev/null
@@ -1,12 +0,0 @@
-[wrap-file]
-directory = flac-1.3.3
-source_url = https://github.com/xiph/flac/archive/refs/tags/1.3.3.tar.gz
-source_filename = 1.3.3.tar.gz
-source_hash = 668cdeab898a7dd43cf84739f7e1f3ed6b35ece2ef9968a5c7079fe9adfe1689
-patch_url = https://wrapdb.mesonbuild.com/v1/projects/flac/1.3.3/1/get_zip
-patch_filename = flac-1.3.3-1-wrap.zip
-patch_hash = bcd79061d1d29f8871646a356eb15ee2b6bacdc960594f584dcd4f90d7e0d4dd
-
-[provide]
-flac = flac_dep
-
diff --git a/win32/build.py b/win32/build.py
index 3301b1bd9..86969d206 100755
--- a/win32/build.py
+++ b/win32/build.py
@@ -94,6 +94,7 @@ thirdparty_libs = [
     libmpdclient,
     libogg,
     opus,
+    flac,
     zlib,
     libid3tag,
     liblame,