Plugin to add Pijul support to the Nix package manager
lib_src = files(
    'compat.cpp',
    'fetcher.cpp',
    'repo.cpp',
)
lib_inc = include_directories('.')

# Nix uses these macros that are only defined in its own build
lib_extra_cppflags = ['-DSYSTEM=""']

if nix_main_dep.version().version_compare('<=2.22')
    lib_extra_cppflags += ['-DHAVE_STRUCT_DIRENT_D_TYPE']
endif

lib = shared_module(
    'pijul',
    lib_src,
    dependencies: [
        nix_main_dep,
        nix_store_dep,
        nix_fetchers_dep,
    ],
    cpp_args: [
        f'-DNIX_MAJOR_VERSION=(@nix_major_version@)',
        f'-DNIX_MINOR_VERSION=(@nix_minor_version@)',
        f'-DNIX_PATCH_VERSION=(@nix_patch_version@)',
        f'-DNIX_VERSION=(((0x@nix_major_version@)<<16) | ((0x@nix_minor_version@)<<8) | (0x@nix_patch_version@))',
        '-DNIX_IS_@0@'.format(nix_impl.to_upper()),
    ] + lib_extra_cppflags,
    include_directories: lib_inc,
    install: true,
    install_dir: get_option('libdir') / 'nix/plugins',
    name_prefix: '',
)

test_lib = static_library(
    'testsupport',
    lib_src,
    include_directories: lib_inc,
)