Skip to content
Snippets Groups Projects
CMakeLists.txt 6.92 KiB
set(LIB_NAME armem_server)

armarx_component_set_name("${LIB_NAME}")
armarx_set_target("Library: ${LIB_NAME}")

SET(INSTALL_SCRIPT_MSG
    "Please use the installation script in RobotAPI/etc/mongocxx to install libmongocxx and libbsoncxx."
)

# MongoLTM
find_package(libmongocxx QUIET)
armarx_build_if(libmongocxx_FOUND "libmongocxx not available. ${INSTALL_SCRIPT_MSG}")

# LTM Encoding stuff
find_package(libbsoncxx QUIET)
armarx_build_if(libbsoncxx_FOUND "libbsoncxx not available. ${INSTALL_SCRIPT_MSG}")
armarx_build_if(OpenCV_FOUND "OpenCV not available")

set(LIBS
    ArmarXCoreInterfaces
    ArmarXCore
    RemoteGui
    RobotAPI::aron
    RobotAPI::armem

    # LTM
    RobotAPI::aron::converter::json
    RobotAPI::aron::converter::opencv
    ${LIBMONGOCXX_LIBRARIES}
    ${LIBBSONCXX_LIBRARIES}
)

set(LIB_FILES
    MemoryToIceAdapter.cpp
    MemoryRemoteGui.cpp
    RemoteGuiAronDataVisitor.cpp


    # LTM
    ltm/io/Recording.cpp
    ltm/io/Replaying.cpp

    ltm/detail/mixins/util/filesystem.cpp
    ltm/detail/mixins/util/mongodb.cpp
    ltm/detail/mixins/CachedMemoryMixin.cpp
    ltm/detail/mixins/BufferedMemoryMixin.cpp
    ltm/detail/mixins/DiskStorageMixin.cpp
    ltm/detail/mixins/MongoDBStorageMixin.cpp

    ltm/detail/MemoryItem.cpp
    ltm/detail/MemoryBase.cpp
    ltm/detail/CoreSegmentBase.cpp
    ltm/detail/ProviderSegmentBase.cpp
    ltm/detail/EntityBase.cpp
    ltm/detail/EntitySnapshotBase.cpp
    ltm/detail/EntityInstanceBase.cpp

    ltm/processors/Processors.cpp

    ltm/processors/filter/Filter.cpp
    ltm/processors/filter/frequencyFilter/FrequencyFilter.cpp
    ltm/processors/filter/equalityFilter/EqualityFilter.cpp

    ltm/processors/extractor/Extractor.cpp
    ltm/processors/extractor/imageExtractor/ImageExtractor.cpp
    ltm/processors/extractor/imageExtractor/DepthImageExtractor.cpp

    ltm/processors/converter/type/Converter.cpp
    ltm/processors/converter/type/object/Converter.cpp
    ltm/processors/converter/type/object/json/JsonConverter.cpp
    ltm/processors/converter/data/Converter.cpp
    ltm/processors/converter/data/object/Converter.cpp
    ltm/processors/converter/data/object/json/JsonConverter.cpp
    ltm/processors/converter/data/object/bson/BsonConverter.cpp
    ltm/processors/converter/data/image/Converter.cpp
    ltm/processors/converter/data/image/png/PngConverter.cpp
    ltm/processors/converter/data/image/exr/ExrConverter.cpp

    ltm/Memory.cpp
    ltm/CoreSegment.cpp
    ltm/ProviderSegment.cpp
    ltm/Entity.cpp
    ltm/EntitySnapshot.cpp
    ltm/EntityInstance.cpp

    ltm/disk/Memory.h

    # WM
    wm/memory_definitions.cpp
    wm/ice_conversions.cpp
    wm/detail/MaxHistorySize.cpp

    plugins/Plugin.cpp
    plugins/ReadOnlyPluginUser.cpp
    plugins/ReadWritePluginUser.cpp

    segment/detail/SpecializedSegment.cpp
    segment/SpecializedCoreSegment.cpp
    segment/SpecializedProviderSegment.cpp
    segment/SpecializedSegment.cpp

    query_proc/base/BaseQueryProcessorBase.cpp
    query_proc/base/EntityQueryProcessorBase.cpp
    query_proc/base/ProviderSegmentQueryProcessorBase.cpp
    query_proc/base/CoreSegmentQueryProcessorBase.cpp
    query_proc/base/MemoryQueryProcessorBase.cpp

    query_proc/ltm/detail/EntityQueryProcessorBase.cpp
    query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.cpp
    query_proc/ltm/detail/CoreSegmentQueryProcessorBase.cpp
    query_proc/ltm/detail/MemoryQueryProcessorBase.cpp
    query_proc/ltm/disk/ltm.cpp

    query_proc/wm/detail/EntityQueryProcessorBase.cpp
    query_proc/wm/detail/ProviderSegmentQueryProcessorBase.cpp
    query_proc/wm/detail/CoreSegmentQueryProcessorBase.cpp
    query_proc/wm/detail/MemoryQueryProcessorBase.cpp
    query_proc/wm/wm.cpp
)

set(LIB_HEADERS
    forward_declarations.h

    MemoryToIceAdapter.h
    MemoryRemoteGui.h
    RemoteGuiAronDataVisitor.h

    # LTM
    ltm/io/Recording.h
    ltm/io/Replaying.h

    ltm/detail/mixins/util/filesystem.h
    ltm/detail/mixins/util/mongodb.h
    ltm/detail/mixins/CachedMemoryMixin.h
    ltm/detail/mixins/BufferedMemoryMixin.h
    ltm/detail/mixins/DiskStorageMixin.h
    ltm/detail/mixins/MongoDBStorageMixin.h

    ltm/detail/MemoryItem.h
    ltm/detail/MemoryBase.h
    ltm/detail/CoreSegmentBase.h
    ltm/detail/ProviderSegmentBase.h
    ltm/detail/EntityBase.h
    ltm/detail/EntitySnapshotBase.h
    ltm/detail/EntityInstanceBase.h

    ltm/processors/Processors.h

    ltm/processors/filter/Filter.h
    ltm/processors/filter/frequencyFilter/FrequencyFilter.h
    ltm/processors/filter/equalityFilter/EqualityFilter.h

    ltm/processors/extractor/Extractor.h
    ltm/processors/extractor/imageExtractor/ImageExtractor.h
    ltm/processors/extractor/imageExtractor/DepthImageExtractor.h

    ltm/processors/converter/type/Converter.h
    ltm/processors/converter/type/object/Converter.h
    ltm/processors/converter/type/object/json/JsonConverter.h
    ltm/processors/converter/data/Converter.h
    ltm/processors/converter/data/object/Converter.h
    ltm/processors/converter/data/object/json/JsonConverter.h
    ltm/processors/converter/data/object/bson/BsonConverter.h
    ltm/processors/converter/data/image/Converter.h
    ltm/processors/converter/data/image/png/PngConverter.h
    ltm/processors/converter/data/image/exr/ExrConverter.h

    ltm/Memory.h
    ltm/CoreSegment.h
    ltm/ProviderSegment.h
    ltm/Entity.h
    ltm/EntitySnapshot.h
    ltm/EntityInstance.h

    # WM
    wm/memory_definitions.h
    wm/ice_conversions.h
    wm/detail/MaxHistorySize.h
    wm/detail/Prediction.h

    plugins.h
    plugins/Plugin.h
    plugins/ReadOnlyPluginUser.h
    plugins/ReadWritePluginUser.h

    segment/detail/SpecializedSegment.h
    segment/SpecializedCoreSegment.h
    segment/SpecializedProviderSegment.h
    segment/SpecializedSegment.h

    query_proc.h

    query_proc/base.h
    query_proc/base/BaseQueryProcessorBase.h
    query_proc/base/EntityQueryProcessorBase.h
    query_proc/base/ProviderSegmentQueryProcessorBase.h
    query_proc/base/CoreSegmentQueryProcessorBase.h
    query_proc/base/MemoryQueryProcessorBase.h

    query_proc/ltm/detail/EntityQueryProcessorBase.h
    query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.h
    query_proc/ltm/detail/CoreSegmentQueryProcessorBase.h
    query_proc/ltm/detail/MemoryQueryProcessorBase.h
    query_proc/ltm/disk/ltm.h

    query_proc/wm/detail/EntityQueryProcessorBase.h
    query_proc/wm/detail/ProviderSegmentQueryProcessorBase.h
    query_proc/wm/detail/CoreSegmentQueryProcessorBase.h
    query_proc/wm/detail/MemoryQueryProcessorBase.h
    query_proc/wm/wm.h
)

# Clear variable set by CMakeLists.txt in parent directory.
set(ARON_FILES "")

armarx_add_library(
    LIB_NAME
        "${LIB_NAME}"
    SOURCES
        "${LIB_FILES}"
    HEADERS
        "${LIB_HEADERS}"
    LIBS
        "${LIBS}"
)


add_library(RobotAPI::armem_server ALIAS "${LIB_NAME}")

target_include_directories("${LIB_NAME}" PUBLIC ${LIBMONGOCXX_INCLUDE_DIRS})
target_include_directories("${LIB_NAME}" PUBLIC ${LIBBSONCXX_INCLUDE_DIRS})

# add unit tests
add_subdirectory(test)