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',
    ],
    preprocessor_flags=[
        '-DZSTD_GZCOMPRESS',
        '-DZSTD_GZDECOMPRESS',
        '-DZSTD_LZMACOMPRESS',
        '-DZSTD_LZMADECOMPRES',
        '-DZSTD_LZ4COMPRESS',
        '-DZSTD_LZ4DECOMPRES',
    ],
    linker_flags=[
        '-lz',
        '-llzma',
        '-llz4',
    ],
)

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'],
)
