summaryrefslogtreecommitdiffstats
path: root/net/weechat/Makefile
blob: 94dfce5c02912f1062dc3697a546362da76050fc (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=weechat
PKG_VERSION:=4.10.1
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://weechat.org/files/src/
PKG_HASH:=b8744c6f5dc5543062791f563e0516dbc96a36161e1a03c468b3b7dcc8be5aff

PKG_MAINTAINER:=Josef Schlehofer <pepe.schlehofer@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:weechat:weechat

PKG_CONFIG_DEPENDS:= \
	CONFIG_WEECHAT_ZSTD \
	CONFIG_WEECHAT_CJSON \
	CONFIG_WEECHAT_PYTHON \
	CONFIG_WEECHAT_LUA \
	CONFIG_WEECHAT_RUBY \
	CONFIG_WEECHAT_PERL \
	CONFIG_WEECHAT_TCL

PKG_BUILD_DEPENDS:=$(if $(CONFIG_WEECHAT_PYTHON),python3/host)
PKG_INSTALL:=1

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

define Package/weechat/Default
  SUBMENU:=Instant Messaging
  SECTION:=net
  CATEGORY:=Network
  TITLE:=Fast, light and extensible chat client
  URL:=https://weechat.org/
  DEPENDS:=+libgcrypt +libgnutls +libcurl +zlib $(ICONV_DEPENDS) $(INTL_DEPENDS) +ca-bundle \
	+WEECHAT_ZSTD:libzstd \
	+WEECHAT_CJSON:cJSON \
	+WEECHAT_PYTHON:python3-light \
	+WEECHAT_LUA:liblua \
	+WEECHAT_RUBY:ruby \
	+WEECHAT_PERL:perl \
	+WEECHAT_TCL:tcl
  USERID:=weechat:weechat
endef

define Package/weechat/Default/description
  WeeChat (Wee Enhanced Environment for Chat) is a fast, light and
  extensible chat client. It is multi-platform, supports IRC and
  has a plugin architecture with relay capabilities.
endef

define Package/weechat-minimal
  $(call Package/weechat/Default)
  TITLE+= (headless minimal)
  VARIANT:=minimal
  DEFAULT_VARIANT:=1
  PROVIDES:=weechat
endef

define Package/weechat-minimal/description
  $(call Package/weechat/Default/description)
  This package contains the minimal headless daemon (no ncurses dependency).
endef

define Package/weechat-full
  $(call Package/weechat/Default)
  TITLE+= (full with ncurses UI)
  DEPENDS+= +libncurses
  VARIANT:=full
  PROVIDES:=weechat
  CONFLICTS:=weechat-minimal
endef

define Package/weechat-full/description
  $(call Package/weechat/Default/description)
  This package contains both the full ncurses terminal client and the headless daemon.
endef

define Package/weechat/conffiles
/etc/config/weechat
/etc/weechat/
endef

Package/weechat-minimal/conffiles = $(Package/weechat/conffiles)
Package/weechat-full/conffiles = $(Package/weechat/conffiles)

define Package/weechat/config
	source "$(SOURCE)/Config.in"
endef

# One copy of the options is enough, they apply to both variants
Package/weechat-minimal/config = $(Package/weechat/config)

ifeq ($(BUILD_VARIANT),full)
CMAKE_OPTIONS += \
	-DENABLE_NCURSES=ON \
	-DENABLE_HEADLESS=ON
else
CMAKE_OPTIONS += \
	-DENABLE_NCURSES=OFF \
	-DENABLE_HEADLESS=ON
endif

weechat_has_scripts:=$(if $(CONFIG_WEECHAT_PERL)$(CONFIG_WEECHAT_PYTHON)$(CONFIG_WEECHAT_RUBY)$(CONFIG_WEECHAT_LUA)$(CONFIG_WEECHAT_TCL),ON,OFF)

CMAKE_OPTIONS += \
	-DENABLE_DOC=OFF \
	-DENABLE_MAN=OFF \
	-DENABLE_TESTS=OFF \
	-DENABLE_SCRIPTS=$(weechat_has_scripts) \
	-DENABLE_SCRIPT=$(weechat_has_scripts) \
	-DENABLE_PERL=$(if $(CONFIG_WEECHAT_PERL),ON,OFF) \
	-DENABLE_PYTHON=$(if $(CONFIG_WEECHAT_PYTHON),ON,OFF) \
	-DENABLE_RUBY=$(if $(CONFIG_WEECHAT_RUBY),ON,OFF) \
	-DENABLE_LUA=$(if $(CONFIG_WEECHAT_LUA),ON,OFF) \
	-DENABLE_TCL=$(if $(CONFIG_WEECHAT_TCL),ON,OFF) \
	-DENABLE_GUILE=OFF \
	-DENABLE_JAVASCRIPT=OFF \
	-DENABLE_PHP=OFF \
	-DENABLE_SPELL=OFF \
	-DENABLE_ZSTD=$(if $(CONFIG_WEECHAT_ZSTD),ON,OFF) \
	-DENABLE_CJSON=$(if $(CONFIG_WEECHAT_CJSON),ON,OFF) \
	-DENABLE_NLS=$(if $(CONFIG_BUILD_NLS),ON,OFF)

ifneq ($(CONFIG_WEECHAT_PYTHON),)
include ../../lang/python/python3-version.mk
CMAKE_OPTIONS += \
	-DPython_EXECUTABLE=$(STAGING_DIR_HOSTPKG)/bin/python3 \
	-DPython_INCLUDE_DIR=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION) \
	-DPython_LIBRARY=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION).so
endif

define Package/weechat-minimal/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/weechat-headless $(1)/usr/bin/weechat-headless
	$(LN) weechat-headless $(1)/usr/bin/weechat
	$(INSTALL_DIR) $(1)/usr/lib/weechat/plugins
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/weechat/plugins/*.so $(1)/usr/lib/weechat/plugins/
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/weechat.init $(1)/etc/init.d/weechat
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_CONF) ./files/weechat.config $(1)/etc/config/weechat
	$(INSTALL_DIR) $(1)/etc/weechat
endef

define Package/weechat-full/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/weechat $(1)/usr/bin/
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/weechat-headless $(1)/usr/bin/
	$(INSTALL_DIR) $(1)/usr/lib/weechat/plugins
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/weechat/plugins/*.so $(1)/usr/lib/weechat/plugins/
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/weechat.init $(1)/etc/init.d/weechat
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_CONF) ./files/weechat.config $(1)/etc/config/weechat
	$(INSTALL_DIR) $(1)/etc/weechat
endef

$(eval $(call BuildPackage,weechat-minimal))
$(eval $(call BuildPackage,weechat-full))