Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encode utf8 string into utf16 #67

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
b61bf79
encode: use an on-stack buffer for 2-char escape sequences
bpowers Oct 4, 2011
b8f76ff
encode: don't check specific cases when the current char is large
bpowers Oct 4, 2011
52c559d
augment in-tree performance benchmark to assess serialization perform…
lloyd Nov 28, 2011
84fe4e8
bump yajl version to 2.1.0 on the 2.1.0 branch
lloyd Nov 28, 2011
d2d8489
Merge branch 'encode-speedup' of https://github.com/bpowers/yajl into…
lloyd Nov 28, 2011
da8db25
update changelog with @bpowers contributions
lloyd Nov 28, 2011
66cb08c
Merge branch 'master' into 2.1.0
lloyd Dec 20, 2011
c91d6b7
To be conformed with 6. Source Text in Standard ECMA-262 5.1 Edition,…
likema Aug 15, 2011
48fda75
Add -fPIC to static lib for fixing linking error to shared object in …
likema Nov 7, 2011
c183724
Fix incorrect escaped length of single special char like '\r' in yajl…
likema Apr 1, 2012
75c58c7
Fix INPUT and EXAMPLE_PATH parameter in src/YAJL.dxy when building wi…
likema Nov 17, 2011
8303370
Add debian build files from ubuntu source and update it for yajl2-2.0.5
likema Aug 15, 2011
2ca0e48
RPM spec inital version.
likema Nov 18, 2011
e240d5d
Add AIX cmake exe link flags to get rid of the temp search path.
likema Nov 20, 2011
dc9ec62
Correct static library archive command for AIX ppc64.
likema Nov 20, 2011
de76cdf
Fix incorrect path of run_tests.sh
likema Jan 6, 2013
89e4eb3
Refine source directory structures and cmake files.
likema Jan 6, 2013
9ff90c8
Refine debian files.
likema Jan 26, 2013
2ef297c
Refine RPM spec.
likema Jan 27, 2013
946c135
Write README.md instead of the old ones.
likema Jan 27, 2013
8511f9e
Fix RPM spec since README was updated.
likema Jan 27, 2013
3c7b2ae
Add pkgconfig into the corresponding deb and rpm.
likema Jan 31, 2013
7aa6e3f
Fix build errors in HP-UX 11.31
likema Feb 1, 2013
4c6fb39
Fix tests incorrect compilation in Windows with code page 936.
likema Feb 11, 2013
5a5f339
Add cmake option DISABLE_TREE to disable building yajl_tree.c
likema Feb 13, 2013
1bd7ddf
Install yajl shared library into bin in Windows.
likema Feb 18, 2013
0004d75
Fix compilation warnings and errors by GCC 3.4.6 and GCC 4.3.6 in Sol…
likema Feb 27, 2013
4779e22
Fix compilation warnings and errors by MinGW i686 and x86_64 in Ubunt…
likema Mar 8, 2013
b203eab
Support building multiarch deb.
likema Mar 10, 2013
ea02288
Remove obsolete CMAKE_COMPILER_IS_GNUCC.
likema Mar 10, 2014
3d4a8af
Fix compilation error by GCC 3.2.3 in TurboLinux 7.1
likema Mar 10, 2014
a956f92
Merge remote-tracking branch 'upstream/master'
likema Mar 10, 2014
b0a81a5
Remove unused options in debian rules.
likema Jun 30, 2014
4cf1f21
Make libyajl.so.* executable for rpmbuild in Ubuntu 12.04.
likema Jul 1, 2014
33da3d6
Fix building deb in debian 6.0
likema Jul 1, 2014
786f8ce
Merge remote-tracking branch 'upstream/2.1.0'
likema Sep 16, 2014
e40b02a
Bump debian version to 2.1.0
likema Sep 16, 2014
baffb48
Support debian multi-arch
likema Apr 21, 2015
b0848e0
Bump debian version to 2.1.0-2
likema Apr 21, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions BUILDING

This file was deleted.

27 changes: 0 additions & 27 deletions BUILDING.win32

This file was deleted.

139 changes: 88 additions & 51 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,68 +14,105 @@

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

PROJECT(YetAnotherJSONParser C)
PROJECT(YAJL C)

SET (YAJL_MAJOR 2)
SET (YAJL_MINOR 0)
SET (YAJL_MICRO 5)
OPTION (DISABLE_TESTS "Disable building tests and examples")
OPTION (DISABLE_TOOLS "Disable building tools")
OPTION (DISABLE_DOCS "Disable building docs")
OPTION (DISABLE_SO_VERSION "Disable so version")
OPTION (DISABLE_SHARED "Disable building shared")
OPTION (DISABLE_STATIC "Disable building static")
OPTION (DISABLE_TREE "Disable building yajl tree code")

IF (DISABLE_SHARED AND DISABLE_STATIC)
MESSAGE (FATAL_ERROR "Setting DISABLE_SHARED and DISABLE_STATIC is invalid.")
ENDIF (DISABLE_SHARED AND DISABLE_STATIC)

INCLUDE (CheckFunctionExists)
INCLUDE (CheckIncludeFiles)

CHECK_FUNCTION_EXISTS (isnan HAVE_ISNAN)
CHECK_FUNCTION_EXISTS (isinf HAVE_ISINF)
CHECK_FUNCTION_EXISTS (finite HAVE_FINITE)

SET (YAJL_DIST_NAME "yajl-${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO}")
IF (NOT HAVE_ISNAN)
CHECK_FUNCTION_EXISTS (_isnan HAVE__ISNAN)
ENDIF (NOT HAVE_ISNAN)

IF (NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Release")
ENDIF (NOT CMAKE_BUILD_TYPE)
IF (NOT HAVE_FINITE)
CHECK_FUNCTION_EXISTS (_finite HAVE__FINITE)
ENDIF (NOT HAVE_FINITE)

CHECK_INCLUDE_FILES (ieeefp.h HAVE_IEEEFP_H)
CHECK_INCLUDE_FILES (float.h HAVE_FLOAT_H)
CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)

SET (YAJL_MAJOR 2)
SET (YAJL_MINOR 1)
SET (YAJL_MICRO 0)

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")

IF (WIN32)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
ADD_DEFINITIONS(-DWIN32)
SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF")
SET(CMAKE_EXE_LINKER_FLAGS "${linkFlags}"
CACHE STRING "YAJL linker flags" FORCE)
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG ""
CACHE STRING "YAJL debug linker flags" FORCE)
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
CACHE STRING "YAJL release linker flags" FORCE)
SET(CMAKE_SHARED_LINKER_FLAGS "${linkFlags}"
CACHE STRING "YAJL shared linker flags" FORCE)
SET(CMAKE_MODULE_LINKER_FLAGS "${linkFlags}"
CACHE STRING "YAJL module linker flags" FORCE)

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711")
SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7")
SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2")
ELSE (WIN32)
IF (MSVC)
ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS=1)
ELSEIF (CMAKE_COMPILER_IS_GNUCC)
INCLUDE(CheckCCompilerFlag)

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
IF(CMAKE_COMPILER_IS_GNUCC)
INCLUDE(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
IF(HAVE_GCC_VISIBILITY)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
ENDIF(HAVE_GCC_VISIBILITY)
ENDIF(CMAKE_COMPILER_IS_GNUCC)
SET(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} -std=c99 -pedantic -Wpointer-arith -Wno-format-y2k -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -Wextra -Wundef -Wwrite-strings -Wold-style-definition -Wredundant-decls -Wno-unused-parameter -Wno-sign-compare -Wmissing-prototypes")

SET(CMAKE_C_FLAGS_DEBUG "-DDEBUG -g")
SET(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -Wuninitialized")
ENDIF (WIN32)
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
IF(HAVE_GCC_VISIBILITY)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
ENDIF(HAVE_GCC_VISIBILITY)

CHECK_C_COMPILER_FLAG(-Wextra HAVE_GCC_WEXTRA)
IF(HAVE_GCC_WEXTRA)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
ENDIF(HAVE_GCC_WEXTRA)

CHECK_C_COMPILER_FLAG(-Wold-style-definition HAVE_GCC_WOLD_STYLE_DEFINITION)
IF(HAVE_GCC_WOLD_STYLE_DEFINITION)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
ENDIF(HAVE_GCC_WOLD_STYLE_DEFINITION)

SET(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} -std=c99 -pedantic -Wpointer-arith -Wno-format-y2k -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -Wundef -Wwrite-strings -Wredundant-decls -Wno-unused-parameter -Wno-sign-compare -Wmissing-prototypes")

IF ("${CMAKE_SYSTEM}" MATCHES "AIX")
CHECK_C_COMPILER_FLAG (-Wl,-bnoipath HAVE_LD_BNOIPATH)
IF (HAVE_LD_BNOIPATH)
SET (YAJL_EXE_LINKER_FLAGS "${YAJL_EXE_LINKER_FLAGS} -Wl,-bnoipath")
ENDIF (HAVE_LD_BNOIPATH)
ENDIF ("${CMAKE_SYSTEM}" MATCHES "AIX")
ENDIF (MSVC)

ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(reformatter)
ADD_SUBDIRECTORY(verify)
ADD_SUBDIRECTORY(example)
ADD_SUBDIRECTORY(perf)

INCLUDE(YAJLDoc.cmake)
IF (NOT DISABLE_TOOLS)
ADD_SUBDIRECTORY(reformatter)
ADD_SUBDIRECTORY(verify)
ENDIF (NOT DISABLE_TOOLS)

IF (NOT DISABLE_TESTS)
ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(perf)
IF (NOT DISABLE_TREE)
ADD_SUBDIRECTORY(example)
ENDIF (NOT DISABLE_TREE)

IF (NOT WIN32)
ADD_CUSTOM_TARGET(test
${CMAKE_CURRENT_BINARY_DIR}/test/parsing/run_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/test/parsing/yajl_test
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test/parsing)

ADD_CUSTOM_TARGET(test-api
${CMAKE_CURRENT_SOURCE_DIR}/test/api/run_tests.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/api)
ENDIF (NOT WIN32)
ENDIF (NOT DISABLE_TESTS)

# a test target
ADD_CUSTOM_TARGET(test
./run_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/test/parsing/yajl_test
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test/parsing)
IF (NOT DISABLE_DOCS)
INCLUDE(YAJLDoc.cmake)
ENDIF (NOT DISABLE_DOCS)

ADD_CUSTOM_TARGET(test-api ${CMAKE_CURRENT_SOURCE_DIR}/test/api/run_tests.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/api)
# vim: ts=2 sw=2 et:
Loading