| cmake_minimum_required(VERSION 3.0) |
| set(CLIENT_VERSION 2.0.0) |
| set(LIBRARY_NAME onsclient4cpp) |
| set(PROJECT_NAME rocketmq-ons-cpp) |
| project(${PROJECT_NAME} VERSION ${CLIENT_VERSION} |
| LANGUAGES C CXX) |
| set(CMAKE_CXX_STANDARD 11) |
| set(CMAKE_BUILD_TYPE Debug) |
| |
| 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.") |
| endif () |
| |
| include(CTest) |
| |
| option(BUILD_TESTS "Build tests" ON) |
| option(BUILD_BENCHMARK "Build benchmark tests" OFF) |
| option(BUILD_DEMOS "Build demos" ON) |
| |
| include_directories(graalvm_artifacts |
| src/main/c/native |
| src/main/cpp/include |
| src/main/cpp/sdk/common) |
| |
| find_library(ROCKETMQ_CLIENT_CORE |
| NAMES rocketmq_client_core |
| HINTS ${CMAKE_SOURCE_DIR}/build) |
| |
| if (${ROCKETMQ_CLIENT_CORE-NOTFOUNT}) |
| message("find_library for rocketmq_client_core failed") |
| endif () |
| |
| add_subdirectory(src/main/cpp) |
| |
| if (BUILD_TESTS) |
| enable_testing() |
| add_subdirectory(3rd_party/google_test) |
| add_subdirectory(src/test/cpp) |
| endif () |
| |
| if (BUILD_DEMOS) |
| add_subdirectory(src/main/cpp/demos) |
| endif () |
| |
| if (BUILD_BENCHMARK) |
| set(BENCHMARK_ENABLE_TESTING OFF) |
| add_subdirectory(3rd_party/benchmark) |
| add_subdirectory(src/main/cpp/benchmark) |
| endif () |
| |