Skip to content

Commit 0d31835

Browse files
committed
Merge branch 'master' of git://github.com/cpp-netlib/cpp-netlib
2 parents f947ded + e61966e commit 0d31835

File tree

120 files changed

+6051
-10663
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+6051
-10663
lines changed

.clang-format

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# BasedOnStyle: Google
2+
AccessModifierOffset: -1
3+
ConstructorInitializerIndentWidth: 4
4+
AlignEscapedNewlinesLeft: true
5+
AlignTrailingComments: true
6+
AllowAllParametersOfDeclarationOnNextLine: true
7+
AllowShortIfStatementsOnASingleLine: true
8+
AllowShortLoopsOnASingleLine: true
9+
AlwaysBreakTemplateDeclarations: true
10+
AlwaysBreakBeforeMultilineStrings: true
11+
BreakBeforeBinaryOperators: false
12+
BreakConstructorInitializersBeforeComma: false
13+
BinPackParameters: true
14+
ColumnLimit: 80
15+
ConstructorInitializerAllOnOneLineOrOnePerLine: true
16+
DerivePointerBinding: true
17+
ExperimentalAutoDetectBinPacking: false
18+
IndentCaseLabels: true
19+
MaxEmptyLinesToKeep: 1
20+
NamespaceIndentation: All
21+
ObjCSpaceBeforeProtocolList: false
22+
PenaltyBreakComment: 60
23+
PenaltyBreakString: 1000
24+
PenaltyBreakFirstLessLess: 120
25+
PenaltyExcessCharacter: 1000000
26+
PenaltyReturnTypeOnItsOwnLine: 200
27+
PointerBindsToType: true
28+
SpacesBeforeTrailingComments: 2
29+
Cpp11BracedListStyle: true
30+
Standard: Auto
31+
IndentWidth: 2
32+
TabWidth: 8
33+
UseTab: false
34+
BreakBeforeBraces: Attach
35+
IndentFunctionDeclarationAfterType: true
36+
SpacesInParentheses: false
37+
SpaceInEmptyParentheses: false
38+
SpacesInCStyleCastParentheses: false
39+
SpaceAfterControlStatementKeyword: true

.gitignore

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
11
*.swp
22
*.pyc
3-
CMakeCache.txt
4-
CMakeFiles
5-
Makefile
6-
Testing
73
*.gch
84
libs/mime/test/mime-roundtrip
9-
*.a
105
bin/
116
tests/
127
_build
13-
CPP-NETLIB.*
14-
CMakeScripts/
15-
*.cmake
168
*~

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
[submodule "deps/gmock"]
88
path = deps/gmock
99
url = git://github.com/cpp-netlib/gmock
10+
[submodule "deps/igloo"]
11+
path = deps/igloo
12+
url = git://github.com/joakimkarlsson/igloo.git

.travis.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
language:
2+
- cpp
3+
4+
compiler:
5+
- clang
6+
- gcc
7+
8+
env:
9+
- BUILD_SHARED_LIBS="ON" CMAKE_BUILD_TYPE="Release"
10+
- BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Release"
11+
- BUILD_SHARED_LIBS="ON" CMAKE_BUILD_TYPE="Debug"
12+
- BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug"
13+
14+
before_install:
15+
- sudo add-apt-repository ppa:apokluda/boost1.53 --yes
16+
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test --yes # libstdc++-4.8
17+
- if [ "${CXX}" == "clang++" ]; then sudo add-apt-repository --yes ppa:h-rayflood/llvm; fi # clang++-3.2
18+
- sudo apt-get update
19+
20+
install:
21+
- if [ "${CXX}" == "clang++" ]; then sudo apt-get -qq install clang-3.2; fi
22+
- sudo apt-get install g++-4.8; # clang need it for libstdc++ update
23+
- sudo apt-get install libboost-system1.53-dev
24+
- sudo apt-get install libboost-regex1.53-dev
25+
- sudo apt-get install libboost-filesystem1.53-dev
26+
27+
before_script:
28+
# update compilers
29+
- if [ "${CXX}" == "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
30+
- if [ "${CXX}" == "clang++" ]; then export CXX="clang++-3.2" CC="clang-3.2"; fi
31+
32+
script:
33+
- mkdir _build
34+
- cd _build
35+
# Note: clang not support libc++
36+
- cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DCPP-NETLIB_DISABLE_LIBCXX=YES -DCPP-NETLIB_DISABLE_FEATURE_TESTS=YES ..
37+
- make
38+
- make test

CMakeLists.txt

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright (c) Dean Michael Berris 2010.
22
# Copyright (c) Google, Inc. 2012.
3+
# Copyright (c) Glyn Matthews 2013.
34
# Distributed under the Boost Software License, Version 1.0.
45
# (See accompanying file LICENSE_1_0.txt or copy at
56
# http://www.boost.org/LICENSE_1_0.txt)
@@ -14,6 +15,7 @@ option( CPP-NETLIB_BUILD_EXAMPLES "Build the examples using cpp-netlib." ON )
1415
option( CPP-NETLIB_ALWAYS_LOGGING "Allow cpp-netlib to log debug messages even in non-debug mode." OFF )
1516
option( CPP-NETLIB_DISABLE_LOGGING "Disable logging definitely, no logging code will be generated or compiled." OFF )
1617
option( CPP-NETLIB_DISABLE_LIBCXX "Disable using libc++ when compiling with clang." OFF )
18+
option( CPP-NETLIB_DISABLE_FEATURE_TESTS "Disable the feature tests (which may use a network connection)." OFF )
1719

1820
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
1921
find_package( ICU )
@@ -28,8 +30,8 @@ else()
2830
set(BUILD_SHARED_LIBS OFF)
2931
endif()
3032
set(Boost_USE_MULTITHREADED ON)
31-
set(Boost_COMPONENTS system regex date_time filesystem program_options )
32-
find_package( Boost 1.51 REQUIRED ${Boost_COMPONENTS} )
33+
set(Boost_COMPONENTS system regex filesystem )
34+
find_package( Boost 1.53 REQUIRED ${Boost_COMPONENTS} )
3335
find_package( OpenSSL )
3436
find_package( Threads )
3537
set(CMAKE_VERBOSE_MAKEFILE true)
@@ -46,7 +48,8 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU)
4648
INCLUDE(CheckCXXCompilerFlag)
4749
CHECK_CXX_COMPILER_FLAG(-std=c++11 HAVE_STD11)
4850
if (HAVE_STD11)
49-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
51+
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
52+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
5053
else()
5154
message(FATAL_ERROR "No advanced standard C++ support (-std=c++11 not defined).")
5255
endif()
@@ -55,9 +58,11 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
5558
CHECK_CXX_COMPILER_FLAG(-std=c++11 HAVE_STD11)
5659
if (HAVE_STD11)
5760
if (CPP-NETLIB_DISABLE_LIBCXX)
58-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
61+
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
62+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
5963
else()
60-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++ -Wall")
64+
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++ -Wall")
65+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
6166
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -stdlib=libc++")
6267
endif()
6368
else()
@@ -72,24 +77,24 @@ endif()
7277

7378
message(STATUS "C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
7479
message(STATUS "C++ Flags: ${CMAKE_CXX_FLAGS} link flags: ${CMAKE_CXX_LINK_FLAGS}")
75-
if (Boost_FOUND)
76-
if (MSVC)
77-
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
78-
endif(MSVC)
79-
if (WIN32)
80-
add_definitions(-D_WIN32_WINNT=0x0501)
81-
endif(WIN32)
82-
include_directories(${Boost_INCLUDE_DIRS})
83-
endif(Boost_FOUND)
80+
81+
if (MSVC)
82+
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
83+
endif(MSVC)
84+
if (WIN32)
85+
add_definitions(-D_WIN32_WINNT=0x0501)
86+
endif(WIN32)
87+
include_directories(${Boost_INCLUDE_DIRS})
8488

8589
message(STATUS "CPP-NETLIB options selected:")
86-
message(STATUS " CPP-NETLIB_BUILD_SHARED_LIBS: ${CPP-NETLIB_BUILD_SHARED_LIBS}\t(Build cpp-netlib as shared libraries: OFF, ON)")
87-
message(STATUS " CPP-NETLIB_BUILD_SINGLE_LIB: ${CPP-NETLIB_BUILD_SINGLE_LIB}\t(Build cpp-netlib into a single library: OFF, ON)")
88-
message(STATUS " CPP-NETLIB_BUILD_TESTS: ${CPP-NETLIB_BUILD_TESTS}\t(Build the unit tests: ON, OFF)")
89-
message(STATUS " CPP-NETLIB_BUILD_EXAMPLES: ${CPP-NETLIB_BUILD_EXAMPLES}\t(Build the examples using cpp-netlib: ON, OFF)")
90-
message(STATUS " CPP-NETLIB_ALWAYS_LOGGING: ${CPP-NETLIB_ALWAYS_LOGGING}\t(Allow cpp-netlib to log debug messages even in non-debug mode: ON, OFF)")
91-
message(STATUS " CPP-NETLIB_DISABLE_LOGGING: ${CPP-NETLIB_DISABLE_LOGGING}\t(Disable logging definitely, no logging code will be generated or compiled: ON, OFF)")
92-
message(STATUS " CPP-NETLIB_DISABLE_LIBCXX: ${CPP-NETLIB_DISABLE_LIBCXX}\t(Disable using libc++ when building with clang: ON, OFF)")
90+
message(STATUS " CPP-NETLIB_BUILD_SHARED_LIBS: ${CPP-NETLIB_BUILD_SHARED_LIBS}\t(Build cpp-netlib as shared libraries: OFF, ON)")
91+
message(STATUS " CPP-NETLIB_BUILD_SINGLE_LIB: ${CPP-NETLIB_BUILD_SINGLE_LIB}\t(Build cpp-netlib into a single library: OFF, ON)")
92+
message(STATUS " CPP-NETLIB_BUILD_TESTS: ${CPP-NETLIB_BUILD_TESTS}\t(Build the unit tests: ON, OFF)")
93+
message(STATUS " CPP-NETLIB_BUILD_EXAMPLES: ${CPP-NETLIB_BUILD_EXAMPLES}\t(Build the examples using cpp-netlib: ON, OFF)")
94+
message(STATUS " CPP-NETLIB_ALWAYS_LOGGING: ${CPP-NETLIB_ALWAYS_LOGGING}\t(Allow cpp-netlib to log debug messages even in non-debug mode: ON, OFF)")
95+
message(STATUS " CPP-NETLIB_DISABLE_LOGGING: ${CPP-NETLIB_DISABLE_LOGGING}\t(Disable logging definitely, no logging code will be generated or compiled: ON, OFF)")
96+
message(STATUS " CPP-NETLIB_DISABLE_LIBCXX: ${CPP-NETLIB_DISABLE_LIBCXX}\t(Disable using libc++ when building with clang: ON, OFF)")
97+
message(STATUS " CPP-NETLIB_DISABLE_FEATURE_TESTS: ${CPP-NETLIB_DISABLE_FEATURE_TESTS}\t(Disable the feature tests (which may use a network connection): ON, OFF)")
9398
message(STATUS "CMake build options selected:")
9499

95100
# Takes one or more lists as parameter and prepends the prefix to every element.
@@ -124,21 +129,37 @@ if(CPP-NETLIB_BUILD_TESTS)
124129
set(GTEST_ROOT ${CPP-NETLIB_SOURCE_DIR}/deps/gtest)
125130
set(GTEST_FOUND ON)
126131
set(GTEST_INCLUDE_DIRS ${GTEST_ROOT}/include)
127-
set(GTEST_LIBRARIES gtest)
128-
set(GTEST_MAIN_LIBRARIES gtest_main)
129-
set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
132+
set(GTEST_LIBRARY gtest)
133+
set(GTEST_MAIN_LIBRARY gtest_main)
134+
set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
130135

131136
set(GMOCK_ROOT ${CPP-NETLIB_SOURCE_DIR}/deps/gmock)
132137
set(GMOCK_FOUND ON)
133138
set(GMOCK_INCLUDE_DIRS ${GTEST_INCLUDE_DIRS} {${GMOCK_DIR}/include)
134-
set(GMOCK_LIBRARIES {$GTEST_LIBRARIES} gmock)
135-
set(GMOCK_MAIN_LIBRARIES gmock_main)
136-
set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARIES} ${GMOCK_MAIN_LIBRARIES})
139+
set(GMOCK_LIBRARY {$GTEST_LIBRARIES} gmock)
140+
set(GMOCK_MAIN_LIBRARY gmock_main)
141+
set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY})
142+
143+
set(IGLOO_ROOT ${CPP-NETLIB_SOURCE_DIR}/deps/igloo)
144+
set(IGLOO_FOUND ON)
145+
set(IGLOO_INCLUDE_DIR ${IGLOO_ROOT})
137146
endif()
138147

148+
# Documentation
149+
find_package(Doxygen)
150+
if (DOXYGEN_FOUND)
151+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
152+
add_custom_target(doc
153+
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
154+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
155+
COMMENT "Generating API documentation with Doxygen" VERBATIM)
156+
set(CPP-NETLIB_GENERATE_DOCS ON)
157+
endif(DOXYGEN_FOUND)
158+
139159
if(CPP-NETLIB_BUILD_SINGLE_LIB)
140160
include_directories(
141161
${CMAKE_CURRENT_SOURCE_DIR}/config/src
162+
${CMAKE_CURRENT_SOURCE_DIR}/error/src
142163
${CMAKE_CURRENT_SOURCE_DIR}/concurrency/src
143164
${CMAKE_CURRENT_SOURCE_DIR}/http/src
144165
${CMAKE_CURRENT_SOURCE_DIR}/logging/src
@@ -151,8 +172,9 @@ endif()
151172
add_subdirectory(uri)
152173
add_subdirectory(message)
153174
add_subdirectory(logging)
154-
add_subdirectory(concurrency)
175+
add_subdirectory(error)
155176
add_subdirectory(http)
177+
add_subdirectory(concurrency)
156178
#add_subdirectory(mime)
157179
if(CPP-NETLIB_BUILD_EXAMPLES)
158180
add_subdirectory(contrib/http_examples)

0 commit comments

Comments
 (0)