| cmake_minimum_required(VERSION 3.0) |
| set(LIBRARY_NAME_DEMO onsclient4cpp) |
| set(PROJECT_NAME_DEMO rocketmq-ons-cpp-demo) |
| project(${PROJECT_NAME_DEMO} VERSION 1.0 |
| LANGUAGES C CXX) |
| set(CMAKE_CXX_STANDARD 11) |
| |
| if (CONAN_LIBCXX STREQUAL "libstdc++11") |
| message("-- Detect libstdc++11,Using -D_GLIBCXX_USE_CXX11_ABI=1") |
| add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1) |
| elseif (CONAN_LIBCXX STREQUAL "libstdc++") |
| message("-- Detect libstdc++, Using -D_GLIBCXX_USE_CXX11_ABI=0") |
| add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) |
| else () |
| message("-- As Default, Will not open Dual ABI.") |
| add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0 |
| endif () |
| |
| include_directories(../include) |
| |
| find_library(ROCKETMQ_CLIENT_CORE |
| NAMES rocketmq_client_core |
| HINTS ../lib) |
| |
| if (${ROCKETMQ_CLIENT_CORE-NOTFOUNT}) |
| message("find_library for rocketmq_client_core failed") |
| endif () |
| |
| find_library(ONS_CLIENT |
| NAMES ${LIBRARY_NAME_DEMO} |
| HINTS ../lib) |
| |
| if (${ONS_CLIENT-NOTFOUNT}) |
| message("find_library for rocketmq_client_core failed") |
| endif () |
| |
| macro(add_demo name source_file) |
| add_executable(${name} ${source_file}) |
| target_link_libraries(${name} pthread ${ROCKETMQ_CLIENT_CORE} ${ONS_CLIENT}) |
| set_target_properties(${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) |
| endmacro() |
| |
| add_demo(producer_demo ProducerDemo.cpp) |
| add_demo(order_producer_demo OrderProducerDemo.cpp) |
| add_demo(multi_thread_producer_demo MultiThreadProducerDemo.cpp) |
| add_demo(producer_async_demo ProducerAsyncDemo.cpp) |
| add_demo(producer_oneway_demo ProducerOnewayDemo.cpp) |
| add_demo(consumer_demo ConsumerDemo.cpp) |
| add_demo(order_consumer_demo OrderConsumerDemo.cpp) |
| add_demo(transaction_producer_demo TransactionProducerDemo.cpp) |
| |
| |
| |