# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("huffman_trie_generator_sources") {
  sources = [
    "bit_writer.cc",
    "bit_writer.h",
    "huffman/huffman_builder.cc",
    "huffman/huffman_builder.h",
    "trie/trie_bit_buffer.cc",
    "trie/trie_bit_buffer.h",
    "trie/trie_writer.cc",
    "trie/trie_writer.h",
    "trie_entry.cc",
    "trie_entry.h",
  ]
  deps = [
    "//base",
  ]
}

source_set("huffman_trie_generator_test_sources") {
  testonly = true
  sources = [
    "bit_writer_unittest.cc",
    "huffman/huffman_builder_unittest.cc",
    "trie/trie_bit_buffer_unittest.cc",
  ]
  deps = [
    ":huffman_trie_generator_sources",
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
