From b365dab83fcc18965afb7c5d4b977e37544be392 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Thu, 19 Aug 2021 12:44:31 +0200 Subject: video: avoid symbol redefinition with multiple backends --- video/camera.hpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/video/camera.hpp b/video/camera.hpp index d4d17c8f..189f95e1 100644 --- a/video/camera.hpp +++ b/video/camera.hpp @@ -77,18 +77,20 @@ void register_camera(std::unique_ptr metadata); #ifdef _MSC_VER // shared library targets without any symbols break cmake build -# define OTR_REGISTER_CAMERA_IMPL() \ - extern "C" __declspec(dllexport) [[maybe_unused]] void _opentrack_module(void) {} +# define OTR_REGISTER_CAMERA_IMPL(type) \ + extern "C" __declspec(dllexport) [[maybe_unused]] \ + void _opentrack_module_video_ ##type (void) {} +# define OTR_REGISTER_CAMERA_IMPL2(type) \ + OTR_REGISTER_CAMERA_IMPL(type) #else -# define OTR_REGISTER_CAMERA_IMPL() +# define OTR_REGISTER_CAMERA_IMPL2(type) #endif #define OTR_REGISTER_CAMERA2(type, ctr) \ OTR_REGISTER_CAMERA3(type, ctr) \ - OTR_REGISTER_CAMERA_IMPL() + OTR_REGISTER_CAMERA_IMPL2(type) #define OTR_REGISTER_CAMERA(type) \ OTR_REGISTER_CAMERA2(type, __COUNTER__) - namespace video { using camera_impl = impl::camera; -- cgit v1.2.3