Skip to content

Commit 61090fb

Browse files
committed
conditionally skip avro installation for arm macos
Signed-off-by: Krzysztof Milde <Krzysztof.Milde@Point72.com>
1 parent 7396b22 commit 61090fb

6 files changed

Lines changed: 29 additions & 8 deletions

File tree

.github/workflows/conda.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ jobs:
8989
post-cleanup: 'all'
9090
if: ${{ runner.os != 'Windows' }}
9191

92+
- name: Install avrocpp (not available on osx-arm64)
93+
run: micromamba install -y avrocpp
94+
shell: micromamba-shell {0}
95+
if: ${{ runner.os == 'Linux' }}
96+
9297
- uses: mamba-org/setup-micromamba@v2
9398
with:
9499
micromamba-version: '2.3.2-0'

conda/dev-environment-unix.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ channels:
44
- nodefaults
55
dependencies:
66
- astor
7-
- avrocpp
87
- bison
98
- brotli
109
- bump-my-version

cpp/cmake/modules/FindDepsKafkaAdapter.cmake

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@ cmake_minimum_required(VERSION 3.7.2)
33
if (CSP_USE_VCPKG)
44
find_package(RdKafka CONFIG REQUIRED)
55
find_package(unofficial-avro-cpp CONFIG REQUIRED)
6+
set(CSP_HAVE_AVRO ON)
67
if(NOT WIN32)
78
# Bad, but a temporary workaround for
89
# https://github.com/microsoft/vcpkg/issues/40320
910
link_directories(${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib)
1011
endif()
1112
else()
1213
find_package(RdKafka REQUIRED)
13-
find_package(Avro REQUIRED)
14+
find_package(Avro QUIET)
15+
if(Avro_FOUND)
16+
set(CSP_HAVE_AVRO ON)
17+
else()
18+
set(CSP_HAVE_AVRO OFF)
19+
message(STATUS "Avro not found - AVRO protocol support will be disabled")
20+
endif()
1421
endif()

cpp/csp/adapters/kafka/CMakeLists.txt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@ find_package(DepsKafkaAdapter REQUIRED)
2424

2525
target_link_libraries(csp_kafka_adapter PUBLIC csp_adapter_utils RdKafka::rdkafka RdKafka::rdkafka++)
2626

27-
# Link Avro library - uses different target names for vcpkg vs conda
28-
if(CSP_USE_VCPKG)
29-
target_link_libraries(csp_kafka_adapter PUBLIC unofficial::avro-cpp::avrocpp)
30-
else()
31-
target_link_libraries(csp_kafka_adapter PUBLIC Avro::avrocpp)
27+
# Link Avro library if available
28+
if(CSP_HAVE_AVRO)
29+
target_compile_definitions(csp_kafka_adapter PUBLIC CSP_HAVE_AVRO)
30+
if(CSP_USE_VCPKG)
31+
target_link_libraries(csp_kafka_adapter PUBLIC unofficial::avro-cpp::avrocpp)
32+
else()
33+
target_link_libraries(csp_kafka_adapter PUBLIC Avro::avrocpp)
34+
endif()
3235
endif()
3336

3437
install(TARGETS csp_kafka_adapter

cpp/csp/adapters/kafka/KafkaPublisher.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
#include <csp/adapters/kafka/KafkaPublisher.h>
44
#include <csp/adapters/utils/MessageWriter.h>
55
#include <csp/adapters/utils/JSONMessageWriter.h>
6+
#ifdef CSP_HAVE_AVRO
67
#include <csp/adapters/utils/AvroMessageWriter.h>
8+
#endif
79

810
#include <librdkafka/rdkafkacpp.h>
911

@@ -18,8 +20,10 @@ KafkaPublisher::KafkaPublisher( KafkaAdapterManager * mgr, const Dictionary & pr
1820
auto protocol = properties.get<std::string>( "protocol" );
1921
if( protocol == "JSON" )
2022
m_msgWriter = std::make_shared<utils::JSONMessageWriter>( properties );
23+
#ifdef CSP_HAVE_AVRO
2124
else if( protocol == "AVRO" )
2225
m_msgWriter = std::make_shared<utils::AvroMessageWriter>( properties );
26+
#endif
2327
else if( protocol != "RAW_BYTES" )
2428
CSP_THROW( NotImplemented, "msg protocol " << protocol << " not currently supported for kafka output adapters" );
2529
}

cpp/csp/adapters/utils/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
set(ADAPTER_UTILS_PUBLIC_HEADERS
2-
AvroMessageWriter.h
32
JSONMessageStructConverter.h
43
JSONMessageWriter.h
54
MessageEnums.h
@@ -10,6 +9,10 @@ set(ADAPTER_UTILS_PUBLIC_HEADERS
109
ValueDispatcher.h
1110
)
1211

12+
if(CSP_HAVE_AVRO)
13+
list(APPEND ADAPTER_UTILS_PUBLIC_HEADERS AvroMessageWriter.h)
14+
endif()
15+
1316
set(ADAPTER_UTILS_FILES
1417
JSONMessageStructConverter.cpp
1518
MessageWriter.cpp

0 commit comments

Comments
 (0)