summaryrefslogtreecommitdiff
path: root/packages/net-im/spectrum/spectrum.exlib
blob: 5ef1ff336bdf7d3608b5afc2e418e1000c6131d5 (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
# Distributed under the terms of the GNU General Public License v2
# Copyright 2018 Gluzskiy Alexandr <sss@sss.chaoslab.ru>

if ! ever at_least 2.0.7; then
    SCM_EXTERNAL_REFS="
        msvc-deps/curl:curl
    "
    SCM_SECONDARY_REPOSITORIES="curl"
    SCM_curl_REPOSITORY="https://github.com/curl/curl.git"
fi


require github [ user=hanzz project=libtransport ]
require cmake [ api=2 ]

LICENCES="GPL-2"
SLOT="0"

SUMMARY="Spectrum is an XMPP transport/gateway"
HOMEPAGE="http://spectrum.im"

MYOPTIONS="
    doc
    frotz [[ description = [ Allows playing interactive-fiction games ] ]]
    irc [[ description = [ support IRC protocol ] ]]
    mysql
    postgres [[ description = [ support PostgreSQL backend for database ] ]]
    smstools [[ description = [ SMS using connected mobile phone ] ]]
    sqlite
    twitter [[ description = [ support twitter protocol ] ]]
    ( providers: libressl openssl ) [[ number-selected = exactly-one ]]
"


DEPENDENCIES+="
    build:
        sys-devel/gettext
        doc? ( app-doc/doxygen )
    build+run:
        dev-libs/jsoncpp:=
        dev-libs/popt
        dev-libs/protobuf:=
        dev-libs/libev
        dev-libs/log4cxx
        net-im/pidgin
        net-im/swiften
        frotz? ( dev-libs/protobuf )
        irc? (
            dev-libs/protobuf
            net-im/libcommuni
        )
        mysql? ( virtual/mysql )
        postgres? ( dev-db/libpqxx )
        sqlite? ( dev-db/sqlite:3 )
        providers:libressl? ( dev-libs/libressl:= )
        providers:openssl? ( dev-libs/openssl )
    test:
        dev-cpp/cppunit
"

if ! ever is_scm; then
    CMAKE_SOURCE="${WORKBASE}/spectrum2-${PV}"
fi

CMAKE_SRC_CONFIGURE_TESTS=( '-DENABLE_TESTS=ON -DENABLE_TESTS=OFF' )

CMAKE_SRC_CONFIGURE_OPTION_ENABLES=(
    'doc DOCS'
    FROTZ
    IRC
    MYSQL
    'postgres PQXX'
    'smstools SMSTOOLS3'
    'sqlite SQLITE3'
    TWITTER
)

CMAKE_SRC_CONFIGURE_PARAMS+=( -DENABLE_XMPP=TRUE )

if ever at_least 2.0.8; then
    export_exlib_phases src_prepare
    spectrum_src_prepare() {
        cmake_src_prepare

        # replace complicated broken module by simple pkg-config search
        # https://github.com/SpectrumIM/spectrum2/issues/300
        if ever is_scm; then
            edo rm "${CMAKE_SOURCE}"/cmake_modules/FindJsonCpp.cmake
            edo cp "${FILES}"/Findjsoncpp.cmake "${CMAKE_SOURCE}"/cmake_modules/FindJsonCpp.cmake
        else
            edo rm "${CMAKE_SOURCE}"/cmake_modules/Findjsoncpp.cmake
            edo cp "${FILES}"/Findjsoncpp.cmake "${CMAKE_SOURCE}"/cmake_modules/Findjsoncpp.cmake
        fi
    }
fi