Skip to content

Commit 17de32d

Browse files
committed
Merge pull request #591 from glynos/boostless
Link with standard libraries instead of Boost
2 parents 853550b + b0eeb2f commit 17de32d

Some content is hidden

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

55 files changed

+439
-486
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "deps/cxxopts"]
1111
path = deps/cxxopts
1212
url = https://github.com/jarro2783/cxxopts.git
13+
[submodule "deps/asio"]
14+
path = deps/asio
15+
url = https://github.com/chriskohlhoff/asio.git

.travis.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ env:
1313
- BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON"
1414
- BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="OFF"
1515
# Support the sanitizers in clang only
16-
- BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=thread"
17-
- BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=address"
16+
# - BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=thread"
17+
# - BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=address"
1818
# TODO(deanberris): It seems Boost is not msan-clean yet; report bugs and maybe fix?
1919
#- BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2"
20-
matrix:
21-
exclude:
22-
- compiler: g++
23-
env: BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=thread"
24-
- compiler: g++
25-
env: BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=address"
20+
# matrix:
21+
# exclude:
22+
# - compiler: g++
23+
# env: BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=thread"
24+
# - compiler: g++
25+
# env: BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=address"
2626
# TODO(deanberris): It seems Boost is not msan-clean yet; report bugs and maybe fix?
2727
# - compiler: g++
2828
# env: BOOST_VER=1.59.0 BUILD_SHARED_LIBS="OFF" CMAKE_BUILD_TYPE="Debug" ENABLE_HTTPS="ON" CMAKE_CXX_FLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2"

CMakeLists.txt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ project(CPP-NETLIB)
99

1010
option( CPP-NETLIB_BUILD_SHARED_LIBS "Build cpp-netlib as shared libraries." OFF )
1111
option( CPP-NETLIB_BUILD_TESTS "Build the cpp-netlib project tests." ON)
12-
option( CPP-NETLIB_BUILD_EXPERIMENTS "Build the cpp-netlib project experiments." ON)
12+
# option( CPP-NETLIB_BUILD_EXPERIMENTS "Build the cpp-netlib project experiments." ON)
1313
option( CPP-NETLIB_BUILD_EXAMPLES "Build the cpp-netlib project examples." ON)
1414
option( CPP-NETLIB_ENABLE_HTTPS "Build cpp-netlib with support for https if OpenSSL is found." ON)
1515

@@ -46,7 +46,7 @@ add_definitions(-DBOOST_TEST_DYN_LINK)
4646
# Always use multi-threaded Boost libraries.
4747
set(Boost_USE_MULTI_THREADED ON)
4848

49-
find_package(Boost 1.57.0 REQUIRED system filesystem)
49+
find_package(Boost 1.57.0 REQUIRED)
5050

5151
if (CPP-NETLIB_ENABLE_HTTPS)
5252
find_package( OpenSSL )
@@ -91,18 +91,23 @@ if (Boost_FOUND)
9191
add_definitions(-D_WIN32_WINNT=0x0501)
9292
endif(WIN32)
9393
include_directories(${Boost_INCLUDE_DIRS})
94+
95+
# Asio
96+
add_definitions(-DASIO_HEADER_ONLY)
97+
include_directories(deps/asio/asio/include)
98+
9499
enable_testing()
95100
add_subdirectory(libs/network/src)
96101
if (CPP-NETLIB_BUILD_TESTS)
97102
add_subdirectory(deps/googletest)
98103
add_subdirectory(libs/network/test)
99104
endif (CPP-NETLIB_BUILD_TESTS)
100-
if (CPP-NETLIB_BUILD_EXPERIMENTS)
101-
add_subdirectory(libs/network/experiment)
102-
endif (CPP-NETLIB_BUILD_EXPERIMENTS)
103-
if (NOT MSVC AND CPP-NETLIB_BUILD_TESTS)
104-
add_subdirectory(libs/mime/test)
105-
endif(NOT MSVC AND CPP-NETLIB_BUILD_TESTS)
105+
# if (CPP-NETLIB_BUILD_EXPERIMENTS)
106+
# add_subdirectory(libs/network/experiment)
107+
# endif (CPP-NETLIB_BUILD_EXPERIMENTS)
108+
# if (NOT MSVC AND CPP-NETLIB_BUILD_TESTS)
109+
# add_subdirectory(libs/mime/test)
110+
# endif(NOT MSVC AND CPP-NETLIB_BUILD_TESTS)
106111
if (CPP-NETLIB_BUILD_EXAMPLES)
107112
add_subdirectory(libs/network/example)
108113
endif (CPP-NETLIB_BUILD_EXAMPLES)

README.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ C++ Network Library
33

44
Modern C++ network programming libraries.
55

6+
.. image:: https://travis-ci.org/cpp-netlib/cpp-netlib.svg?branch=master
7+
:target: https://travis-ci.org/cpp-netlib/cpp-netlib
8+
69
Join us on Slack: http://slack.cpp-netlib.org/
710

811
Subscribe to the mailing list: https://groups.google.com/forum/#!forum/cpp-netlib

boost/network/protocol/http/client.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <boost/network/protocol/http/response.hpp>
1313
#include <boost/network/traits/ostringstream.hpp>
1414

15-
#include <boost/asio/io_service.hpp>
1615
#include <boost/algorithm/string/classification.hpp>
1716
#include <boost/algorithm/string/split.hpp>
1817
#include <istream>

boost/network/protocol/http/client/async_impl.hpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#include <thread>
1212
#include <memory>
1313
#include <functional>
14-
#include <boost/asio/io_service.hpp>
15-
#include <boost/asio/strand.hpp>
14+
#include <asio/io_service.hpp>
15+
#include <asio/strand.hpp>
1616
#include <boost/network/protocol/http/traits/connection_policy.hpp>
1717

1818
namespace boost {
@@ -32,13 +32,13 @@ struct async_client
3232
typedef typename string<Tag>::type string_type;
3333

3434
typedef std::function<void(boost::iterator_range<char const*> const&,
35-
system::error_code const&)> body_callback_function_type;
35+
std::error_code const&)> body_callback_function_type;
3636

3737
typedef std::function<bool(string_type&)> body_generator_function_type;
3838

3939
async_client(bool cache_resolved, bool follow_redirect,
4040
bool always_verify_peer, int timeout,
41-
std::shared_ptr<boost::asio::io_service> service,
41+
std::shared_ptr<asio::io_service> service,
4242
optional<string_type> certificate_filename,
4343
optional<string_type> verify_path,
4444
optional<string_type> certificate_file,
@@ -47,10 +47,10 @@ struct async_client
4747
: connection_base(cache_resolved, follow_redirect, timeout),
4848
service_ptr(service.get()
4949
? service
50-
: std::make_shared<boost::asio::io_service>()),
50+
: std::make_shared<asio::io_service>()),
5151
service_(*service_ptr),
5252
resolver_(service_),
53-
sentinel_(new boost::asio::io_service::work(service_)),
53+
sentinel_(new asio::io_service::work(service_)),
5454
certificate_filename_(std::move(certificate_filename)),
5555
verify_path_(std::move(verify_path)),
5656
certificate_file_(std::move(certificate_file)),
@@ -59,7 +59,7 @@ struct async_client
5959
ssl_options_(ssl_options),
6060
always_verify_peer_(always_verify_peer) {
6161
connection_base::resolver_strand_.reset(
62-
new boost::asio::io_service::strand(service_));
62+
new asio::io_service::strand(service_));
6363
if (!service)
6464
lifetime_thread_.reset(new std::thread([this] () { service_.run(); }));
6565
}
@@ -87,10 +87,10 @@ struct async_client
8787
generator);
8888
}
8989

90-
std::shared_ptr<boost::asio::io_service> service_ptr;
91-
boost::asio::io_service& service_;
90+
std::shared_ptr<asio::io_service> service_ptr;
91+
asio::io_service& service_;
9292
resolver_type resolver_;
93-
std::shared_ptr<boost::asio::io_service::work> sentinel_;
93+
std::shared_ptr<asio::io_service::work> sentinel_;
9494
std::shared_ptr<std::thread> lifetime_thread_;
9595
optional<string_type> certificate_filename_;
9696
optional<string_type> verify_path_;

boost/network/protocol/http/client/connection/async_base.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ struct async_connection_base {
3030
typedef basic_request<Tag> request;
3131
typedef basic_response<Tag> response;
3232
typedef iterator_range<char const *> char_const_range;
33-
typedef std::function<void(char_const_range const &, system::error_code const &)>
33+
typedef std::function<void(char_const_range const &, std::error_code const &)>
3434
body_callback_function_type;
3535
typedef std::function<bool(string_type &)> body_generator_function_type;
3636
typedef std::shared_ptr<this_type> connection_ptr;

0 commit comments

Comments
 (0)