Added Rsocket

This commit is contained in:
Pritesh Nandgaonkar
2018-06-14 19:55:29 +01:00
parent a63b661327
commit ff7dc5cb37
5 changed files with 153 additions and 0 deletions

View File

@@ -155,6 +155,21 @@ task finalizeOpenSSL(dependsOn: [prepareOpenSSL], type: Copy) {
into "$thirdPartyNdkDir/OpenSSL/openssl-android-1.0.0/"
}
task downloadRSocket(dependsOn: [], type: Download) {
src 'https://github.com/priteshrnandgaonkar/rsocket-cpp/archive/0.10.1.tar.gz'
onlyIfNewer true
overwrite false
dest new File(downloadsDir, 'rsocket-cpp-0.10.1.tar.gz');
}
task prepareRSocket(dependsOn: [downloadRSocket], type: Copy) {
from tarTree(downloadRSocket.dest)
from './third-party/RSocket/'
include 'rsocket-cpp-0.10.1/**/*', 'build.gradle', 'ApplicationManifest.xml', 'CMakeLists.txt'
includeEmptyDirs = false
into "$thirdPartyNdkDir/RSocket"
}
task prepareAllLibs() {
dependsOn finalizeGlog
dependsOn prepareDoubleConversion
@@ -162,6 +177,7 @@ task prepareAllLibs() {
dependsOn prepareFolly
dependsOn finalizeEvent
dependsOn finalizeOpenSSL
dependsOn prepareRSocket
}
android {

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rsocket">
</manifest>

View File

@@ -0,0 +1,96 @@
cmake_minimum_required (VERSION 3.6.0)
PROJECT(rsocket CXX)
set(PACKAGE_NAME rsocket)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF)
set(third_party_ndk ${PROJECT_SOURCE_DIR}/../)
set(libfolly_DIR ${third_party_ndk}/folly/)
set(glog_DIR ${third_party_ndk}/glog)
set(BOOST_DIR ${third_party_ndk}/boost/boost_1_63_0/)
set(LIBEVENT_DIR ${third_party_ndk}/LibEvent/libevent-release-2.1.9/)
set(DOUBLECONVERSION_DIR ${third_party_ndk}/double-conversion/double-conversion-3.0.0/)
set(OPENSSL_DIR ${third_party_ndk}/OpenSSL/openssl-android-1.0.0/)
set(RSOCKET_DIR ${PROJECT_SOURCE_DIR}/rsocket-cpp-0.10.1)
list(APPEND dir_list ${RSOCKET_DIR}/)
list(APPEND dir_list ${RSOCKET_DIR}/benchmarks)
list(APPEND dir_list ${RSOCKET_DIR}/framing)
list(APPEND dir_list ${RSOCKET_DIR}/internal)
list(APPEND dir_list ${RSOCKET_DIR}/statemachine)
list(APPEND dir_list ${RSOCKET_DIR}/transports)
list(APPEND dir_list ${RSOCKET_DIR}/transports/tcp)
list(APPEND dir_list ${RSOCKET_DIR}/yarpl/flowable)
list(APPEND dir_list ${RSOCKET_DIR}/yarpl/observable)
file(GLOB SRC_FILES ${RSOCKET_DIR}/*.cpp
${RSOCKET_DIR}/benchmarks/*.cpp
${RSOCKET_DIR}/framing/*.cpp
${RSOCKET_DIR}/statemachine/*.cpp
${RSOCKET_DIR}/transports/*.cpp
${RSOCKET_DIR}/transports/tcp/*.cpp
${FOLLY_DIR}/hash/detail/*.cpp
${RSOCKET_DIR}/yarpl/observable/*.cpp
)
include_directories(${dir_list})
add_compile_options(
-DFOLLY_HAVE_CLOCK_GETTIME=1
-DFOLLY_HAVE_PTHREAD=1
-DFOLLY_NO_CONFIG=1
-DFOLLY_HAVE_MEMRCHR
-DFOLLY_MOBILE=1
-DFOLLY_USE_LIBCPP=1
-DFOLLY_HAVE_LIBJEMALLOC=0
-DFOLLY_HAVE_PREADV=0
-frtti
-fexceptions
-Wno-error
-Wno-unused-local-typedefs
-Wno-unused-variable
-Wno-sign-compare
-Wno-comment
-Wno-return-type
-Wno-tautological-constant-compare
)
message(STATUS "DIR LIST RSocket => " ${dir_list} )
#file(GLOB_RECURSE SRCFILES ${RSOCKET_DIR}/*.cpp)
add_library(${PACKAGE_NAME} SHARED ${SRC_FILES})
set(build_DIR ${CMAKE_SOURCE_DIR}/build)
set(libfolly_build_DIR ${build_DIR}/libfolly/${ANDROID_ABI})
file(MAKE_DIRECTORY ${build_DIR})
add_subdirectory(${libfolly_DIR} ${libfolly_build_DIR})
target_include_directories(${PACKAGE_NAME} PRIVATE
${libfolly_DIR}
${BOOST_DIR}
${BOOST_DIR}/../
${LIBEVENT_DIR}/
${LIBEVENT_DIR}/include/
${LIBEVENT_DIR}/include/event2
${OPENSSL_DIR}/jni/openssl-android/
${OPENSSL_DIR}/jni/openssl-android/include
${OPENSSL_DIR}/jni/openssl-android/include/openssl
${glog_DIR}
${glog_DIR}/../
${glog_DIR}/glog-0.3.5/src/
${easywsclient_DIR}
)
#install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
set(OPENSSL_LINK_DIRECTORIES ${third_party_ndk}/OpenSSL/libs/${ANDROID_ABI}/)
message(STATUS "OPENSSL_LINK_DIRECTORIES RSocket => " ${OPENSSL_LINK_DIRECTORIES} )
find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES})
target_link_libraries(${PACKAGE_NAME} folly glog double-conversion log event ${OPENSSL_LINK_DIRECTORIES}/libssl.so ${OPENSSL_LINK_DIRECTORIES}/libcrypto.so)

View File

@@ -0,0 +1,35 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
ndk {
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang'
}
}
}
lintOptions {
abortOnError false
}
sourceSets {
main {
manifest.srcFile './ApplicationManifest.xml'
}
}
externalNativeBuild {
cmake {
path './CMakeLists.txt'
//'rsocket-cpp-0.10.0/CMakeLists.txt'
}
}
}
//'x86', 'x86_64', 'armeabi-v7a',

View File

@@ -19,6 +19,7 @@ include ':doubleconversion'
include ':glog'
include ':libevent'
include ':openssl'
include ':rsocket'
@@ -32,3 +33,4 @@ project(':glog').projectDir = file('android/build/third-party-ndk/glog/')
project(':folly').projectDir = file('android/build/third-party-ndk/folly/')
project(':libevent').projectDir = file('android/build/third-party-ndk/LibEvent/')
project(':openssl').projectDir = file('android/build/third-party-ndk/OpenSSL/openssl-android-1.0.0')
project(':rsocket').projectDir = file('android/build/third-party-ndk/RSocket')