From 9db5a5c90f8a05736978ccb3a82eea658315b605 Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Fri, 2 Jun 2017 17:08:07 -0700 Subject: [PATCH 1/5] remove -Werror to handle ARM32 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 9f495af..6f820fc 100644 --- a/configure.ac +++ b/configure.ac @@ -103,7 +103,7 @@ AS_IF([test "x$enable_Bsymbolic" = "xcheck"], AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions]) AC_SUBST(JSON_BSYMBOLIC_LDFLAGS) -AX_APPEND_COMPILE_FLAGS([-Wall -Werror -Wcast-qual -Wno-error=deprecated-declarations]) +AX_APPEND_COMPILE_FLAGS([-Wall -Wcast-qual -Wno-error=deprecated-declarations]) AX_APPEND_COMPILE_FLAGS([-Wextra -Wwrite-string -Wno-unused-parameter]) AX_APPEND_COMPILE_FLAGS([-D_GNU_SOURCE -D_REENTRANT]) From aec0c8045ab7e3983c44ffd5d9413a229d2a555a Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Fri, 21 Jul 2017 12:19:57 -0700 Subject: [PATCH 2/5] for building with Clang and Android --- arraylist.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arraylist.c b/arraylist.c index e859dfd..0be095f 100644 --- a/arraylist.c +++ b/arraylist.c @@ -22,6 +22,7 @@ # include #endif /* HAVE_STRINGS_H */ +#ifndef SIZE_T_MAX #if SIZEOF_SIZE_T == SIZEOF_INT #define SIZE_T_MAX UINT_MAX #elif SIZEOF_SIZE_T == SIZEOF_LONG @@ -31,6 +32,7 @@ #else #error Unable to determine size of size_t #endif +#endif #include "arraylist.h" From 59458dd3289b401cffea7bc471169e840dbeb3b6 Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Fri, 21 Jul 2017 12:56:55 -0700 Subject: [PATCH 3/5] don't use locale functions, android ndk 15... --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 6f820fc..f007be9 100644 --- a/configure.ac +++ b/configure.ac @@ -34,7 +34,7 @@ AC_PROG_CC_C99 AC_CONFIG_HEADER(config.h) AC_CONFIG_HEADER(json_config.h) AC_HEADER_STDC -AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h xlocale.h endian.h) +AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h endian.h) AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])]) # Checks for typedefs, structures, and compiler characteristics. @@ -45,7 +45,7 @@ AC_TYPE_SIZE_T AC_FUNC_VPRINTF AC_FUNC_MEMCMP AC_CHECK_FUNCS([realloc]) -AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale uselocale) +AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp) AC_CHECK_DECLS([INFINITY], [], [], [[#include ]]) AC_CHECK_DECLS([nan], [], [], [[#include ]]) AC_CHECK_DECLS([isnan], [], [], [[#include ]]) From 3fee410a4552843154f369920197868b90f71d41 Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Mon, 14 Aug 2017 11:00:12 -0700 Subject: [PATCH 4/5] pkg_config and _GNU_SOURCE only for Linux --- CMakeLists.txt | 14 +++++++++++++- json-c.pc.cmake.in | 13 +++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 json-c.pc.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ae0950..cba9f0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,8 @@ #Licensed under the MIT license. See LICENSE file in the project root for full license information. cmake_minimum_required(VERSION 2.8.7) -project(json-c) +project(json-c C) +set(VERSION "0.12.99") if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701") @@ -13,6 +14,9 @@ if(MSVC) elseif(UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + if(CMAKE_COMPILER_IS_GNUCC) + add_definitions(-D_GNU_SOURCE) + endif() execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) @@ -69,3 +73,11 @@ install(TARGETS json-c install(DIRECTORY . DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c FILES_MATCHING PATTERN "*.h") install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c FILES_MATCHING PATTERN "*.h") + +if(UNIX) + set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib) + set(INSTALL_INC_DIR ${CMAKE_INSTALL_PREFIX}/include) + configure_file( json-c.pc.cmake.in json-c.pc @ONLY) + set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + install(FILES ${CMAKE_BINARY_DIR}/json-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}") +endif() diff --git a/json-c.pc.cmake.in b/json-c.pc.cmake.in new file mode 100644 index 0000000..94b2bb6 --- /dev/null +++ b/json-c.pc.cmake.in @@ -0,0 +1,13 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@INSTALL_LIB_DIR@ +sharedlibdir=@INSTALL_LIB_DIR@ +includedir=@INSTALL_INC_DIR@ + +Name: json-c +Description: A JSON implementation in C +Version: @VERSION@ + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -ljson-c +Cflags: -I${includedir}/json-c From 4be13fcad5691bd21eeb08211cbf46fb2e96283c Mon Sep 17 00:00:00 2001 From: Joel Winarske Date: Mon, 14 Aug 2017 12:41:13 -0700 Subject: [PATCH 5/5] pkgconfig package rename --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cba9f0c..6b4e97e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION ${CMAKE_INSTA if(UNIX) set(INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib) set(INSTALL_INC_DIR ${CMAKE_INSTALL_PREFIX}/include) - configure_file( json-c.pc.cmake.in json-c.pc @ONLY) + configure_file( json-c.pc.cmake.in libjson-c.pc @ONLY) set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") - install(FILES ${CMAKE_BINARY_DIR}/json-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}") + install(FILES ${CMAKE_BINARY_DIR}/libjson-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}") endif()