Skip to content

Commit 45481f3

Browse files
committed
fixed macos build
1 parent 5a745d6 commit 45481f3

File tree

5 files changed

+32
-12
lines changed

5 files changed

+32
-12
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ set(test_dir "${CMAKE_SOURCE_DIR}/test")
2626
set(include_dir "${CMAKE_SOURCE_DIR}/include")
2727
set(submodules_dir "${CMAKE_SOURCE_DIR}/submodules")
2828

29+
set(CXX_FLAG_SET "")
2930
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
3031
# Disable PSABI warnings in GCC (on RPi).
3132
list(APPEND CXX_FLAG_SET "-Wno-psabi")
3233
endif()
33-
3434
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAG_SET}>")
3535

3636
# clang-format

init.d/ocvsmd.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ unique_id = []
1414
# UDP has priorioty over CAN if both types are present.
1515
# Supported formats:
1616
# - 'udp://<ip4>'
17-
# - 'socketcan:<can_device>'
17+
# - 'socketcan:<can_device>' (linux only)
1818
interfaces = [
1919
'udp://127.0.0.1',
2020
]

src/daemon/engine/CMakeLists.txt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,19 @@ target_include_directories(udpard
3636
INTERFACE SYSTEM ${submodules_dir}/libudpard/libudpard
3737
)
3838

39-
add_library(canard
40-
${submodules_dir}/libcanard/libcanard/canard.c
41-
)
42-
target_include_directories(canard
43-
INTERFACE SYSTEM ${submodules_dir}/libcanard/libcanard
44-
)
39+
if (${PLATFORM_OS_TYPE} STREQUAL "linux")
40+
add_library(canard
41+
${submodules_dir}/libcanard/libcanard/canard.c
42+
)
43+
target_include_directories(canard
44+
INTERFACE SYSTEM ${submodules_dir}/libcanard/libcanard
45+
)
46+
endif ()
4547

4648
add_library(ocvsmd_engine
4749
config.cpp
4850
cyphal/file_provider.cpp
4951
engine.cpp
50-
platform/can/socketcan.c
5152
platform/udp/udp.c
5253
svc/file_server/list_roots_service.cpp
5354
svc/file_server/pop_root_service.cpp
@@ -58,10 +59,17 @@ add_library(ocvsmd_engine
5859
)
5960
target_link_libraries(ocvsmd_engine
6061
PUBLIC udpard
61-
PUBLIC canard
6262
PUBLIC ${engine_transpiled}
6363
PUBLIC ocvsmd_common
6464
)
65+
if (${PLATFORM_OS_TYPE} STREQUAL "linux")
66+
target_sources(ocvsmd_engine
67+
platform/can/socketcan.c
68+
)
69+
target_link_libraries(ocvsmd_engine
70+
PUBLIC canard
71+
)
72+
endif ()
6573
target_include_directories(ocvsmd_engine
6674
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
6775
)

src/daemon/engine/cyphal/transport_helpers.hpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@
1010

1111
#include <cetl/pf17/cetlpf.hpp>
1212
#include <libcyphal/errors.hpp>
13-
#include <libcyphal/transport/can/can_transport.hpp>
1413
#include <libcyphal/transport/errors.hpp>
1514
#include <libcyphal/transport/udp/udp_transport.hpp>
1615

1716
#include <spdlog/fmt/fmt.h>
1817

18+
#ifdef __linux__
19+
#include <libcyphal/transport/can/can_transport.hpp>
20+
#endif
21+
1922
namespace ocvsmd
2023
{
2124
namespace daemon
@@ -61,6 +64,8 @@ struct TransportHelpers
6164

6265
}; // Printers
6366

67+
#ifdef __linux__
68+
6469
struct CanTransientErrorReporter
6570
{
6671
using Report = libcyphal::transport::can::ICanTransport::TransientErrorReport;
@@ -111,6 +116,8 @@ struct TransportHelpers
111116

112117
}; // CanTransientErrorReporter
113118

119+
#endif // __linux__
120+
114121
struct UdpTransientErrorReporter
115122
{
116123
using Report = libcyphal::transport::udp::IUdpTransport::TransientErrorReport;

src/daemon/engine/engine.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#include "engine.hpp"
77

88
#include "config.hpp"
9-
#include "cyphal/can_transport_bag.hpp"
109
#include "cyphal/file_provider.hpp"
1110
#include "cyphal/udp_transport_bag.hpp"
1211
#include "engine_helpers.hpp"
@@ -34,6 +33,10 @@
3433
#include <string>
3534
#include <utility>
3635

36+
#ifdef __linux__
37+
#include "cyphal/can_transport_bag.hpp"
38+
#endif
39+
3740
namespace ocvsmd
3841
{
3942
namespace daemon
@@ -59,11 +62,13 @@ cetl::optional<std::string> Engine::init()
5962
}
6063
else
6164
{
65+
#ifdef __linux__
6266
if (auto maybe_can_transport_bag = cyphal::CanTransportBag::make(memory_, executor_, config_))
6367
{
6468
any_transport_bag_ = std::move(maybe_can_transport_bag);
6569
}
6670
else
71+
#endif // __linux__
6772
{
6873
std::string msg = "Failed to create Cyphal transport.";
6974
logger_->error(msg);

0 commit comments

Comments
 (0)