cxx_binary(
    name='zstd',
    headers=glob(['*.h'], excludes=['datagen.h', 'platform.h', 'util.h']),
    srcs=glob(['*.c'], excludes=['datagen.c']),
    deps=[
        ':datagen',
        ':util',
        '//lib:zstd',
        '//lib:zdict',
        '//lib:mem',
        '//lib:xxhash',
    ],
)

cxx_binary(
    name='zstdmt',
    headers=glob(['*.h'], excludes=['datagen.h', 'platform.h', 'util.h']),
    srcs=glob(['*.c'], excludes=['datagen.c']),
    deps=[
        ':datagen',
        ':util',
        '//lib:zstd',
        '//lib:zdict',
        '//lib:mem',
        '//lib:xxhash',
    ],
    preprocessor_flags=['-DZSTD_MULTITHREAD'],
    linker_flags=['-lpthread'],
)

cxx_binary(
    name='gzstd',
    headers=glob(['*.h'], excludes=['datagen.h', 'platform.h', 'util.h']),
    srcs=glob(['*.c'], excludes=['datagen.c']),
    deps=[
        ':datagen',
        ':util',
        '//lib:zstd',
        '//lib:zdict',
        '//lib:mem',
        '//lib:xxhash',
    ],
    preprocessor_flags=['-DZSTD_GZDECOMPRESS'],
    linker_flags=['-lz'],
)

cxx_library(
    name='datagen',
    visibility=['PUBLIC'],
    header_namespace='',
    exported_headers=['datagen.h'],
    srcs=['datagen.c'],
    deps=['//lib:mem'],
)


cxx_library(
    name='util',
    visibility=['PUBLIC'],
    header_namespace='',
    exported_headers=['util.h', 'platform.h'],
    deps=['//lib:mem'],
)