summaryrefslogtreecommitdiffstats
path: root/sound/snapcast/Makefile
blob: f42e0bddb18324c264589294e31d52e1fcfbff19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# SPDX-License-Identifier: GPL-2.0-or-later

include $(TOPDIR)/rules.mk

PKG_NAME:=snapcast
PKG_VERSION:=0.34.0
PKG_RELEASE:=1

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/snapcast/snapcast.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MIRROR_HASH=b47c44e208708cbfd6fb89b5874ed05ffa165b959904ccc11b03073bf9b55b0a

PKG_MAINTAINER:=Szabolcs Hubai <szab.hu@gmail.com>, David Andreoletti <david@andreoletti.net>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:badaix:snapcast

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

CMAKE_OPTIONS += \
	-DBUILD_TESTS=OFF \
	-DBUILD_WITH_ALSA=ON \
	-DBUILD_WITH_AVAHI=OFF \
	-DBUILD_WITH_JACK=OFF \
	-DBUILD_WITH_PIPEWIRE=OFF \
	-DBUILD_WITH_PULSE=OFF \
	-DBUILD_WITH_SSL=OFF \
	-DBUILD_WITH_TREMOR=ON

define Package/snapcast/Default
  SECTION:=sound
  CATEGORY:=Sound
  TITLE:=Synchronous multiroom audio player
  DEPENDS:=+alsa-lib +libexpat +libatomic +libogg +libflac +libopus +boost +libsoxr
  URL:=https://github.com/snapcast/snapcast
endef

define Package/snapcast/Default/description
  Synchronous audio player - Snapcast

  Snapcast is a multi-room client-server audio player,
  where all clients are time synchronized with the server
  to play perfectly synced audio.
  It's not a standalone player, but an extension that turns
  your existing audio player into a Sonos-like multiroom solution.
  Audio is captured by the server and routed to the connected clients.
  Several players can feed audio to the server in parallel
  and clients can be grouped to play the same audio stream.
  One of the most generic ways to use Snapcast is in conjunction
  with the Music Player Daemon (MPD) or Mopidy.

endef

define Package/snapserver
  $(call Package/snapcast/Default)
  TITLE+= (server)
  DEPENDS+=+libvorbis
endef

define Package/snapclient
  $(call Package/snapcast/Default)
  TITLE+= (client)
  DEPENDS+=+libvorbisidec
endef

define Package/snapserver/description
  $(call Package/snapcast/Default/description)
  This package contains the Snapcast server.
endef

define Package/snapclient/description
  $(call Package/snapcast/Default/description)
  This package contains the Snapcast client.
endef

define Package/snapserver/conffiles
/etc/config/snapserver
/etc/snapserver.conf
endef

define Package/snapclient/conffiles
/etc/config/snapclient
endef

define Package/snapserver/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/snapserver $(1)/usr/bin/
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/snapserver.init $(1)/etc/init.d/snapserver
	$(INSTALL_CONF) $(PKG_BUILD_DIR)/server/etc/snapserver.conf $(1)/etc/snapserver.conf
	$(SED) 's/.*doc_root *=/#doc_root =/' $(1)/etc/snapserver.conf
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_CONF) ./files/snapserver.conf $(1)/etc/config/snapserver
endef

define Package/snapclient/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/snapclient $(1)/usr/bin/
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/snapclient.init $(1)/etc/init.d/snapclient
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_CONF) ./files/snapclient.conf $(1)/etc/config/snapclient
endef

$(eval $(call BuildPackage,snapserver))
$(eval $(call BuildPackage,snapclient))