cjson: bump to version v1.0.2

This is a major update in cjson:
 - project site moved from sourceforge to github
 - project recommends to use the new cmake buildsystem instead of the
   legacy make
 - BR2_STATIC_LIBS is now OK (README does not mention issue anymore)
 - As include path and library name have changed, tinycbor has to be
   updated
 - As cjson can now be built as a static library, fix a bug in
   json2cbor compilation from tinycbor package

Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Fabrice Fontaine 2016-12-03 20:47:45 +01:00 committed by Thomas Petazzoni
parent 40685f6a51
commit c8824a428b
5 changed files with 104 additions and 22 deletions

View file

@ -1,9 +1,7 @@
config BR2_PACKAGE_CJSON
bool "cJSON"
# For static build with cJSON.c directly see README
depends on !BR2_STATIC_LIBS
help
An ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C
compliant JSON parser, under MIT license.
http://cjson.sourceforge.net/
https://github.com/DaveGamble/cJSON

2
package/cjson/cjson.hash Normal file
View file

@ -0,0 +1,2 @@
# Locally computed:
sha256 5c3a4a77796b230efbd74369b0974d14ac0408f2677bd116d4a4b5894b9be372 cjson-v1.0.2.tar.gz

View file

@ -4,26 +4,10 @@
#
################################################################################
CJSON_VERSION = 58
CJSON_SITE_METHOD = svn
CJSON_SITE = http://svn.code.sf.net/p/cjson/code
CJSON_VERSION = v1.0.2
CJSON_SITE = $(call github,DaveGamble,cjson,$(CJSON_VERSION))
CJSON_INSTALL_STAGING = YES
CJSON_LICENSE = MIT
CJSON_LICENSE_FILES = LICENSE
define CJSON_BUILD_CMDS
cd $(@D) && $(TARGET_CC) $(TARGET_CFLAGS) -shared -fPIC -lm \
cJSON.c -o libcJSON.so
endef
define CJSON_INSTALL_STAGING_CMDS
$(INSTALL) -D $(@D)/cJSON.h $(STAGING_DIR)/usr/include/cJSON.h
$(INSTALL) -D $(@D)/libcJSON.so $(STAGING_DIR)/usr/lib/libcJSON.so
endef
define CJSON_INSTALL_TARGET_CMDS
$(INSTALL) -D $(@D)/cJSON.h $(TARGET_DIR)/usr/include/cJSON.h
$(INSTALL) -D $(@D)/libcJSON.so $(TARGET_DIR)/usr/lib/libcJSON.so
endef
$(eval $(generic-package))
$(eval $(cmake-package))

View file

@ -0,0 +1,69 @@
From 9aa79d8e9e38b31b34d9933a266c698e79808a79 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fabrice.fontaine@orange.com>
Date: Sun, 13 Nov 2016 15:43:40 +0100
Subject: [PATCH] Update cjson include path
Since cjson-v1.0.0 (https://github.com/DaveGamble/cJSON/releases),
cJSON.h is installed into cjson/cJSON.h and library has been renamed
from cJSON to cjson
Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
---
Makefile | 4 ++--
Makefile.configure | 4 ++--
tools/json2cbor/json2cbor.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index acd52eb..905fbdf 100644
--- a/Makefile
+++ b/Makefile
@@ -82,12 +82,12 @@ ifeq ($(open_memstream-pass),)
endif
endif
-# json2cbor depends on an external library (cJSON)
+# json2cbor depends on an external library (cjson)
ifneq ($(cjson-pass)$(system-cjson-pass),)
JSON2CBOR_SOURCES = tools/json2cbor/json2cbor.c
INSTALL_TARGETS += $(bindir)/json2cbor
ifeq ($(system-cjson-pass),1)
- LDFLAGS_CJSON = -lcJSON
+ LDFLAGS_CJSON = -lcjson
else
JSON2CBOR_SOURCES += src/cjson/cJSON.c
json2cbor_CCFLAGS = -I$(SRCDIR)src/cjson
diff --git a/Makefile.configure b/Makefile.configure
index 28f4c92..424efb3 100644
--- a/Makefile.configure
+++ b/Makefile.configure
@@ -10,11 +10,11 @@ PROGRAM-gc_sections = int main() {}
CCFLAGS-gc_sections = -Wl,--gc-sections
PROGRAM-cjson = \#include <stdlib.h>\n
-PROGRAM-cjson += \#include <cJSON.h>\n
+PROGRAM-cjson += \#include <cjson/cJSON.h>\n
PROGRAM-cjson += int main() { return cJSON_False; }
CCFLAGS-cjson = -I$(dir $(MAKEFILE))src/cjson
PROGRAM-system-cjson = $(PROGRAM-cjson)
-CCFLAGS-system-cjson = -lcJSON
+CCFLAGS-system-cjson = -lcjson
sink:
@echo >&2 Please run from the top-level Makefile.
diff --git a/tools/json2cbor/json2cbor.c b/tools/json2cbor/json2cbor.c
index 96d3ed1..e194299 100644
--- a/tools/json2cbor/json2cbor.c
+++ b/tools/json2cbor/json2cbor.c
@@ -27,7 +27,7 @@
#include "cbor.h"
#include "compilersupport_p.h"
-#include <cJSON.h>
+#include <cjson/cJSON.h>
#include <errno.h>
#include <math.h>
--
2.5.0

View file

@ -0,0 +1,29 @@
From 1be7da8d81bbd52d722ec60250567ea876f6f4b5 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fabrice.fontaine@orange.com>
Date: Sat, 3 Dec 2016 20:15:41 +0100
Subject: [PATCH] Fix static compilation of json2cbor
json2cbor depends on cjson so tools/json2cbor/json2cbor.o must before
-lcjson
Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 905fbdf..7b5fefc 100644
--- a/Makefile
+++ b/Makefile
@@ -115,7 +115,7 @@ bin/cbordump: $(CBORDUMP_SOURCES:.c=.o) lib/libtinycbor.a | bin
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS) -lm
bin/json2cbor: $(JSON2CBOR_SOURCES:.c=.o) lib/libtinycbor.a | bin
- $(CC) -o $@ $(LDFLAGS) $(LDFLAGS_CJSON) $^ $(LDLIBS) -lm
+ $(CC) -o $@ $(LDFLAGS) $^ $(LDFLAGS_CJSON) $(LDLIBS) -lm
tinycbor.pc: tinycbor.pc.in
$(SED) > $@ < $< \
--
2.5.0