add_library(matador-core STATIC
  ../../include/matador/logger/basic_file_sink.hpp
  ../../include/matador/logger/file_sink.hpp
  ../../include/matador/logger/log_domain.hpp
  ../../include/matador/logger/log_level.hpp
  ../../include/matador/logger/log_manager.hpp
  ../../include/matador/logger/log_sink.hpp
  ../../include/matador/logger/logger.hpp
  ../../include/matador/logger/rotating_file_sink.hpp
  ../../include/matador/net/event_type.hpp
  ../../include/matador/net/handler.hpp
  ../../include/matador/net/os.hpp
  ../../include/matador/net/reactor.hpp
  ../../include/matador/net/select_fd_sets.hpp
  ../../include/matador/net/socket_interrupter.hpp
  ../../include/matador/object/abstract_collection_resolver.hpp
  ../../include/matador/object/abstract_type_resolver.hpp
  ../../include/matador/object/abstract_type_resolver_factory.hpp
  ../../include/matador/object/attribute.hpp
  ../../include/matador/object/basic_object_info.hpp
  ../../include/matador/object/basic_repository.hpp
  ../../include/matador/object/collection_proxy.hpp
  ../../include/matador/object/collection_resolver.hpp
  ../../include/matador/object/collection_resolver_factory.hpp
  ../../include/matador/object/error_code.hpp
  ../../include/matador/object/foreign_node_completer.hpp
  ../../include/matador/object/internal/observer_list_copy_creator.hpp
  ../../include/matador/object/internal/observer_list_creator.hpp
  ../../include/matador/object/many_to_many_relation.hpp
  ../../include/matador/object/object.hpp
  ../../include/matador/object/object_generator.hpp
  ../../include/matador/object/object_info.hpp
  ../../include/matador/object/object_proxy.hpp
  ../../include/matador/object/object_ptr.hpp
  ../../include/matador/object/object_resolver.hpp
  ../../include/matador/object/object_resolver_factory.hpp
  ../../include/matador/object/observer.hpp
  ../../include/matador/object/primary_key_resolver.hpp
  ../../include/matador/object/relation_completer.hpp
  ../../include/matador/object/relation_endpoint.hpp
  ../../include/matador/object/repository.hpp
  ../../include/matador/object/repository_node.hpp
  ../../include/matador/object/repository_node_iterator.hpp
  ../../include/matador/object/restriction.hpp
  ../../include/matador/utils/access.hpp
  ../../include/matador/utils/attribute_reader.hpp
  ../../include/matador/utils/attribute_writer.hpp
  ../../include/matador/utils/base_class.hpp
  ../../include/matador/utils/basic_type_converter.hpp
  ../../include/matador/utils/basic_types.hpp
  ../../include/matador/utils/cascade_type.hpp
  ../../include/matador/utils/constraints.hpp
  ../../include/matador/utils/convert.hpp
  ../../include/matador/utils/data_type_traits.hpp
  ../../include/matador/utils/default_type_traits.hpp
  ../../include/matador/utils/di.hpp
  ../../include/matador/utils/enum_mapper.hpp
  ../../include/matador/utils/error.hpp
  ../../include/matador/utils/errors.hpp
  ../../include/matador/utils/export.hpp
  ../../include/matador/utils/fetch_type.hpp
  ../../include/matador/utils/field_attributes.hpp
  ../../include/matador/utils/file.hpp
  ../../include/matador/utils/foreign_attributes.hpp
  ../../include/matador/utils/identifier.hpp
  ../../include/matador/utils/identifier_to_value_converter.hpp
  ../../include/matador/utils/leader_follower_thread_pool.hpp
  ../../include/matador/utils/library.hpp
  ../../include/matador/utils/macro_map.hpp
  ../../include/matador/utils/message_bus.hpp
  ../../include/matador/utils/os.hpp
  ../../include/matador/utils/placeholder.hpp
  ../../include/matador/utils/primary_key_attribute.hpp
  ../../include/matador/utils/primary_key_generator_type.hpp
  ../../include/matador/utils/result.hpp
  ../../include/matador/utils/singleton.hpp
  ../../include/matador/utils/string.hpp
  ../../include/matador/utils/thread_pool.hpp
  ../../include/matador/utils/types.hpp
  ../../include/matador/utils/uuid.hpp
  ../../include/matador/utils/value.hpp
  ../../include/matador/utils/version.hpp
  logger/basic_file_sink.cpp
  logger/file_sink.cpp
  logger/log_domain.cpp
  logger/log_level.cpp
  logger/log_manager.cpp
  logger/logger.cpp
  logger/rotating_file_sink.cpp
  object/abstract_collection_resolver.cpp
  object/attribute.cpp
  object/basic_object_info.cpp
  object/basic_repository.cpp
  object/error_code.cpp
  object/foreign_node_completer.cpp
  object/object.cpp
  object/object_generator.cpp
  object/observer.cpp
  object/relation_endpoint.cpp
  object/repository.cpp
  object/repository_node.cpp
  object/repository_node_iterator.cpp
  object/restriction.cpp
  utils/default_type_traits.cpp
  utils/error.cpp
  utils/errors.cpp
  utils/field_attributes.cpp
  utils/file.cpp
  utils/foreign_attributes.cpp
  utils/identifier.cpp
  utils/identifier_to_value_converter.cpp
  utils/leader_follower_thread_pool.cpp
  utils/library.cpp
  utils/message_bus.cpp
  utils/os.cpp
  utils/primary_key_attribute.cpp
  utils/string.cpp
  utils/thread_pool.cpp
  utils/types.cpp
  utils/uuid.cpp
  utils/value.cpp
  utils/version.cpp
  ../../include/matador/object/collection_utils.hpp
  object/collection_utils.cpp
  ../../include/matador/object/pk_field_locator.hpp
  ../../include/matador/object/object_cache.hpp
)

target_link_libraries(matador-core ${CMAKE_DL_LIBS})

target_include_directories(matador-core
  PUBLIC
  ${CMAKE_CURRENT_SOURCE_DIR}/../../include
)
