summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools
diff options
context:
space:
mode:
authorMing Liu <peter.x.liu@external.atlascopco.com>2017-03-07 12:11:41 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2017-03-11 17:56:44 +0100
commit29cc9583e3ccb1056b5cf3411c23bd5527c23a25 (patch)
tree782c04dd1f09eb346427065adbcb8a4b7eca4061 /meta-oe/recipes-devtools
parentcc9fd968ca301cf4c6cbd75edadc042ffabcea98 (diff)
downloadmeta-openembedded-29cc9583e3ccb1056b5cf3411c23bd5527c23a25.tar.gz
json-spirit: add new recipe
Json Spirit is a C++ JSON parser/generator implemented with Boost Spirit. It's being required by another newly added recipe librcf. The source json_spirit_v4.08.zip is derived from: https://www.codeproject.com/KB/recipes/JSON_Spirit/json_spirit_v4.08.zip The reason for getting it from a zip file instead of fetching it from the above site is that it needs logging in firstly before you can download anything. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-devtools')
-rw-r--r--meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Adjust-the-cmake-files.patch145
-rw-r--r--meta-oe/recipes-devtools/json-spirit/json-spirit/json_spirit_v4.08.zipbin0 -> 56299 bytes
-rw-r--r--meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb24
3 files changed, 169 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Adjust-the-cmake-files.patch b/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Adjust-the-cmake-files.patch
new file mode 100644
index 000000000..f7030c553
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Adjust-the-cmake-files.patch
@@ -0,0 +1,145 @@
1From d8986cb065e770017ee1622fb7324387ead60203 Mon Sep 17 00:00:00 2001
2From: Ming Liu <peter.x.liu@external.atlascopco.com>
3Date: Tue, 7 Mar 2017 11:46:52 +0100
4Subject: [PATCH] Adjust the cmake files
5
6- Remove json_test which can not build with boost 1.61.0.
7- Build shared library as well with the original static library.
8- Add FindLibJsonSpirit.cmake to be able to be found by the dependers.
9
10Upstream-Status: Inappropriate [configuration]
11
12Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
13---
14 CMakeLists.txt | 8 +++---
15 FindLibJsonSpirit.cmake | 64 ++++++++++++++++++++++++++++++++++++++++++++++
16 json_spirit/CMakeLists.txt | 16 +++++++++++-
17 3 files changed, 83 insertions(+), 5 deletions(-)
18 create mode 100644 FindLibJsonSpirit.cmake
19
20diff --git a/CMakeLists.txt b/CMakeLists.txt
21index 4637a6c..b292f0f 100644
22--- a/CMakeLists.txt
23+++ b/CMakeLists.txt
24@@ -1,7 +1,7 @@
25 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
26
27 PROJECT(json_spirit)
28-SUBDIRS(json_spirit json_demo json_headers_only_demo json_map_demo json_test)
29+SUBDIRS(json_spirit json_demo json_headers_only_demo json_map_demo)
30 INCLUDE_DIRECTORIES(json_spirit)
31
32 INSTALL(
33@@ -16,11 +16,11 @@ INSTALL(
34 ${CMAKE_SOURCE_DIR}/json_spirit/json_spirit_writer.h
35 ${CMAKE_SOURCE_DIR}/json_spirit/json_spirit_writer_template.h
36 ${CMAKE_SOURCE_DIR}/json_spirit/json_spirit_writer_options.h
37- DESTINATION include)
38+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
39
40 INSTALL(
41 FILES
42- ${CMAKE_BINARY_DIR}/json_spirit/libjson_spirit.a
43- DESTINATION lib)
44+ ${CMAKE_SOURCE_DIR}/FindLibJsonSpirit.cmake
45+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules)
46
47 INCLUDE(CPack)
48diff --git a/FindLibJsonSpirit.cmake b/FindLibJsonSpirit.cmake
49new file mode 100644
50index 0000000..7ee7687
51--- /dev/null
52+++ b/FindLibJsonSpirit.cmake
53@@ -0,0 +1,64 @@
54+# FindLibJsonSpirit - Find libjson_spirit headers and libraries.
55+#
56+# Sample:
57+#
58+# SET( LibJsonSpirit_USE_STATIC_LIBS OFF )
59+# FIND_PACKAGE( LibJsonSpirit REQUIRED )
60+# IF( LibJsonSpirit_FOUND )
61+# INCLUDE_DIRECTORIES( ${LibJsonSpirit_INCLUDE_DIRS} )
62+# TARGET_LINK_LIBRARIES( ... ${LibJsonSpirit_LIBRARIES} )
63+# ENDIF()
64+#
65+# Variables used by this module need to be set before calling find_package
66+#
67+# LibJsonSpirit_USE_STATIC_LIBS Can be set to ON to force the use of the static
68+# libjson_spirit libraries. Defaults to OFF.
69+#
70+# Variables provided by this module:
71+#
72+# LibJsonSpirit_FOUND Include dir, libjson_spirit libraries.
73+#
74+# LibJsonSpirit_LIBRARIES Link to these to use all the libraries you specified.
75+#
76+# LibJsonSpirit_INCLUDE_DIRS Include directories.
77+#
78+# For each component you specify in find_package(), the following (UPPER-CASE)
79+# variables are set to pick and choose components instead of just using
80+# LibJsonSpirit_LIBRARIES:
81+#
82+# LIBJSONSPIRIT_FOUND TRUE if libjson_spirit was found
83+# LIBJSONSPIRIT_LIBRARY libjson_spirit library
84+#
85+
86+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
87+IF(LibJsonSpirit_USE_STATIC_LIBS)
88+ SET( _ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
89+ SET(CMAKE_FIND_LIBRARY_SUFFIXES .a )
90+ENDIF()
91+
92+# Look for the header files
93+UNSET(LibJsonSpirit_INCLUDE_DIRS CACHE)
94+FIND_PATH(LibJsonSpirit_INCLUDE_DIRS NAMES json_spirit.h)
95+
96+# Look for the core library
97+UNSET(LIBJSONSPIRIT_LIBRARY CACHE)
98+FIND_LIBRARY(LIBJSONSPIRIT_LIBRARY NAMES json_spirit)
99+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibJsonSpirit DEFAULT_MSG LIBJSONSPIRIT_LIBRARY LibJsonSpirit_INCLUDE_DIRS)
100+MARK_AS_ADVANCED(
101+ LIBJSONSPIRIT_FOUND
102+ LIBJSONSPIRIT_LIBRARY
103+)
104+
105+# Prepare return values and collectiong more components
106+SET(LibJsonSpirit_FOUND ${LIBJSONSPIRIT_FOUND})
107+SET(LibJsonSpirit_LIBRARIES ${LIBJSONSPIRIT_LIBRARY})
108+MARK_AS_ADVANCED(
109+ LibJsonSpirit_FOUND
110+ LibJsonSpirit_LIBRARIES
111+ LibJsonSpirit_INCLUDE_DIRS
112+)
113+
114+# Restore CMAKE_FIND_LIBRARY_SUFFIXES
115+IF(LibJsonSpirit_USE_STATIC_LIBS)
116+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES} )
117+ENDIF()
118diff --git a/json_spirit/CMakeLists.txt b/json_spirit/CMakeLists.txt
119index fb52818..c1613b2 100644
120--- a/json_spirit/CMakeLists.txt
121+++ b/json_spirit/CMakeLists.txt
122@@ -13,5 +13,19 @@ json_spirit_writer_template.h )
123 FIND_PACKAGE(Boost 1.34 REQUIRED)
124 INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
125
126-ADD_LIBRARY(json_spirit STATIC ${JSON_SPIRIT_SRCS})
127+SET(JSONSPIRIT_SOVERSION_MAJOR "4")
128+SET(JSONSPIRIT_SOVERSION_MINOR "0")
129+SET(JSONSPIRIT_SOVERSION_PATCH "8")
130
131+ADD_LIBRARY(json_spirit SHARED ${JSON_SPIRIT_SRCS})
132+SET_TARGET_PROPERTIES(json_spirit PROPERTIES PROJECT_LABEL "Json Spirit Library")
133+SET_TARGET_PROPERTIES(json_spirit PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
134+SET_TARGET_PROPERTIES(json_spirit PROPERTIES VERSION ${JSONSPIRIT_SOVERSION_MAJOR}.${JSONSPIRIT_SOVERSION_MINOR}.${JSONSPIRIT_SOVERSION_PATCH})
135+SET_TARGET_PROPERTIES(json_spirit PROPERTIES SOVERSION ${JSONSPIRIT_SOVERSION_MAJOR})
136+INSTALL(TARGETS json_spirit DESTINATION ${CMAKE_INSTALL_LIBDIR})
137+
138+ADD_LIBRARY(json_spirit_static STATIC ${JSON_SPIRIT_SRCS})
139+SET_TARGET_PROPERTIES(json_spirit_static PROPERTIES PROJECT_LABEL "Json Spirit Static Library")
140+SET_TARGET_PROPERTIES(json_spirit_static PROPERTIES OUTPUT_NAME "json_spirit")
141+SET_TARGET_PROPERTIES(json_spirit_static PROPERTIES SOVERSION ${JSONSPIRIT_SOVERSION_MAJOR})
142+INSTALL(TARGETS json_spirit_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
143--
1441.9.1
145
diff --git a/meta-oe/recipes-devtools/json-spirit/json-spirit/json_spirit_v4.08.zip b/meta-oe/recipes-devtools/json-spirit/json-spirit/json_spirit_v4.08.zip
new file mode 100644
index 000000000..27d46b15a
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-spirit/json-spirit/json_spirit_v4.08.zip
Binary files differ
diff --git a/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb b/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
new file mode 100644
index 000000000..dff6cc161
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
@@ -0,0 +1,24 @@
1SUMMARY = "A C++ JSON Parser/Generator Implemented with Boost Spirit."
2DESCRIPTION = "JSON Spirit, a C++ library that reads and writes JSON files or streams. \
3It is written using the Boost Spirit parser generator. If you are \
4already using Boost, you can use JSON Spirit without any additional \
5dependencies."
6HOMEPAGE = "https://www.codeproject.com/kb/recipes/json_spirit.aspx"
7SECTION = "libs"
8PRIORITY = "optional"
9LICENSE = "MIT"
10LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=278ef6183dec4aae1524fccc4b0113c9"
11
12SRC_URI = "file://json_spirit_v${PV}.zip \
13 file://0001-Adjust-the-cmake-files.patch \
14"
15
16S = "${WORKDIR}/json_spirit_v${PV}"
17
18DEPENDS = "boost"
19
20inherit cmake
21
22FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibJsonSpirit.cmake"
23
24BBCLASSEXTEND += "nativesdk"