1SUMMARY = "Apache Thrift"
2DESCRIPTION =  "A software framework, for scalable cross-language services development"
3HOMEPAGE = "https://thrift.apache.org/"
4
5LICENSE = "Apache-2.0"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=c40a383cb3f747e0c7abbf1482f194f0 \
7                    file://NOTICE;md5=2659b43daca219f99a2f2626ea128f73"
8
9DEPENDS = "thrift-native boost flex-native bison-native openssl zlib"
10
11SRC_URI = "https://downloads.apache.org/${BPN}/${PV}/${BP}.tar.gz \
12           file://0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch"
13SRC_URI[sha256sum] = "b5d8311a779470e1502c027f428a1db542f5c051c8e1280ccd2163fa935ff2d6"
14
15BBCLASSEXTEND = "native nativesdk"
16
17CVE_PRODUCT = "apache:thrift"
18
19inherit pkgconfig cmake python3native
20
21export STAGING_INCDIR
22export STAGING_LIBDIR
23export BUILD_SYS
24export HOST_SYS
25
26EXTRA_OECMAKE = " \
27    -DBUILD_LIBRARIES=ON \
28    -DBUILD_SHARED_LIBS=ON \
29    -DBUILD_COMPILER=ON \
30    -DBUILD_TESTING=OFF \
31    -DBUILD_TUTORIALS=OFF \
32    -DWITH_AS3=OFF \
33    -DWITH_CPP=ON \
34    -DWITH_JAVA=OFF \
35    -DWITH_OPENSSL=ON \
36    -DWITH_QT5=OFF \
37    -DWITH_ZLIB=ON \
38    -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
39    -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
40"
41
42PACKAGECONFIG ??= "glib libevent"
43PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0"
44PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent"
45PACKAGECONFIG[javascript] = "-DWITH_JAVASCRIPT=ON,-DWITH_JAVASCRIPT=OFF,nodejs"
46PACKAGECONFIG[nodejs] = "-DWITH_NODEJS=ON,-DWITH_NODEJS=OFF,nodejs"
47PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python"
48
49do_install:append () {
50    ln -sf thrift ${D}/${bindir}/thrift-compiler
51    # remove absolute paths
52    sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thriftnbTargets.cmake
53    sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glibTargets.cmake
54    sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glib_zlibTargets.cmake
55}
56
57LEAD_SONAME = "libthrift.so.${PV}"
58
59# thrift packages
60PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN} lib${BPN}z lib${BPN}nb lib${BPN}-c-glib"
61FILES:lib${BPN} = "${libdir}/libthrift.so.*"
62FILES:lib${BPN}z = "${libdir}/libthriftz.so.*"
63FILES:lib${BPN}nb = "${libdir}/libthriftnb.so.*"
64FILES:lib${BPN}-c-glib = "${libdir}/libthrift_c_glib.so.*"
65FILES:${PN}-compiler = "${bindir}/*"
66
67# The thrift packages just pulls in some default dependencies but is otherwise empty
68RRECOMMENDS:${PN} = "${PN}-compiler lib${BPN}"
69ALLOW_EMPTY:${PN} = "1"
70RRECOMMENDS:${PN}:class-native = ""
71RRECOMMENDS:${PN}:class-nativesdk = ""
72