# Copyright (c) French Touch Factory. All Rights Reserved. # # libk4arecord_v2 : ecriture MKV compatible K4A sans aucune dependance OrbbecSDK. # # Reprend telles quelles les sources d'ecriture du wrapper (record.cpp + # matroska_write.cpp + iocallback.cpp) mais les lie a k4a_shim.cpp au lieu de # libk4a.so, qui implemente k4a_image_t / k4a_capture_t au-dessus d'OrbbecSDK # v1.10.18. playback.cpp est volontairement exclu : c'est lui qui appelle # ob_create_context(), et le recorder n'a pas besoin de relecture. set(RECORD_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../record) add_library(k4arecord_v2 SHARED ${RECORD_SRC_DIR}/sdk/record.cpp ${RECORD_SRC_DIR}/sdk/dll_main.c ${RECORD_SRC_DIR}/internal/iocallback.cpp ${RECORD_SRC_DIR}/internal/matroska_write.cpp k4a_shim.cpp ) # k4arecord_EXPORTS : exporte les k4a_record_* (macro de k4arecord_export.h). # k4a_EXPORTS : idem pour les k4a_image_* / k4a_capture_* du shim, dont la # visibilite est portee par K4A_EXPORT dans k4a.h. target_compile_definitions(k4arecord_v2 PRIVATE k4arecord_EXPORTS k4a_EXPORTS) target_include_directories(k4arecord_v2 PRIVATE ${K4A_INCLUDE_DIR} ${K4A_PRIV_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../include # k4arecord/k4arecord_export.h, genere par la cible k4arecord ${CMAKE_BINARY_DIR}/src/orbbec/record/sdk/include ) # Aucun k4a::k4a, aucun OrbbecSDK : c'est tout l'objet de cette cible. target_link_libraries(k4arecord_v2 PRIVATE k4ainternal::logging ebml::ebml matroska::matroska ) set_target_properties(k4arecord_v2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )