Repository: thrift Updated Branches: refs/heads/master 6e4037656 -> 7207c22f9
THRIFT-2850 CMake for Apache Thrift Client: Cpp Patch: Ben Craig This closes #534 Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/7207c22f Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/7207c22f Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/7207c22f Branch: refs/heads/master Commit: 7207c22f9d50ee28ea8c0842404541524bde8bcd Parents: 6e40376 Author: Ben Craig <[email protected]> Authored: Mon Jul 6 08:40:35 2015 -0500 Committer: Ben Craig <[email protected]> Committed: Mon Jul 6 08:40:35 2015 -0500 ---------------------------------------------------------------------- lib/cpp/CMakeLists.txt | 9 ++++-- .../src/thrift/async/TEvhttpClientChannel.cpp | 2 ++ lib/cpp/src/thrift/async/TEvhttpServer.cpp | 2 ++ lib/cpp/src/thrift/server/TNonblockingServer.h | 2 ++ lib/cpp/test/TNonblockingServerTest.cpp | 8 ++--- test/cpp/CMakeLists.txt | 32 +++++++++++++++----- 6 files changed, 42 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/lib/cpp/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt index 84509a3..b97e356 100755 --- a/lib/cpp/CMakeLists.txt +++ b/lib/cpp/CMakeLists.txt @@ -34,7 +34,6 @@ set(SYSLIBS "") set( thriftcpp_SOURCES src/thrift/TApplicationException.cpp src/thrift/TOutput.cpp - src/thrift/VirtualProfiling.cpp src/thrift/async/TAsyncChannel.cpp src/thrift/concurrency/ThreadManager.cpp src/thrift/concurrency/TimerManager.cpp @@ -57,7 +56,6 @@ set( thriftcpp_SOURCES src/thrift/transport/TTransportUtils.cpp src/thrift/transport/TBufferTransports.cpp src/thrift/server/TConnectedClient.cpp - src/thrift/server/TServer.cpp src/thrift/server/TServerFramework.cpp src/thrift/server/TSimpleServer.cpp src/thrift/server/TThreadPoolServer.cpp @@ -88,6 +86,13 @@ if (WIN32) src/thrift/windows/OverlappedSubmissionThread.cpp ) endif() +else() + # These files evaluate to nothing on Windows, so omit them from the + # Windows build + list(APPEND thriftcpp_SOURCES + src/thrift/VirtualProfiling.cpp + src/thrift/server/TServer.cpp + ) endif() # If OpenSSL is not found just ignore the OpenSSL stuff http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp ---------------------------------------------------------------------- diff --git a/lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp b/lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp index bcb87cd..1279bc6 100644 --- a/lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp +++ b/lib/cpp/src/thrift/async/TEvhttpClientChannel.cpp @@ -19,6 +19,8 @@ #include <thrift/async/TEvhttpClientChannel.h> #include <evhttp.h> +#include <event2/buffer.h> +#include <event2/buffer_compat.h> #include <thrift/transport/TBufferTransports.h> #include <thrift/protocol/TProtocolException.h> http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/lib/cpp/src/thrift/async/TEvhttpServer.cpp ---------------------------------------------------------------------- diff --git a/lib/cpp/src/thrift/async/TEvhttpServer.cpp b/lib/cpp/src/thrift/async/TEvhttpServer.cpp index 93fb479..57d0d61 100644 --- a/lib/cpp/src/thrift/async/TEvhttpServer.cpp +++ b/lib/cpp/src/thrift/async/TEvhttpServer.cpp @@ -21,6 +21,8 @@ #include <thrift/async/TAsyncBufferProcessor.h> #include <thrift/transport/TBufferTransports.h> #include <evhttp.h> +#include <event2/buffer.h> +#include <event2/buffer_compat.h> #include <iostream> http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/lib/cpp/src/thrift/server/TNonblockingServer.h ---------------------------------------------------------------------- diff --git a/lib/cpp/src/thrift/server/TNonblockingServer.h b/lib/cpp/src/thrift/server/TNonblockingServer.h index aacb492..4fb83f1 100644 --- a/lib/cpp/src/thrift/server/TNonblockingServer.h +++ b/lib/cpp/src/thrift/server/TNonblockingServer.h @@ -38,6 +38,8 @@ #include <unistd.h> #endif #include <event.h> +#include <event2/event_compat.h> +#include <event2/event_struct.h> namespace apache { namespace thrift { http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/lib/cpp/test/TNonblockingServerTest.cpp ---------------------------------------------------------------------- diff --git a/lib/cpp/test/TNonblockingServerTest.cpp b/lib/cpp/test/TNonblockingServerTest.cpp index 4aa4c28..9488091 100644 --- a/lib/cpp/test/TNonblockingServerTest.cpp +++ b/lib/cpp/test/TNonblockingServerTest.cpp @@ -46,7 +46,7 @@ struct Handler : public test::ParentServiceIf { class Fixture { private: - struct Runner : public concurrency::Runnable { + struct Runner : public apache::thrift::concurrency::Runnable { boost::shared_ptr<server::TNonblockingServer> server; bool error; virtual void run() { @@ -80,8 +80,8 @@ protected: } int startServer(int port) { - boost::scoped_ptr<concurrency::ThreadFactory> threadFactory( - new concurrency::PlatformThreadFactory( + boost::scoped_ptr<apache::thrift::concurrency::ThreadFactory> threadFactory( + new apache::thrift::concurrency::PlatformThreadFactory( #if !USE_BOOST_THREAD && !USE_STD_THREAD concurrency::PlatformThreadFactory::OTHER, concurrency::PlatformThreadFactory::NORMAL, @@ -128,7 +128,7 @@ protected: private: boost::shared_ptr<event_base> userEventBase_; boost::shared_ptr<test::ParentServiceProcessor> processor; - boost::shared_ptr<concurrency::Thread> thread; + boost::shared_ptr<apache::thrift::concurrency::Thread> thread; protected: boost::shared_ptr<server::TNonblockingServer> server; http://git-wip-us.apache.org/repos/asf/thrift/blob/7207c22f/test/cpp/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt index 79cc008..2d75f2e 100755 --- a/test/cpp/CMakeLists.txt +++ b/test/cpp/CMakeLists.txt @@ -17,10 +17,19 @@ # under the License. # +# Contains the thrift specific LINK_AGAINST_THRIFT_LIBRARY +include(ThriftMacros) + set(Boost_USE_STATIC_LIBS ON) find_package(Boost 1.53.0 REQUIRED COMPONENTS program_options system filesystem) include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") +find_package(OpenSSL REQUIRED) +include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}") + +find_package(Libevent REQUIRED) # Libevent comes with CMake support from upstream +include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS}) + #Make sure gen-cpp files can be included include_directories("${CMAKE_CURRENT_BINARY_DIR}") include_directories("${CMAKE_CURRENT_BINARY_DIR}/gen-cpp") @@ -34,28 +43,37 @@ set(crosstestgencpp_SOURCES src/ThriftTest_extras.cpp ) add_library(crosstestgencpp STATIC ${crosstestgencpp_SOURCES}) -target_link_libraries(crosstestgencpp thrift) +LINK_AGAINST_THRIFT_LIBRARY(crosstestgencpp thrift) set(crossstressgencpp_SOURCES gen-cpp/Service.cpp - gen-cpp/StressTest_types.cpp + #gen-cpp/StressTest_types.cpp #basically empty, so omitting gen-cpp/StressTest_constants.cpp ) add_library(crossstressgencpp STATIC ${crossstressgencpp_SOURCES}) -target_link_libraries(crossstressgencpp thrift) +LINK_AGAINST_THRIFT_LIBRARY(crossstressgencpp thrift) add_executable(TestServer src/TestServer.cpp) -target_link_libraries(TestServer thrift thriftnb crosstestgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +target_link_libraries(TestServer crosstestgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +LINK_AGAINST_THRIFT_LIBRARY(TestServer thrift) +LINK_AGAINST_THRIFT_LIBRARY(TestServer thriftnb) add_executable(TestClient src/TestClient.cpp) -target_link_libraries(TestClient thrift thriftnb crosstestgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +target_link_libraries(TestClient crosstestgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +LINK_AGAINST_THRIFT_LIBRARY(TestClient thrift) +LINK_AGAINST_THRIFT_LIBRARY(TestClient thriftnb) add_executable(StressTest src/StressTest.cpp) -target_link_libraries(StressTest thrift thriftnb crossstressgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +target_link_libraries(StressTest crossstressgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +LINK_AGAINST_THRIFT_LIBRARY(StressTest thrift) +LINK_AGAINST_THRIFT_LIBRARY(StressTest thriftnb) add_test(NAME StressTest COMMAND StressTest) add_executable(StressTestNonBlocking src/StressTestNonBlocking.cpp) -target_link_libraries(StressTestNonBlocking thrift thriftz thriftnb crossstressgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +target_link_libraries(StressTestNonBlocking crossstressgencpp ${Boost_LIBRARIES} ${LIBEVENT_LIB}) +LINK_AGAINST_THRIFT_LIBRARY(StressTestNonBlocking thrift) +LINK_AGAINST_THRIFT_LIBRARY(StressTestNonBlocking thriftnb) +LINK_AGAINST_THRIFT_LIBRARY(StressTestNonBlocking thriftz) add_test(NAME StressTestNonBlocking COMMAND StressTestNonBlocking) #
