# binderRpcTestIface-cpp

set(binderRpcTestIface-cpp_SRCS
    BinderRpcTestClientInfo.aidl
    BinderRpcTestServerConfig.aidl
    BinderRpcTestServerInfo.aidl
    IBinderRpcCallback.aidl
    IBinderRpcSession.aidl
    IBinderRpcTest.aidl
    ParcelableCertificateData.aidl
)

set(binderRpcTestIface-cpp_AIDLFLAGS
    -Weverything -Wno-missing-permission-annotation
    -Werror
    -Wno-mixed-oneway
)

add_aidl_library(binderRpcTestIface-cpp cpp
    "${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/"
    "${binderRpcTestIface-cpp_SRCS}"
    "${binderRpcTestIface-cpp_AIDLFLAGS}")
add_library(android::binderRpcTestIface-cpp ALIAS binderRpcTestIface-cpp)


# binderRpcTestIface-ndk

set(binderRpcTestIface-ndk_SRCS
    BinderRpcTestClientInfo.aidl
    BinderRpcTestServerConfig.aidl
    BinderRpcTestServerInfo.aidl
    IBinderRpcCallback.aidl
    IBinderRpcSession.aidl
    IBinderRpcTest.aidl
    ParcelableCertificateData.aidl
)

set(binderRpcTestIface-ndk_AIDLFLAGS
    -Weverything -Wno-missing-permission-annotation
    -Werror
    -Wno-mixed-oneway
)

add_aidl_library(binderRpcTestIface-ndk ndk
    "${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/"
    "${binderRpcTestIface-ndk_SRCS}"
    "${binderRpcTestIface-ndk_AIDLFLAGS}")
add_library(android::binderRpcTestIface-ndk ALIAS binderRpcTestIface-ndk)


# binderRpcTestNoKernel

set(binderRpcTestNoKernel_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTest.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestCommon.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcUniversalTests.cpp
)
add_executable(binderRpcTestNoKernel ${binderRpcTestNoKernel_SRCS})
add_test(NAME binderRpcTestNoKernel COMMAND binderRpcTestNoKernel)

set(binderRpcTestNoKernel_CFLAGS
    -DBINDER_TEST_NO_SHARED_LIBS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
    -DBINDER_NO_KERNEL_IPC_TESTING
)
target_compile_options(binderRpcTestNoKernel PRIVATE ${binderRpcTestNoKernel_CFLAGS})

set(binderRpcTestNoKernel_DEPENDENCIES
    GTest::gtest
    GTest::gtest_main
    android::binderRpcTestIface-cpp
    android::binderRpcTestIface-ndk
    android::libbinder_sdk
    android::libbinder_test_utils
    android::libbinder_tls_static
    android::libbinder_tls_test_utils
    android::liblog_stub
    crypto
    ssl
)
target_link_libraries(binderRpcTestNoKernel ${binderRpcTestNoKernel_DEPENDENCIES})


# binderRpcTestSingleThreadedNoKernel

set(binderRpcTestSingleThreadedNoKernel_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTest.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestCommon.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcUniversalTests.cpp
)
add_executable(binderRpcTestSingleThreadedNoKernel ${binderRpcTestSingleThreadedNoKernel_SRCS})
add_test(NAME binderRpcTestSingleThreadedNoKernel COMMAND binderRpcTestSingleThreadedNoKernel)

set(binderRpcTestSingleThreadedNoKernel_CFLAGS
    -DBINDER_TEST_NO_SHARED_LIBS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
    -DBINDER_RPC_SINGLE_THREADED
    -DBINDER_NO_KERNEL_IPC_TESTING
)
target_compile_options(binderRpcTestSingleThreadedNoKernel PRIVATE ${binderRpcTestSingleThreadedNoKernel_CFLAGS})

set(binderRpcTestSingleThreadedNoKernel_DEPENDENCIES
    GTest::gtest
    GTest::gtest_main
    android::binderRpcTestIface-cpp
    android::binderRpcTestIface-ndk
    android::libbinder_ndk_sdk
    android::libbinder_sdk_single_threaded
    android::libbinder_test_utils
    android::libbinder_tls_static
    android::libbinder_tls_test_utils
    android::liblog_stub
    crypto
    ssl
)
target_link_libraries(binderRpcTestSingleThreadedNoKernel ${binderRpcTestSingleThreadedNoKernel_DEPENDENCIES})


# binderRpcWireProtocolTest

set(binderRpcWireProtocolTest_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcWireProtocolTest.cpp
)
add_executable(binderRpcWireProtocolTest ${binderRpcWireProtocolTest_SRCS})
add_test(NAME binderRpcWireProtocolTest COMMAND binderRpcWireProtocolTest)

set(binderRpcWireProtocolTest_CFLAGS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
)
target_compile_options(binderRpcWireProtocolTest PRIVATE ${binderRpcWireProtocolTest_CFLAGS})

set(binderRpcWireProtocolTest_DEPENDENCIES
    GTest::gtest
    GTest::gtest_main
    android::libbinder_sdk
    android::liblog_stub
)
target_link_libraries(binderRpcWireProtocolTest ${binderRpcWireProtocolTest_DEPENDENCIES})


# binder_rpc_test_service_no_kernel

set(binder_rpc_test_service_no_kernel_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestCommon.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestService.cpp
)
add_executable(binder_rpc_test_service_no_kernel ${binder_rpc_test_service_no_kernel_SRCS})

set(binder_rpc_test_service_no_kernel_CFLAGS
    -DBINDER_TEST_NO_SHARED_LIBS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
)
target_compile_options(binder_rpc_test_service_no_kernel PRIVATE ${binder_rpc_test_service_no_kernel_CFLAGS})

set(binder_rpc_test_service_no_kernel_DEPENDENCIES
    android::binderRpcTestIface-cpp
    android::binderRpcTestIface-ndk
    android::libbinder_sdk
    android::libbinder_test_utils
    android::libbinder_tls_static
    android::libbinder_tls_test_utils
    android::liblog_stub
    crypto
    ssl
)
target_link_libraries(binder_rpc_test_service_no_kernel ${binder_rpc_test_service_no_kernel_DEPENDENCIES})


# binder_rpc_test_service_single_threaded_no_kernel

set(binder_rpc_test_service_single_threaded_no_kernel_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestCommon.cpp
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/binderRpcTestService.cpp
)
add_executable(binder_rpc_test_service_single_threaded_no_kernel ${binder_rpc_test_service_single_threaded_no_kernel_SRCS})

set(binder_rpc_test_service_single_threaded_no_kernel_CFLAGS
    -DBINDER_TEST_NO_SHARED_LIBS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
    -DBINDER_RPC_SINGLE_THREADED
)
target_compile_options(binder_rpc_test_service_single_threaded_no_kernel PRIVATE ${binder_rpc_test_service_single_threaded_no_kernel_CFLAGS})

set(binder_rpc_test_service_single_threaded_no_kernel_DEPENDENCIES
    android::binderRpcTestIface-cpp
    android::binderRpcTestIface-ndk
    android::libbinder_ndk_sdk
    android::libbinder_sdk_single_threaded
    android::libbinder_test_utils
    android::libbinder_tls_static
    android::libbinder_tls_test_utils
    android::liblog_stub
    crypto
    ssl
)
target_link_libraries(binder_rpc_test_service_single_threaded_no_kernel ${binder_rpc_test_service_single_threaded_no_kernel_DEPENDENCIES})


# libbinder_test_utils

set(libbinder_test_utils_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/FileUtils.cpp
)
add_library(libbinder_test_utils ${libbinder_test_utils_SRCS})
add_library(android::libbinder_test_utils ALIAS libbinder_test_utils)

set(libbinder_test_utils_CFLAGS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
)
target_compile_options(libbinder_test_utils PRIVATE ${libbinder_test_utils_CFLAGS})

set(libbinder_test_utils_DEPENDENCIES
    android::libbinder_headers_base
)
target_link_libraries(libbinder_test_utils ${libbinder_test_utils_DEPENDENCIES})


# libbinder_tls_test_utils

set(libbinder_tls_test_utils_SRCS
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/RpcTlsTestUtils.cpp
)
add_library(libbinder_tls_test_utils ${libbinder_tls_test_utils_SRCS})
add_library(android::libbinder_tls_test_utils ALIAS libbinder_tls_test_utils)

set(libbinder_tls_test_utils_INCLUDES
    ${ANDROID_BUILD_TOP}/frameworks/native/libs/binder/tests/include_tls_test_utils
)
target_include_directories(libbinder_tls_test_utils PUBLIC ${libbinder_tls_test_utils_INCLUDES})

set(libbinder_tls_test_utils_CFLAGS
    -Wall
    -Werror
    -Wformat
    -Wpessimizing-move
    -Wsign-compare
    -Wunused-result
    -Wzero-as-null-pointer-constant
)
target_compile_options(libbinder_tls_test_utils PRIVATE ${libbinder_tls_test_utils_CFLAGS})

set(libbinder_tls_test_utils_DEPENDENCIES
    android::libbinder_sdk
    android::libbinder_tls_static
    android::liblog_stub
    crypto
    ssl
)
target_link_libraries(libbinder_tls_test_utils ${libbinder_tls_test_utils_DEPENDENCIES})
