0
0
Fork 0
haikuports/dev-libs/rapidjson/rapidjson-1.1.0.recipe

89 lines
2.4 KiB
Bash

SUMMARY="A fast JSON parser/generator for C++ with both SAX/DOM style API"
DESCRIPTION="RapidJSON is a JSON parser and generator for C++. It was \
inspired by RapidXml.
RapidJSON is small but complete. It supports both SAX and DOM style API. The \
SAX parser is only a half thousand lines of code.
RapidJSON is fast. Its performance can be comparable to strlen(). It also \
optionally supports SSE2/SSE4.2 for acceleration.
RapidJSON is self-contained and header-only. It does not depend on external \
libraries such as BOOST. It even does not depend on STL.
RapidJSON is memory-friendly. Each JSON value occupies exactly 16 bytes for \
most 32/64-bit machines (excluding text string). By default it uses a fast \
memory allocator, and the parser allocates memory compactly during parsing.
RapidJSON is Unicode-friendly. It supports UTF-8, UTF-16, UTF-32 (LE & BE), \
and their detection, validation and transcoding internally. For example, you \
can read a UTF-8 file and let RapidJSON transcode the JSON strings into \
UTF-16 in the DOM. It also supports surrogates and \"\u0000\" \
(null character)."
HOMEPAGE="https://github.com/Tencent/rapidjson"
COPYRIGHT="2015 THL A29 Limited, a Tencent company, and Milo Yip"
LICENSE="MIT"
REVISION="2"
SOURCE_URI="https://github.com/Tencent/rapidjson/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e"
SOURCE_FILENAME="rapidjson-$portVersion.tar.gz"
PATCHES="rapidjson-$portVersion.patchset"
ARCHITECTURES="all ?x86_gcc2 ?x86"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
rapidjson$secondaryArchSuffix = $portVersion
devel:librapidjson$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
mkdir -p haiku_build
cd haiku_build
cmake .. \
-DBUILD_SHARED_LIBS=ON \
-DRAPIDJSON_BUILD_DOC=ON \
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_TESTS=ON \
-DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF \
-DINCLUDE_INSTALL_DIR=$includeDir \
-DLIB_INSTALL_DIR=$libDir \
-DDOC_INSTALL_DIR=$docDir \
$cmakeDirArgs
make $jobArgs
}
INSTALL()
{
cd haiku_build
make install
fixPkgconfig
}
TEST()
{
cd haiku_build
make test
}