#
# SPDX-FileCopyrightText: 2013-2025 Sébastien Helleu <flashcode@flashtux.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat.  If not, see <https://www.gnu.org/licenses/>.
#

#
# This file is used to build Cygwin packages using the "cygport" command.
#
# It must be used *ONLY* for a stable release (version "X.Y.Z"),
# not for a development version (version "X.Y.Z-dev" or "X.Y.Z-rcN").
#
# Instructions:
#
#   1. install asciidoctor (to build man page/docs):
#
#      $ gem install -n /usr/local/bin asciidoctor
#
#   2. execute these commands inside your build directory, after running cmake
#      (replace X.Y.Z by WeeChat version):
#
#      $ make dist
#      $ cygport weechat-X.Y.Z-1.cygport all
#
#      Packages are built in directory: ./weechat-X.Y.Z-1.<arch>/dist/weechat/
#

inherit cmake

NAME="weechat"
VERSION=@VERSION@
RELEASE=1

# Default category (some packages have extra category)
CATEGORY="Net"

HOMEPAGE="https://weechat.org/"
LICENSE="GPL-3.0-or-later"
SRC_URI="weechat-${VERSION}.tar.xz"

# Build dependencies only
BUILD_REQUIRES="cmake gettext gettext-devel libgnutls-devel libaspell-devel \
libcurl-devel libgcrypt-devel libncurses-devel lua perl pkg-config \
python3-devel ruby tcl-devel libguile3.0-devel php-devel libzstd-devel \
zlib-devel"

#
# CMake compilation of WeeChat:
#   1. set prefix to /usr
#   2. enable build of man pages and documentation
#
CYGCMAKE_ARGS="-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_CJSON=OFF \
-DENABLE_MAN=ON \
-DENABLE_DOC=ON"

PKG_IGNORE="
    etc/postinstall/weechat.sh
    usr/share/applications/weechat.desktop
"

#
# Build 10 Cygwin packages:
#   weechat
#   weechat-python
#   weechat-perl
#   weechat-ruby
#   weechat-lua
#   weechat-tcl
#   weechat-guile
#   weechat-php
#   weechat-devel
#   weechat-doc
#
PKG_NAMES="${PN} ${PN}-python ${PN}-perl ${PN}-ruby ${PN}-lua ${PN}-tcl \
${PN}-guile ${PN}-php ${PN}-devel ${PN}-doc"
PKG_HINTS="setup python perl ruby lua tcl guile php devel doc"

#
# Package "weechat": binary, all plugins except scripting languages,
# translations, icon, man pages
#
weechat_SUMMARY="Fast, light and extensible chat client"
weechat_DESCRIPTION="WeeChat (Wee Enhanced Environment for Chat) is a fast, \
light and extensible chat client. Everything can be done with a keyboard, \
it is customizable and extensible with plugins/scripts."
weechat_CONTENTS="
    usr/bin/
    usr/lib/weechat/plugins/alias.dll
    usr/lib/weechat/plugins/buflist.dll
    usr/lib/weechat/plugins/charset.dll
    usr/lib/weechat/plugins/exec.dll
    usr/lib/weechat/plugins/fifo.dll
    usr/lib/weechat/plugins/fset.dll
    usr/lib/weechat/plugins/irc.dll
    usr/lib/weechat/plugins/logger.dll
    usr/lib/weechat/plugins/relay.dll
    usr/lib/weechat/plugins/script.dll
    usr/lib/weechat/plugins/spell.dll
    usr/lib/weechat/plugins/trigger.dll
    usr/lib/weechat/plugins/typing.dll
    usr/lib/weechat/plugins/xfer.dll
    usr/share/icons/
    usr/share/locale/
    usr/share/man/
    usr/share/doc/weechat/AUTHORS.md
    usr/share/doc/weechat/CHANGELOG.md
    usr/share/doc/weechat/CONTRIBUTING.md
    usr/share/doc/weechat/COPYING
    usr/share/doc/weechat/README.md
    usr/share/doc/weechat/UPGRADING.md
"

#
# Package "weechat-python": python scripting plugin
#
weechat_python_SUMMARY="Python scripting plugin for WeeChat"
weechat_python_DESCRIPTION="Python scripting plugin for WeeChat"
weechat_python_CONTENTS="usr/lib/weechat/plugins/python.dll"
weechat_python_REQUIRES="weechat"

#
# Package "weechat-perl": perl scripting plugin
#
weechat_perl_SUMMARY="Perl scripting plugin for WeeChat"
weechat_perl_DESCRIPTION="Perl scripting plugin for WeeChat"
weechat_perl_CONTENTS="usr/lib/weechat/plugins/perl.dll"
weechat_perl_REQUIRES="weechat"

#
# Package "weechat-ruby": ruby scripting plugin
#
weechat_ruby_SUMMARY="Ruby scripting plugin for WeeChat"
weechat_ruby_DESCRIPTION="Ruby scripting plugin for WeeChat"
weechat_ruby_CONTENTS="usr/lib/weechat/plugins/ruby.dll"
weechat_ruby_REQUIRES="weechat"

#
# Package "weechat-lua": lua scripting plugin
#
weechat_lua_SUMMARY="Lua scripting plugin for WeeChat"
weechat_lua_DESCRIPTION="Lua scripting plugin for WeeChat"
weechat_lua_CONTENTS="usr/lib/weechat/plugins/lua.dll"
weechat_lua_REQUIRES="weechat"

#
# Package "weechat-tcl": tcl scripting plugin
#
weechat_tcl_SUMMARY="Tcl scripting plugin for WeeChat"
weechat_tcl_DESCRIPTION="Tcl scripting plugin for WeeChat"
weechat_tcl_CONTENTS="usr/lib/weechat/plugins/tcl.dll"
weechat_tcl_REQUIRES="weechat"

#
# Package "weechat-guile": guile scripting plugin
#
weechat_guile_SUMMARY="Guile scripting plugin for WeeChat"
weechat_guile_DESCRIPTION="Guile scripting plugin for WeeChat"
weechat_guile_CONTENTS="usr/lib/weechat/plugins/guile.dll"
weechat_guile_REQUIRES="weechat"

#
# Package "weechat-php": php scripting plugin
#
weechat_php_SUMMARY="PHP scripting plugin for WeeChat"
weechat_php_DESCRIPTION="PHP scripting plugin for WeeChat"
weechat_php_CONTENTS="usr/lib/weechat/plugins/php.dll"
weechat_php_REQUIRES="weechat"

#
# Package "weechat-devel": header to build plugins
#
weechat_devel_CATEGORY="Net Devel"
weechat_devel_SUMMARY="Development files to build WeeChat plugins"
weechat_devel_CONTENTS="usr/include/ usr/lib/pkgconfig/"

#
# Package "weechat-doc": documentation
#
weechat_doc_CATEGORY="Net Doc"
weechat_doc_SUMMARY="Documentation for WeeChat"
weechat_doc_CONTENTS="usr/share/doc/weechat/*.html"
