RSicket builds

This commit is contained in:
Pritesh Nandgaonkar
2018-06-14 21:45:45 +01:00
parent ff7dc5cb37
commit 51c36cf2bd
8 changed files with 1143 additions and 24 deletions

View File

@@ -1,5 +1,7 @@
cmake_minimum_required (VERSION 3.6.0) cmake_minimum_required (VERSION 3.6.0)
project(sonar CXX C) project(sonar CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_VERBOSE_MAKEFILE on) set(CMAKE_VERBOSE_MAKEFILE on)
set(PACKAGE_NAME "sonar") set(PACKAGE_NAME "sonar")
@@ -14,7 +16,6 @@ add_compile_options(-DFOLLY_NO_CONFIG
-DFOLLY_HAVE_PREADV=0 -DFOLLY_HAVE_PREADV=0
-frtti -frtti
-fexceptions -fexceptions
-std=c++14
-Wno-error -Wno-error
-Wno-unused-local-typedefs -Wno-unused-local-typedefs
-Wno-unused-variable -Wno-unused-variable

View File

@@ -104,6 +104,13 @@ task prepareFolly(dependsOn: [downloadFolly], type: Copy) {
into "$thirdPartyNdkDir/folly" into "$thirdPartyNdkDir/folly"
} }
//TODO: Get rid off this hack.
task finalizeFolly(dependsOn: [prepareFolly], type: Copy) {
from './third-party/folly/'
include 'AsyncServerSocket.cpp'
into "$thirdPartyNdkDir/folly/folly/io/async/"
}
task downloadLibEvent(dependsOn: [], type: Download) { task downloadLibEvent(dependsOn: [], type: Download) {
src 'https://github.com/priteshrnandgaonkar/libevent/archive/release-2.1.9.tar.gz' src 'https://github.com/priteshrnandgaonkar/libevent/archive/release-2.1.9.tar.gz'
onlyIfNewer true onlyIfNewer true
@@ -174,7 +181,7 @@ task prepareAllLibs() {
dependsOn finalizeGlog dependsOn finalizeGlog
dependsOn prepareDoubleConversion dependsOn prepareDoubleConversion
dependsOn prepareBoost dependsOn prepareBoost
dependsOn prepareFolly dependsOn finalizeFolly
dependsOn finalizeEvent dependsOn finalizeEvent
dependsOn finalizeOpenSSL dependsOn finalizeOpenSSL
dependsOn prepareRSocket dependsOn prepareRSocket
@@ -189,7 +196,7 @@ android {
targetSdkVersion rootProject.targetSdkVersion targetSdkVersion rootProject.targetSdkVersion
buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true' buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true'
ndk { ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' abiFilters 'arm64-v8a', 'x86'
} }
externalNativeBuild { externalNativeBuild {

File diff suppressed because it is too large Load Diff

View File

@@ -53,6 +53,7 @@ add_compile_options(
) )
file(GLOB SRC_FILES ${FOLLY_DIR}/portability/*.cpp file(GLOB SRC_FILES ${FOLLY_DIR}/portability/*.cpp
${FOLLY_DIR}/io/async/ssl/*.cpp ${FOLLY_DIR}/io/async/ssl/*.cpp
${FOLLY_DIR}/io/async/*.cpp
${FOLLY_DIR}/detail/*.cpp ${FOLLY_DIR}/detail/*.cpp
${FOLLY_DIR}/synchronization/*.cpp ${FOLLY_DIR}/synchronization/*.cpp
${FOLLY_DIR}/lang/*.cpp ${FOLLY_DIR}/lang/*.cpp
@@ -77,6 +78,7 @@ list(APPEND SRC_FILES ${FOLLY_DIR}/io/async/HHWheelTimer.cpp
${FOLLY_DIR}/io/async/EventBase.cpp ${FOLLY_DIR}/io/async/EventBase.cpp
${FOLLY_DIR}/io/async/EventHandler.cpp ${FOLLY_DIR}/io/async/EventHandler.cpp
${FOLLY_DIR}/io/async/VirtualEventBase.cpp ${FOLLY_DIR}/io/async/VirtualEventBase.cpp
${FOLLY_DIR}/io/ShutdownSocketSet.cpp
${FOLLY_DIR}/SharedMutex.cpp ${FOLLY_DIR}/SharedMutex.cpp
${FOLLY_DIR}/ExceptionWrapper.cpp ${FOLLY_DIR}/ExceptionWrapper.cpp
${FOLLY_DIR}/system/ThreadName.cpp ${FOLLY_DIR}/system/ThreadName.cpp

View File

@@ -9,7 +9,7 @@ android {
targetSdkVersion rootProject.targetSdkVersion targetSdkVersion rootProject.targetSdkVersion
buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true' buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true'
ndk { ndk {
abiFilters 'x86', 'armeabi-v7a' abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
} }
externalNativeBuild { externalNativeBuild {
@@ -41,3 +41,4 @@ android {
} }
} }
// 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' // 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
//'arm64-v8a', 'x86', 'armeabi-v7a'

View File

@@ -13,27 +13,31 @@ 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(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(OPENSSL_DIR ${third_party_ndk}/OpenSSL/openssl-android-1.0.0/)
set(RSOCKET_DIR ${PROJECT_SOURCE_DIR}/rsocket-cpp-0.10.1) set(RSOCKET_ROOT_DIR ${PROJECT_SOURCE_DIR}/rsocket-cpp-0.10.1)
set(RSOCKET_DIR ${PROJECT_SOURCE_DIR}/rsocket-cpp-0.10.1/rsocket)
list(APPEND dir_list ${RSOCKET_ROOT_DIR}/)
list(APPEND dir_list ${RSOCKET_DIR}/) list(APPEND dir_list ${RSOCKET_DIR}/)
list(APPEND dir_list ${RSOCKET_DIR}/benchmarks) #list(APPEND dir_list ${RSOCKET_DIR}/benchmarks)
list(APPEND dir_list ${RSOCKET_DIR}/framing) list(APPEND dir_list ${RSOCKET_DIR}/framing)
list(APPEND dir_list ${RSOCKET_DIR}/internal) list(APPEND dir_list ${RSOCKET_DIR}/internal)
list(APPEND dir_list ${RSOCKET_DIR}/statemachine) list(APPEND dir_list ${RSOCKET_DIR}/statemachine)
list(APPEND dir_list ${RSOCKET_DIR}/transports) list(APPEND dir_list ${RSOCKET_DIR}/transports)
list(APPEND dir_list ${RSOCKET_DIR}/transports/tcp) list(APPEND dir_list ${RSOCKET_DIR}/transports/tcp)
list(APPEND dir_list ${RSOCKET_DIR}/yarpl/flowable) list(APPEND dir_list ${RSOCKET_ROOT_DIR}/yarpl/flowable)
list(APPEND dir_list ${RSOCKET_DIR}/yarpl/observable) list(APPEND dir_list ${RSOCKET_ROOT_DIR}/yarpl/observable)
list(APPEND dir_list ${RSOCKET_ROOT_DIR}/yarpl/utils)
file(GLOB SRC_FILES ${RSOCKET_DIR}/*.cpp file(GLOB SRC_FILES ${RSOCKET_DIR}/*.cpp
${RSOCKET_DIR}/benchmarks/*.cpp # ${RSOCKET_DIR}/benchmarks/*.cpp
${RSOCKET_DIR}/internal/*.cpp
${RSOCKET_DIR}/framing/*.cpp ${RSOCKET_DIR}/framing/*.cpp
${RSOCKET_DIR}/statemachine/*.cpp ${RSOCKET_DIR}/statemachine/*.cpp
${RSOCKET_DIR}/transports/*.cpp ${RSOCKET_DIR}/transports/*.cpp
${RSOCKET_DIR}/transports/tcp/*.cpp ${RSOCKET_DIR}/transports/tcp/*.cpp
${FOLLY_DIR}/hash/detail/*.cpp ${RSOCKET_ROOT_DIR}/yarpl/observable/*.cpp
${RSOCKET_DIR}/yarpl/observable/*.cpp ${RSOCKET_ROOT_DIR}/yarpl/flowable/*.cpp
${RSOCKET_ROOT_DIR}/yarpl/utils/*.cpp
) )
include_directories(${dir_list}) include_directories(${dir_list})
@@ -58,7 +62,6 @@ add_compile_options(
-Wno-tautological-constant-compare -Wno-tautological-constant-compare
) )
message(STATUS "DIR LIST RSocket => " ${dir_list} )
#file(GLOB_RECURSE SRCFILES ${RSOCKET_DIR}/*.cpp) #file(GLOB_RECURSE SRCFILES ${RSOCKET_DIR}/*.cpp)
add_library(${PACKAGE_NAME} SHARED ${SRC_FILES}) add_library(${PACKAGE_NAME} SHARED ${SRC_FILES})
@@ -83,13 +86,11 @@ target_include_directories(${PACKAGE_NAME} PRIVATE
${glog_DIR} ${glog_DIR}
${glog_DIR}/../ ${glog_DIR}/../
${glog_DIR}/glog-0.3.5/src/ ${glog_DIR}/glog-0.3.5/src/
${easywsclient_DIR}
) )
#install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/) #install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
set(OPENSSL_LINK_DIRECTORIES ${third_party_ndk}/OpenSSL/libs/${ANDROID_ABI}/) 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}) find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES})

View File

@@ -5,8 +5,9 @@ set(PACKAGE_NAME sonarcpp)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF)
set(third_party_ndk ../android/build/third-party-ndk) set(third_party_ndk ${PROJECT_SOURCE_DIR}/../android/build/third-party-ndk)
set(libfolly_DIR ${third_party_ndk}/folly/) set(libfolly_DIR ${third_party_ndk}/folly/)
set(rsocket_DIR ${third_party_ndk}/RSocket/)
set(easywsclient_DIR ../libs/) set(easywsclient_DIR ../libs/)
set(glog_DIR ${third_party_ndk}/glog) set(glog_DIR ${third_party_ndk}/glog)
set(BOOST_DIR ${third_party_ndk}/boost/boost_1_63_0/) set(BOOST_DIR ${third_party_ndk}/boost/boost_1_63_0/)
@@ -43,18 +44,21 @@ add_library(${PACKAGE_NAME} SHARED ${SOURCES})
set(build_DIR ${CMAKE_SOURCE_DIR}/build) set(build_DIR ${CMAKE_SOURCE_DIR}/build)
set(libfolly_build_DIR ${build_DIR}/libfolly/${ANDROID_ABI}) set(libfolly_build_DIR ${build_DIR}/libfolly/${ANDROID_ABI})
set(easywsclient_build_DIR ${build_DIR}/easywsclient/${ANDROID_ABI}) set(rsocket_build_DIR ${build_DIR}/rsocket/${ANDROID_ABI})
file(MAKE_DIRECTORY ${build_DIR}) file(MAKE_DIRECTORY ${build_DIR})
add_subdirectory(${libfolly_DIR} ${libfolly_build_DIR}) #add_subdirectory(${libfolly_DIR} ${libfolly_build_DIR})
add_subdirectory(${easywsclient_DIR}/easywsclient ${easywsclient_build_DIR}) add_subdirectory(${rsocket_DIR} ${rsocket_build_DIR})
message(STATUS "RSocket DIR:- " ${rsocket_DIR})
target_include_directories(${PACKAGE_NAME} PRIVATE target_include_directories(${PACKAGE_NAME} PRIVATE
${libfolly_DIR} ${libfolly_DIR}
${BOOST_DIR} ${BOOST_DIR}
${BOOST_DIR}/../ ${BOOST_DIR}/../
${LIBEVENT_DIR}/ ${LIBEVENT_DIR}/
${rsocket_DIR}/rsocket-cpp-0.10.1
${LIBEVENT_DIR}/include/ ${LIBEVENT_DIR}/include/
${LIBEVENT_DIR}/include/event2 ${LIBEVENT_DIR}/include/event2
${OPENSSL_DIR}/jni/openssl-android/ ${OPENSSL_DIR}/jni/openssl-android/
@@ -63,10 +67,9 @@ target_include_directories(${PACKAGE_NAME} PRIVATE
${glog_DIR} ${glog_DIR}
${glog_DIR}/../ ${glog_DIR}/../
${glog_DIR}/glog-0.3.5/src/ ${glog_DIR}/glog-0.3.5/src/
${easywsclient_DIR}
) )
set(OPENSSL_LINK_DIRECTORIES ${third_party_ndk}/OpenSSL/libs/${ANDROID_ABI}/) set(OPENSSL_LINK_DIRECTORIES ${third_party_ndk}/OpenSSL/libs/${ANDROID_ABI}/)
find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES}) find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES})
target_link_libraries(${PACKAGE_NAME} folly easywsclient glog double-conversion log event ${OPENSSL_LINK_DIRECTORIES}/libssl.so ${OPENSSL_LINK_DIRECTORIES}/libcrypto.so) target_link_libraries(${PACKAGE_NAME} folly rsocket glog double-conversion log event ${OPENSSL_LINK_DIRECTORIES}/libssl.so ${OPENSSL_LINK_DIRECTORIES}/libcrypto.so)

View File

@@ -9,7 +9,7 @@ android {
targetSdkVersion rootProject.targetSdkVersion targetSdkVersion rootProject.targetSdkVersion
ndk { ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' abiFilters 'arm64-v8a', 'x86'
} }
externalNativeBuild { externalNativeBuild {
@@ -31,7 +31,8 @@ android {
} }
dependencies { dependencies {
implementation project(':easywsclient') implementation project(':rsocket')
implementation project(':folly') implementation project(':folly')
} }
} }
//'armeabi-v7a'