# Define the library
resourceManager_sources = files(
  'private/resourceManager.cpp',
  'private/resourceManagerTypes.cpp'
)

resourceManager_headers = files(
    'public/resourceManager.h',
    'public/resourceManagerTypes.h'
)

dependencies = [
    yaml_cpp_dep,
    opatio_dep,
    eos_dep,
    quill_dep,
    config_dep,
    probe_dep,
    mfem_dep,
    macros_dep,
    meshio_dep
]

libResourceHeader_dep = declare_dependency(include_directories: include_directories('public'))
# Define the libresourceManager library so it can be linked against by other parts of the build system
libresourceManager = static_library('resourceManager',
    resourceManager_sources, 
    include_directories: include_directories('public'),
    cpp_args: ['-fvisibility=default'],
    dependencies: dependencies,
    install : true)

resourceManager_dep = declare_dependency(
    include_directories: include_directories('public'),
    link_with: libresourceManager,
    dependencies: dependencies
)

# Make headers accessible
install_headers(resourceManager_headers, subdir : '4DSSE/resource')