BUILD.gn 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. # Copyright 2022 The Chromium OS Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//third_party/protobuf/proto_library.gni")
  5. group("all") {
  6. deps = [
  7. ":libpuffdiff",
  8. ":libpuffin-proto",
  9. ":libpuffpatch",
  10. ":puffin",
  11. ]
  12. }
  13. config("target_defaults") {
  14. cflags = [ "-Wextra" ]
  15. cflags_cc = [
  16. "-Wnon-virtual-dtor",
  17. "-Wno-unused-parameter",
  18. ]
  19. include_dirs = [
  20. "//third_party/puffin/src/include",
  21. "//third_party",
  22. "//components",
  23. ]
  24. defines = [ "_FILE_OFFSET_BITS=64" ]
  25. }
  26. proto_library("libpuffin-proto") {
  27. sources = [ "src/puffin.proto" ]
  28. proto_out_dir = "puffin/src"
  29. }
  30. static_library("libpuffpatch") {
  31. configs += [ ":target_defaults" ]
  32. complete_static_lib = true
  33. deps = [
  34. ":libpuffin-proto",
  35. "//base",
  36. "//components/zucchini:zucchini_lib",
  37. "//third_party/brotli:dec",
  38. "//third_party/brotli:enc",
  39. ]
  40. sources = [
  41. "src/bit_reader.cc",
  42. "src/bit_writer.cc",
  43. "src/brotli_util.cc",
  44. "src/file_stream.cc",
  45. "src/huffer.cc",
  46. "src/huffman_table.cc",
  47. "src/memory_stream.cc",
  48. "src/puff_reader.cc",
  49. "src/puff_writer.cc",
  50. "src/puffer.cc",
  51. "src/puffin_stream.cc",
  52. "src/puffpatch.cc",
  53. ]
  54. }
  55. static_library("libpuffdiff") {
  56. configs += [ ":target_defaults" ]
  57. deps = [
  58. ":libpuffin-proto",
  59. "//base",
  60. "//components/zucchini:zucchini_lib",
  61. "//third_party/brotli:dec",
  62. "//third_party/brotli:enc",
  63. ]
  64. sources = [
  65. "src/file_stream.cc",
  66. "src/puffdiff.cc",
  67. "src/utils.cc",
  68. ]
  69. }
  70. executable("puffin") {
  71. configs += [ ":target_defaults" ]
  72. deps = [
  73. ":libpuffdiff",
  74. ":libpuffpatch",
  75. "//base",
  76. ]
  77. sources = [ "src/chromium_main.cc" ]
  78. }
  79. config("test_defaults") {
  80. cflags = [
  81. "-Wextra",
  82. "-Wno-sign-compare",
  83. ]
  84. cflags_cc = [
  85. "-Wnon-virtual-dtor",
  86. "-Wno-unused-parameter",
  87. ]
  88. include_dirs = [
  89. "../protobuf/src",
  90. "src/include",
  91. "//third_party",
  92. "//components",
  93. ]
  94. defines = [ "_FILE_OFFSET_BITS=64" ]
  95. }
  96. executable("puffin_unittest") {
  97. testonly = true
  98. configs += [ ":test_defaults" ]
  99. sources = [
  100. "src/bit_io_unittest.cc",
  101. "src/brotli_util_unittest.cc",
  102. "src/integration_test.cc",
  103. "src/patching_unittest.cc",
  104. "src/puff_io_unittest.cc",
  105. "src/puffin_unittest.cc",
  106. "src/stream_unittest.cc",
  107. "src/testrunner.cc",
  108. "src/unittest_common.cc",
  109. "src/utils_unittest.cc",
  110. ]
  111. data_deps = [ "//components/test/data/update_client/puffin_patch_test:puffin_patch_test_files" ]
  112. deps = [
  113. ":libpuffdiff",
  114. ":libpuffpatch",
  115. "//base",
  116. "//testing/gtest:gtest",
  117. ]
  118. }