Skip to content

Commit c6e3d71

Browse files
committed
Merge branch 'release/v0.6.0'
2 parents 47a85e5 + 3b6831e commit c6e3d71

38 files changed

+1346
-683
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ xcuserdata
1616
# svn & cvs
1717
.svn
1818
CVS
19-
19+
reports/*
2020
doc/html
2121
CMakeLists.txt.user*
2222
src/examples/gen/*

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ language: cpp
22

33
before_install:
44
- sudo apt-get update -qq
5-
- sudo apt-get install -qq libcurl4-openssl-dev libjsoncpp-dev libargtable2-dev libboost-test-dev libgnutls-dev libgcrypt11-dev valgrind wget
5+
- sudo apt-get install -qq libcurl4-openssl-dev libjsoncpp-dev libargtable2-dev libgnutls-dev libgcrypt11-dev valgrind wget
66
- wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.38.tar.gz
77
- tar -xvf libmicrohttpd-0.9.38.tar.gz
88
- cd libmicrohttpd-0.9.38

AUTHORS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ Veselin Rachev <[email protected]>
2828
Marek Kotewicz <[email protected]>
2929
+ msvc support
3030

31+
Alexandre Poirot <[email protected]>
32+
+ added client and server connectors that use Unix Domain Sockets
33+
+ adapted build file to generate pkg-config file for this lib.
34+
3135
Bugfixes (chronological order)
3236
==============================
3337

CHANGELOG.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
1+
Changes in v0.6.0
2+
-----------------
3+
- NEW: pkg-config files for all shared libraries
4+
- NEW: UNIX Socket client + server connector
5+
- NEW: multiarch support
6+
- Change: unit testing framework to catch
7+
- Change: allow disabling shared library build
8+
- Change: split out shared/static library for stubgenerator
9+
110
Changes in v0.5.0
211
-----------------
3-
- added `--version` option to jsonrpcstub.
4-
- added msvc support.
5-
- added data field support for JsonRpcException.
6-
- added contributions guide: https://github.com/cinemast/libjson-rpc-cpp#contributions
12+
- Added `--version` option to jsonrpcstub.
13+
- Added msvc support.
14+
- Added data field support for JsonRpcException.
15+
- Added contributions guide: https://github.com/cinemast/libjson-rpc-cpp#contributions
716
- HttpClient uses Http Keep-Alive, which improves performance drastically.
8-
- Added `LIB_SUFFIX` to CMake to support multilib.
17+
- Added multiarch support.
918
- Fixed building tests with examples disabled.
1019
- Made static library build optional (via `BUILD_STATIC_LIBS`).
1120
- Fixed unnecessary rebuilds of stubs on each `make` call.

CMakeLists.txt

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,23 @@ if (${CMAKE_MAJOR_VERSION} GREATER 2)
1111
endif()
1212

1313
set(MAJOR_VERSION 0)
14-
set(MINOR_VERSION 5)
14+
set(MINOR_VERSION 6)
1515
set(PATCH_VERSION 0)
1616
set(SO_VERSION 0)
1717

18-
set(BUILD_STATIC_LIBS NO CACHE BOOL "Build static libraries in addition to shared")
18+
set(BUILD_SHARED_LIBS YES CACHE BOOL "Build shared libraries")
19+
set(BUILD_STATIC_LIBS NO CACHE BOOL "Build static libraries")
1920
set(LIB_SUFFIX "" CACHE STRING "Suffix for library directory (32/64)")
2021

22+
if (NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS)
23+
message(FATAL_ERROR "Both BUILD_SHARED_LIBS and BUILD_STATIC_LIBS are disabled")
24+
endif()
25+
2126
# defaults for modules that can be enabled/disabled
27+
if(UNIX)
28+
set(UNIX_DOMAIN_SOCKET_SERVER YES CACHE BOOL "Include Unix Domain Socket server")
29+
set(UNIX_DOMAIN_SOCKET_CLIENT YES CACHE BOOL "Include Unix Domain Socket client")
30+
endif(UNIX)
2231
set(HTTP_SERVER YES CACHE BOOL "Include HTTP server using libmicrohttpd")
2332
set(HTTP_CLIENT YES CACHE BOOL "Include HTTP client support using curl")
2433
set(COMPILE_TESTS YES CACHE BOOL "Compile test framework")
@@ -28,6 +37,10 @@ set(COMPILE_EXAMPLES YES CACHE BOOL "Compile example programs")
2837
# print actual settings
2938
message(STATUS "HTTP_SERVER: ${HTTP_SERVER}")
3039
message(STATUS "HTTP_CLIENT: ${HTTP_CLIENT}")
40+
if(UNIX)
41+
message(STATUS "UNIXDOMAINSOCKET_SERVER: ${UNIX_DOMAIN_SOCKET_SERVER}")
42+
message(STATUS "UNIXDOMAINSOCKET_CLIENT: ${UNIX_DOMAIN_SOCKET_CLIENT}")
43+
endif(UNIX)
3144
message(STATUS "COMPILE_TESTS: ${COMPILE_TESTS}")
3245
message(STATUS "COMPILE_STUBGEN: ${COMPILE_STUBGEN}")
3346
message(STATUS "COMPILE_EXAMPLES: ${COMPILE_EXAMPLES}")
@@ -61,13 +74,13 @@ if (COMPILE_STUBGEN)
6174
endif ()
6275

6376
# setup examples
64-
if (HTTP_SERVER AND HTTP_CLIENT)
77+
if (COMPILE_EXAMPLES)
6578
add_subdirectory(src/examples)
6679
endif()
6780

6881
# setup test suite
69-
if (Boost_FOUND AND COMPILE_TESTS)
70-
enable_testing()
82+
if (COMPILE_TESTS)
83+
enable_testing(true)
7184
add_subdirectory(src/test)
7285
endif()
7386

@@ -92,22 +105,4 @@ add_custom_target(
92105
)
93106

94107
# packaging stuff
95-
include(InstallRequiredSystemLibraries)
96-
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "libjson-rpc-cpp")
97-
set(CPACK_PACKAGE_VENDOR "Peter Spiess-Knafl <[email protected]>")
98-
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
99-
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
100-
set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
101-
set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
102-
set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
103-
104-
if (WIN32 AND NOT UNIX)
105-
set(CPACK_GENERATOR "NSIS")
106-
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} libjson-rpc-cpp")
107-
set(CPACK_NSIS_HELP_LINK "http://github.com/cinemast/libjson-rpc-cpp")
108-
set(CPACK_NSIS_URL_INFO_ABOUT "http://github.com/cinemast/libjson-rpc-cpp")
109-
set(CPACK_NSIS_CONTACT "[email protected]")
110-
set(CPACK_NSIS_MODIFY_PATH ON)
111-
endif(WIN32 AND NOT UNIX)
112-
include(CPack)
113-
108+
include(CMakePackaging)

README.md

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,13 @@ sudo make uninstall
104104

105105
Default configuration should be fine for most systems, but here are available compilation flags:
106106

107-
- `-DCOMPILE_TESTS=NO` disables unit test suite even if boost libraries are found.
107+
- `-DCOMPILE_TESTS=NO` disables unit test suite.
108108
- `-DCOMPILE_STUBGEN=NO` disables building the stubgenerator.
109109
- `-DCOMPILE_EXAMPLES=NO` disables examples.
110-
- `-DHTTP_SERVER=NO` disable the embedded mongoose webserver.
110+
- `-DHTTP_SERVER=NO` disable the libmicrohttpd webserver.
111111
- `-DHTTP_CLIENT=NO` disable the curl client.
112+
- `-DUNIX_DOMAIN_SOCKET_SERVER=NO` disable the unix domain socket server connector.
113+
- `-DUNIX_DOMAIN_SOCKET_CLIENT=NO` disable the unix domain socket client connector.
112114

113115
Using the framework
114116
===================
@@ -310,21 +312,10 @@ This generates the Latex and HTML documentation into `build/doc`
310312

311313
Run the tests
312314
-------------
313-
For running the tests, the boost-test framework is required:
315+
Simply run:
314316

315-
**Debian based systems**
316317
```sh
317-
cd build
318-
sudo apt-get install libboost-test-dev
319-
cmake .. && make test
320-
```
321-
322-
**Mac OS X**
323-
You need [Brew](http://brew.sh) installed and type the following commands
324-
```sh
325-
cd build
326-
brew install boost
327-
cmake .. && make test
318+
make test
328319
```
329320

330-
Testcoverage can be retrieved by invoking the [dev/testcoverage.sh script](https://github.com/cinemast/libjson-rpc-cpp/blob/master/dev/testcoverage.sh).
321+
Testcoverage can be retrieved by invoking the [dev/testcoverage.sh script](https://github.com/cinemast/libjson-rpc-cpp/blob/master/dev/testcoverage.sh) inside the `dev` folder.

cmake/CMakeDependencies.cmake

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,14 @@ endif()
4343
# find doxygen
4444
find_package(Doxygen)
4545

46-
# boost stuff
4746

48-
# left for backwards compatbility
49-
if (WIN32)
50-
set(BOOST_ROOT "C:/boost_1_57_0")
51-
endif()
52-
53-
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
54-
55-
set(Boost_USE_MULTITHREADED ON)
56-
# TODO hanlde other msvc versions or it will fail find them
57-
set(Boost_COMPILER -vc120)
58-
# use static boost libraries *.lib
59-
set(Boost_USE_STATIC_LIBS ON)
47+
find_package(Catch)
6048

49+
if(NOT CATCH_FOUND)
50+
message("Could not find catch, downloading it now")
51+
# Includes Catch in the project:
52+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/catch)
53+
include_directories(${CATCH_INCLUDE_DIR} ${COMMON_INCLUDES})
54+
else()
55+
INCLUDE_DIRECTORIES(${CATCH_INCLUDE_DIRS})
6156
endif()
62-
63-
# TODO: add? appriopriate commands if it's found
64-
find_package(Boost COMPONENTS unit_test_framework)
65-
66-

cmake/CMakePackaging.cmake

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
include(InstallRequiredSystemLibraries)
2+
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "libjson-rpc-cpp")
3+
set(CPACK_PACKAGE_VENDOR "Peter Spiess-Knafl <[email protected]>")
4+
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
5+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
6+
set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
7+
set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
8+
set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
9+
10+
if (WIN32 AND NOT UNIX)
11+
set(CPACK_GENERATOR "NSIS")
12+
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} libjson-rpc-cpp")
13+
set(CPACK_NSIS_HELP_LINK "http://github.com/cinemast/libjson-rpc-cpp")
14+
set(CPACK_NSIS_URL_INFO_ABOUT "http://github.com/cinemast/libjson-rpc-cpp")
15+
set(CPACK_NSIS_CONTACT "Peter Spiess-Knafl <[email protected]>")
16+
set(CPACK_NSIS_MODIFY_PATH ON)
17+
endif(WIN32 AND NOT UNIX)
18+
include(CPack)

cmake/FindCatch.cmake

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
find_path(
2+
CATCH_INCLUDE_DIR
3+
NAMES catch.hpp
4+
DOC "catch include dir"
5+
)
6+
7+
8+
set(CATCH_INCLUDE_DIRS ${CATCH_INCLUDE_DIR})
9+
10+
11+
include(FindPackageHandleStandardArgs)
12+
find_package_handle_standard_args(catch DEFAULT_MSG
13+
CATCH_INCLUDE_DIR)
14+
mark_as_advanced (CATCH_INCLUDE_DIR)
15+

cmake/libjsonrpccpp-client.pc.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Name: libjsonrpccpp-client
2+
Description: A C++ client implementation of json-rpc.
3+
Version: ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}
4+
Libs: -L${FULL_PATH_LIBDIR} -ljsoncpp -ljsonrpccpp-common -ljsonrpccpp-client -lcurl
5+
Cflags: -I${FULL_PATH_INCLUDEDIR}

0 commit comments

Comments
 (0)