option(ENABLE_IVCAM "Enable building with Realsense camera support" OFF) if(NOT ENABLE_IVCAM) obs_status(DISABLED "Realsense camera plugin support") return() endif() project(win-ivcam) find_package(RSSDK REQUIRED) if(NOT TARGET RSS::SDK) obs_status(FATAL_ERROR "win-ivcam -> RSSDK not found.") endif() include(IDLFileHelper) add_library(win-ivcam MODULE) add_library(OBS::ivcam ALIAS win-ivcam) add_library(seglibrary INTERFACE) add_library(Intel::seglibrary ALIAS seglibrary) add_idl_files(win-ivcam_seg_library_GENERATED_FILES seg_service/seg_service.idl) target_sources( seglibrary INTERFACE seg_library/Dependencies.h seg_library/SerServer.cpp seg_library/SegServer.h seg_library/SegServerImpl.cpp seg_library/SegServerImpl.h seg_library/SegService.h seg_library/SegImage.cpp seg_library/SegImage.h ${win-ivcam_seg_library_GENERATED_FILES}) set(MODULE_DESCRIPTION "OBS Intel(R) RealSense(TM) module") configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in win-ivcam.rc) target_sources(win-ivcam PRIVATE realsense.cpp win-ivcam.rc) target_link_libraries(win-ivcam OBS::libobs Intel::seglibrary) get_target_property(_SEGLIBRARY_SOURCES INTEL::seglibrary INTERFACE_SOURCES) foreach(_SEGLIBRARY_SOURCE ${_SEGLIBRARY_SOURCES}) get_filename_component(_EXT ${_SEGLIBRARY_SOURCE} EXT) if(${_EXT} STREQUAL "hpp" OR ${_EXT} STREQUAL "h") source_group("seg_library\\Header Files" FILES ${_SEGLIBRARY_SOURCE}) elseif(${_EXT} STREQUAL "cpp" OR ${_EXT} STREQUAL "c") source_group("seg_library\\Source Files" FILES ${_SEGLIBRARY_SOURCE}) endif() endforeach() if(CMAKE_SIZEOF_VOID_P EQUAL 4) add_subdirectory(seg_service) endif() setup_plugin_target(win-ivcam)