qpid-proton: new package

[Thomas:
   - Do not define QPID_PROTON_VERSION_MAJOR, and use proto-* instead,
     as suggested by Arnout.
   - Use QPID_PROTO_VERSION in QPID_PROTON_SITE, as suggested by
     Arnout
   - Remove useless comma in the openssl test, as suggested by Arnout
   - Change the post install target hook to remove the
     /usr/share/proton-*/ directory entirely, and not just the
     examples, since it only contains some license and documentation
     files.]

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Luca Ceresoli 2015-07-11 16:15:10 +02:00 committed by Thomas Petazzoni
parent 22ed697d11
commit 36b2d9ab0c
5 changed files with 99 additions and 0 deletions

View File

@ -997,6 +997,7 @@ menu "Networking"
source "package/openpgm/Config.in"
source "package/ortp/Config.in"
source "package/qdecoder/Config.in"
source "package/qpid-proton/Config.in"
source "package/rtmpdump/Config.in"
source "package/slirp/Config.in"
source "package/snmppp/Config.in"

View File

@ -0,0 +1,52 @@
From f24be9ae9ab01c7507a366e9d5529c444f0b7edd Mon Sep 17 00:00:00 2001
From: Luca Ceresoli <luca@lucaceresoli.net>
Date: Fri, 10 Jul 2015 10:13:47 +0200
Subject: [PATCH] proton-c: fix C compiler detection with _ARG1/_ARG2
The C compiler commandline in CMake is composed by the concatenation of
CMAKE_C_COMPILER + CMAKE_C_COMPILER_ARG1 + CMAKE_C_COMPILER_ARG2.
In most use cases the two additional argument variables are empty, thus
CMAKE_C_COMPILER can be used without any noticeable difference.
The Buildroot embedded Linux build system [0], however, optionally exploits the
CMAKE_C_COMPILER_ARG1 variable to speed up the cross-compilation of CMake-based
packages using ccache. It does so by setting [1]:
CMAKE_C_COMPILER = /path/to/ccache
CMAKE_C_COMPILER_ARG1 = /path/to/cross-gcc
This works fine with other CMake-based packages, but proton-c's CMakeLists.txt
calls gcc to extract the compiler version. It does so by calling
"${CMAKE_C_COMPILER} -dumpversion", without honoring the two extra arguments.
Within Buildroot with ccache enabled, this means calling
"/path/to/ccache -dumpversion", which fails with the error:
ccache: invalid option -- 'd'
Fix the compiler check by adding the two arguments.
[0] http://buildroot.net/
[1] http://git.buildroot.net/buildroot/tree/support/misc/toolchainfile.cmake.in?id=2015.05
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
---
proton-c/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
index 93449a9..8c31a89 100644
--- a/proton-c/CMakeLists.txt
+++ b/proton-c/CMakeLists.txt
@@ -218,7 +218,7 @@ if (CMAKE_COMPILER_IS_GNUCC)
set (COMPILE_LANGUAGE_FLAGS "-std=c99")
set (COMPILE_PLATFORM_FLAGS "-std=gnu99")
- execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION
+ execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${CMAKE_C_COMPILER_ARG2} -dumpversion OUTPUT_VARIABLE GCC_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (${GCC_VERSION} VERSION_LESS "4.3.0")
# Only a concern if contibuting code back.
--
1.9.1

View File

@ -0,0 +1,17 @@
config BR2_PACKAGE_QPID_PROTON
bool "qpid-proton"
depends on BR2_USE_WCHAR # util-linux
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBUUID
help
The AMQP messaging toolkit
Qpid Proton is a high-performance, lightweight messaging library.
It can be used in the widest range of messaging applications,
including brokers, client libraries, routers, bridges, proxies, and
more.
https://qpid.apache.org/proton/
comment "qpid-proton needs a toolchain w/ wchar"
depends on !BR2_USE_WCHAR

View File

@ -0,0 +1,2 @@
# Hash from: http://www.apache.org/dist/qpid/proton/0.9.1/qpid-proton-0.9.1.tar.gz.sha
sha1 98008d90acd0d47cbd7ac1572a2bb50b452338ed qpid-proton-0.9.1.tar.gz

View File

@ -0,0 +1,27 @@
################################################################################
#
# qpid-proton
#
################################################################################
QPID_PROTON_VERSION = 0.9.1
QPID_PROTON_SITE = http://apache.panu.it/qpid/proton/$(QPID_PROTON_VERSION)
QPID_PROTON_STRIP_COMPONENTS = 2
QPID_PROTON_LICENSE = Apache-2.0
QPID_PROTON_LICENSE_FILES = LICENSE
QPID_PROTON_INSTALL_STAGING = YES
QPID_PROTON_DEPENDENCIES = \
util-linux \
$(if $(BR2_PACKAGE_OPENSSL),openssl)
QPID_PROTON_CONF_OPTS = \
-DBUILD_JAVA=OFF \
-DENABLE_VALGRIND=OFF \
-DENABLE_WARNING_ERROR=OFF
define QPID_PROTON_REMOVE_USELESS_FILES
rm -fr $(TARGET_DIR)/usr/share/proton-*/
endef
QPID_PROTON_POST_INSTALL_TARGET_HOOKS += QPID_PROTON_REMOVE_USELESS_FILES
$(eval $(cmake-package))