Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,16 @@ cmake_minimum_required(VERSION 3.5)
include("packaging/cmake/parseversion.cmake")
parseversion("src/rdkafka.h")

project(RdKafka VERSION ${RDKAFKA_VERSION})
project(RdKafka VERSION ${RDKAFKA_VERSION} LANGUAGES C)

# Check for CXX support
include(CheckLanguage)
check_language(CXX)
if(CMAKE_CXX_COMPILER)
enable_language(CXX)
else()
message(STATUS "C++ compiler not found, skipping C++ support")
endif()

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/packaging/cmake/Modules/")

Expand Down Expand Up @@ -279,7 +288,10 @@ install(
)

add_subdirectory(src)
add_subdirectory(src-cpp)

if(CMAKE_CXX_COMPILER)
add_subdirectory(src-cpp)
endif()

if(RDKAFKA_BUILD_EXAMPLES)
add_subdirectory(examples)
Expand Down
31 changes: 20 additions & 11 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,31 @@ endif(WIN32)
add_executable(producer producer.c ${win32_sources})
target_link_libraries(producer PUBLIC rdkafka)

add_executable(producer_cpp producer.cpp ${win32_sources})
target_link_libraries(producer_cpp PUBLIC rdkafka++)
if(CMAKE_CXX_COMPILER)
add_executable(producer_cpp producer.cpp ${win32_sources})
target_link_libraries(producer_cpp PUBLIC rdkafka++)
endif()

add_executable(consumer consumer.c ${win32_sources})
target_link_libraries(consumer PUBLIC rdkafka)

add_executable(rdkafka_performance rdkafka_performance.c ${win32_sources})
target_link_libraries(rdkafka_performance PUBLIC rdkafka)

add_executable(rdkafka_example_cpp rdkafka_example.cpp ${win32_sources})
target_link_libraries(rdkafka_example_cpp PUBLIC rdkafka++)
if(CMAKE_CXX_COMPILER)
add_executable(rdkafka_example_cpp rdkafka_example.cpp ${win32_sources})
target_link_libraries(rdkafka_example_cpp PUBLIC rdkafka++)
endif()

add_executable(rdkafka_complex_consumer_example_cpp rdkafka_complex_consumer_example.cpp ${win32_sources})
target_link_libraries(rdkafka_complex_consumer_example_cpp PUBLIC rdkafka++)
if(CMAKE_CXX_COMPILER)
add_executable(rdkafka_complex_consumer_example_cpp rdkafka_complex_consumer_example.cpp ${win32_sources})
target_link_libraries(rdkafka_complex_consumer_example_cpp PUBLIC rdkafka++)
endif()

add_executable(openssl_engine_example_cpp openssl_engine_example.cpp ${win32_sources})
target_link_libraries(openssl_engine_example_cpp PUBLIC rdkafka++)
if(CMAKE_CXX_COMPILER)
add_executable(openssl_engine_example_cpp openssl_engine_example.cpp ${win32_sources})
target_link_libraries(openssl_engine_example_cpp PUBLIC rdkafka++)
endif()

add_executable(misc misc.c ${win32_sources})
target_link_libraries(misc PUBLIC rdkafka)
Expand Down Expand Up @@ -73,7 +81,8 @@ if(NOT WIN32)
add_executable(rdkafka_complex_consumer_example rdkafka_complex_consumer_example.c)
target_link_libraries(rdkafka_complex_consumer_example PUBLIC rdkafka)

add_executable(kafkatest_verifiable_client kafkatest_verifiable_client.cpp)
target_link_libraries(kafkatest_verifiable_client PUBLIC rdkafka++)

if(CMAKE_CXX_COMPILER)
add_executable(kafkatest_verifiable_client kafkatest_verifiable_client.cpp)
target_link_libraries(kafkatest_verifiable_client PUBLIC rdkafka++)
endif()
endif(NOT WIN32)
85 changes: 48 additions & 37 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,38 +48,22 @@ set(
0050-subscribe_adds.c
0051-assign_adds.c
0052-msg_timestamps.c
0053-stats_cb.cpp
0054-offset_time.cpp
0055-producer_latency.c
0056-balanced_group_mt.c
0057-invalid_topic.cpp
0058-log.cpp
0059-bsearch.cpp
0060-op_prio.cpp
0061-consumer_lag.cpp
0062-stats_event.c
0063-clusterid.cpp
0064-interceptors.c
0065-yield.cpp
0066-plugins.cpp
0067-empty_topic.cpp
0068-produce_timeout.c
0069-consumer_add_parts.c
0070-null_empty.cpp
0072-headers_ut.c
0073-headers.c
0074-producev.c
0075-retry.c
0076-produce_retry.c
0077-compaction.c
0078-c_from_cpp.cpp
0079-fork.c
0080-admin_ut.c
0081-admin.c
0082-fetch_max_bytes.cpp
0083-cb_event.c
0084-destroy_flags.c
0085-headers.cpp
0086-purge.c
0088-produce_metadata_timeout.c
0089-max_poll_interval.c
Expand All @@ -88,50 +72,32 @@ set(
0092-mixed_msgver.c
0093-holb.c
0094-idempotence_msg_timeout.c
0095-all_brokers_down.cpp
0097-ssl_verify.cpp
0098-consumer-txn.cpp
0099-commit_metadata.c
0100-thread_interceptors.cpp
0101-fetch-from-follower.cpp
0102-static_group_rebalance.c
0103-transactions.c
0104-fetch_from_follower_mock.c
0105-transactions_mock.c
0106-cgrp_sess_timeout.c
0107-topic_recreate.c
0109-auto_create_topics.cpp
0110-batch_size.cpp
0111-delay_create_topics.cpp
0112-assign_unknown_part.c
0113-cooperative_rebalance.cpp
0114-sticky_partitioning.cpp
0115-producer_auth.cpp
0116-kafkaconsumer_close.cpp
0117-mock_errors.c
0118-commit_rebalance.c
0119-consumer_auth.cpp
0120-asymmetric_subscription.c
0121-clusterid.c
0122-buffer_cleaning_after_rebalance.c
0123-connections_max_idle.c
0124-openssl_invalid_engine.c
0125-immediate_flush.c
0126-oauthbearer_oidc.c
0127-fetch_queue_backoff.cpp
0128-sasl_callback_queue.cpp
0129-fetch_aborted_msgs.c
0130-store_offsets.c
0131-connect_timeout.c
0132-strategy_ordering.c
0133-ssl_keys.c
0134-ssl_provider.c
0135-sasl_credentials.cpp
0136-resolve_cb.c
0137-barrier_batch_consume.c
0138-admin_mock.c
0139-offset_validation_mock.c
0140-commit_metadata.cpp
0142-reauthentication.c
0143-exponential_backoff_mock.c
0144-idempotence_mock.c
Expand All @@ -144,21 +110,66 @@ set(
0151-purge-brokers.c
0152-rebootstrap.c
0153-memberid.c
8000-idle.cpp
8001-fetch_from_follower_mock_manual.c
test.c
testcpp.cpp
rusage.c
)

if(CMAKE_CXX_COMPILER)
add_compile_definitions(_CXX=1)
list(APPEND sources
0053-stats_cb.cpp
0054-offset_time.cpp
0057-invalid_topic.cpp
0058-log.cpp
0059-bsearch.cpp
0060-op_prio.cpp
0061-consumer_lag.cpp
0062-stats_event.c
0063-clusterid.cpp
0065-yield.cpp
0066-plugins.cpp
0067-empty_topic.cpp
0070-null_empty.cpp
0078-c_from_cpp.cpp
0082-fetch_max_bytes.cpp
0085-headers.cpp
0095-all_brokers_down.cpp
0097-ssl_verify.cpp
0098-consumer-txn.cpp
0099-commit_metadata.c
0100-thread_interceptors.cpp
0101-fetch-from-follower.cpp
0109-auto_create_topics.cpp
0110-batch_size.cpp
0111-delay_create_topics.cpp
0113-cooperative_rebalance.cpp
0114-sticky_partitioning.cpp
0115-producer_auth.cpp
0116-kafkaconsumer_close.cpp
0119-consumer_auth.cpp
0127-fetch_queue_backoff.cpp
0128-sasl_callback_queue.cpp
0135-sasl_credentials.cpp
0140-commit_metadata.cpp
8000-idle.cpp
testcpp.cpp
)
endif()

if(NOT WIN32)
list(APPEND sources sockem.c sockem_ctrl.c)
else()
list(APPEND sources ../src/tinycthread.c ../src/tinycthread_extra.c)
endif()

add_executable(test-runner ${sources})
target_link_libraries(test-runner PUBLIC rdkafka++)

if(CMAKE_CXX_COMPILER)
target_link_libraries(test-runner PUBLIC rdkafka++)
else()
target_link_libraries(test-runner PUBLIC rdkafka)
endif()

add_test(NAME RdKafkaTestInParallel COMMAND test-runner -p5)
add_test(NAME RdKafkaTestSequentially COMMAND test-runner -p1)
Expand Down
Loading