K. Moon | 8636cff | 2022-11-02 18:45:43 +0000 | [diff] [blame] | 1 | # Copyright 2016 The PDFium Authors |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
Tom Sepez | c026b20 | 2021-04-08 22:06:57 +0000 | [diff] [blame] | 5 | import("//build/config/clang/clang.gni") |
K. Moon | 4948d0e | 2022-11-11 18:54:40 +0000 | [diff] [blame] | 6 | import("//build/config/gclient_args.gni") |
Tom Sepez | a32f760 | 2015-01-15 09:34:34 -0800 | [diff] [blame] | 7 | import("//testing/test.gni") |
dsinclair | 038bf0b | 2016-04-30 06:00:05 -0700 | [diff] [blame] | 8 | import("pdfium.gni") |
John Abd-El-Malek | ef4dce4 | 2015-02-02 16:52:07 -0800 | [diff] [blame] | 9 | |
Tom Sepez | c3451da | 2022-08-29 17:52:22 +0000 | [diff] [blame] | 10 | group("default") { |
| 11 | testonly = true |
Tom Sepez | d9e3f3f | 2023-07-24 23:29:11 +0000 | [diff] [blame] | 12 | deps = [ ":pdfium" ] |
| 13 | if (pdf_is_standalone) { |
| 14 | deps += [ ":pdfium_all" ] |
| 15 | } |
Tom Sepez | c3451da | 2022-08-29 17:52:22 +0000 | [diff] [blame] | 16 | } |
| 17 | |
Dominik Röttsches | 4b0671a | 2017-03-30 11:07:43 +0300 | [diff] [blame] | 18 | group("freetype_common") { |
| 19 | public_deps = [] |
| 20 | if (pdf_bundle_freetype) { |
| 21 | public_deps += [ "third_party:fx_freetype" ] |
| 22 | } else { |
| 23 | public_deps += [ "//build/config/freetype" ] |
| 24 | } |
| 25 | } |
| 26 | |
weili | 0abe652 | 2016-06-06 14:41:22 -0700 | [diff] [blame] | 27 | config("pdfium_common_config") { |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 28 | cflags = [] |
Lei Zhang | 46d645f | 2021-10-11 21:13:27 +0000 | [diff] [blame] | 29 | cflags_cc = [] |
dsinclair | 6e162b5 | 2017-01-24 11:18:16 -0800 | [diff] [blame] | 30 | ldflags = [] |
Dominik Röttsches | 4b0671a | 2017-03-30 11:07:43 +0300 | [diff] [blame] | 31 | include_dirs = [ "." ] |
K. Moon | e666032 | 2022-11-15 23:24:08 +0000 | [diff] [blame] | 32 | defines = [] |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 33 | |
Felix Kauselmann | 8d72a47 | 2019-02-13 23:44:56 +0000 | [diff] [blame] | 34 | if (!use_system_libopenjpeg2) { |
| 35 | defines += [ "OPJ_STATIC" ] |
| 36 | } |
| 37 | |
Ryan Harrison | 9ce75b8 | 2018-06-06 19:45:14 +0000 | [diff] [blame] | 38 | if (pdf_enable_click_logging) { |
| 39 | defines += [ "PDF_ENABLE_CLICK_LOGGING" ] |
| 40 | } |
| 41 | |
Alan Screen | f22325c | 2024-01-31 23:51:20 +0000 | [diff] [blame] | 42 | if (pdf_use_skia && pdf_enable_fontations) { |
| 43 | defines += [ "PDF_ENABLE_FONTATIONS" ] |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 44 | } |
| 45 | |
Tom Sepez | 907b459 | 2023-01-26 20:46:39 +0000 | [diff] [blame] | 46 | if (pdf_use_partition_alloc) { |
| 47 | defines += [ "PDF_USE_PARTITION_ALLOC" ] |
| 48 | } |
| 49 | |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 50 | if (is_win) { |
| 51 | # Assume UTF-8 by default to avoid code page dependencies. |
| 52 | cflags += [ "/utf-8" ] |
| 53 | } |
Lei Zhang | 85e7dc6 | 2020-07-30 19:59:51 +0000 | [diff] [blame] | 54 | |
| 55 | if (is_clang) { |
| 56 | # Override -Wno-c++11-narrowing. |
| 57 | cflags += [ "-Wc++11-narrowing" ] |
Tom Sepez | c026b20 | 2021-04-08 22:06:57 +0000 | [diff] [blame] | 58 | |
Tom Sepez | 0496145 | 2022-01-12 21:11:43 +0000 | [diff] [blame] | 59 | # May flag some issues when converting int to size_t. |
| 60 | cflags += [ "-Wtautological-unsigned-zero-compare" ] |
Lei Zhang | 85e7dc6 | 2020-07-30 19:59:51 +0000 | [diff] [blame] | 61 | } |
| 62 | |
| 63 | if (!is_win && !is_clang) { |
Lei Zhang | 0f286c2 | 2022-04-30 01:33:32 +0000 | [diff] [blame] | 64 | cflags += [ |
| 65 | # Override -Wno-narrowing for GCC. |
| 66 | "-Wnarrowing", |
| 67 | |
| 68 | # GCC assumes that control can get past an exhaustive switch and then |
| 69 | # warns if there's no return there. |
| 70 | "-Wno-return-type", |
| 71 | ] |
Lei Zhang | 85e7dc6 | 2020-07-30 19:59:51 +0000 | [diff] [blame] | 72 | } |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 73 | |
| 74 | if (clang_use_chrome_plugins) { |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 75 | # Catch misuse of C-style pointers. |
| 76 | # TODO(crbug.com/1320670): enable for non-debug builds once this stops |
| 77 | # interfering with code generation. |
| 78 | # TODO(tsepez): enable for windows, too. |
| 79 | if (is_debug && !is_win) { |
| 80 | cflags += [ |
| 81 | "-Xclang", |
Takashi Sakamoto | 6b9d58e | 2024-06-24 17:28:22 +0000 | [diff] [blame] | 82 | "-plugin-arg-raw-ptr-plugin", |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 83 | "-Xclang", |
| 84 | "check-raw-ptr-fields", |
| 85 | |
| 86 | "-Xclang", |
Takashi Sakamoto | 6b9d58e | 2024-06-24 17:28:22 +0000 | [diff] [blame] | 87 | "-plugin-arg-raw-ptr-plugin", |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 88 | "-Xclang", |
| 89 | "raw-ptr-exclude-path=public", |
| 90 | |
| 91 | "-Xclang", |
Takashi Sakamoto | 6b9d58e | 2024-06-24 17:28:22 +0000 | [diff] [blame] | 92 | "-plugin-arg-raw-ptr-plugin", |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 93 | "-Xclang", |
| 94 | "raw-ptr-exclude-path=test", |
| 95 | |
| 96 | # TODO(tsepez): enforce raw_ref<> as well. |
| 97 | # "-Xclang", |
Takashi Sakamoto | 6b9d58e | 2024-06-24 17:28:22 +0000 | [diff] [blame] | 98 | # "-plugin-arg-raw-ptr-plugin", |
Tom Sepez | f0dc864 | 2024-04-10 01:01:47 +0000 | [diff] [blame] | 99 | # "-Xclang", |
| 100 | # "check-raw-ref-fields", |
| 101 | ] |
| 102 | defines += [ "PDF_ENABLE_UNOWNED_PTR_EXCLUSION" ] |
| 103 | } |
| 104 | |
| 105 | # Catch misuse of cppgc in XFA. |
| 106 | if (pdf_enable_xfa) { |
| 107 | cflags += [ |
| 108 | "-Xclang", |
| 109 | "-add-plugin", |
| 110 | "-Xclang", |
| 111 | "blink-gc-plugin", |
| 112 | ] |
| 113 | |
| 114 | # Disable GC plugin forbidding off-heap collections of GCed: |
| 115 | cflags += [ |
| 116 | "-Xclang", |
| 117 | "-plugin-arg-blink-gc-plugin", |
| 118 | "-Xclang", |
| 119 | "disable-off-heap-collections-of-gced-check", |
| 120 | ] |
| 121 | } |
| 122 | } |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 123 | } |
| 124 | |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 125 | config("pdfium_implementation_config") { |
| 126 | defines = [ "FPDF_IMPLEMENTATION" ] |
| 127 | visibility = [ ":pdfium_public_headers" ] |
| 128 | } |
| 129 | |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 130 | config("pdfium_public_config") { |
| 131 | defines = [] |
| 132 | |
| 133 | if (pdf_enable_v8) { |
| 134 | defines += [ "PDF_ENABLE_V8" ] |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 135 | |
Lei Zhang | 7b5740a | 2018-11-30 19:02:59 +0000 | [diff] [blame] | 136 | if (pdf_enable_xfa) { |
| 137 | defines += [ "PDF_ENABLE_XFA" ] |
| 138 | if (pdf_enable_xfa_bmp) { |
| 139 | defines += [ "PDF_ENABLE_XFA_BMP" ] |
| 140 | } |
| 141 | if (pdf_enable_xfa_gif) { |
| 142 | defines += [ "PDF_ENABLE_XFA_GIF" ] |
| 143 | } |
| 144 | if (pdf_enable_xfa_png) { |
| 145 | defines += [ "PDF_ENABLE_XFA_PNG" ] |
| 146 | } |
| 147 | if (pdf_enable_xfa_tiff) { |
| 148 | defines += [ "PDF_ENABLE_XFA_TIFF" ] |
| 149 | } |
Tom Sepez | 73c9f3b | 2017-02-27 10:12:59 -0800 | [diff] [blame] | 150 | } |
Tom Sepez | a8a39e2 | 2015-10-12 15:47:07 -0700 | [diff] [blame] | 151 | } |
Alan Screen | f22325c | 2024-01-31 23:51:20 +0000 | [diff] [blame] | 152 | |
| 153 | if (pdf_use_skia) { |
| 154 | defines += [ "PDF_USE_SKIA" ] |
| 155 | } |
weili | 0abe652 | 2016-06-06 14:41:22 -0700 | [diff] [blame] | 156 | } |
Tom Sepez | a8a39e2 | 2015-10-12 15:47:07 -0700 | [diff] [blame] | 157 | |
weili | 0abe652 | 2016-06-06 14:41:22 -0700 | [diff] [blame] | 158 | config("pdfium_core_config") { |
| 159 | cflags = [] |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 160 | configs = [ |
| 161 | ":pdfium_common_config", |
| 162 | ":pdfium_public_config", |
Lei Zhang | f4d4fee | 2019-12-04 18:06:13 +0000 | [diff] [blame] | 163 | "//build/config/compiler:noshadowing", |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 164 | ] |
Lei Zhang | d565ca7 | 2019-01-10 00:23:55 +0000 | [diff] [blame] | 165 | defines = [] |
Lei Zhang | c207ee2 | 2023-04-28 20:11:23 +0000 | [diff] [blame] | 166 | if (is_clang) { |
| 167 | cflags += [ "-Wcovered-switch-default" ] |
| 168 | } |
weili | dcc29b1 | 2016-05-27 17:58:23 -0700 | [diff] [blame] | 169 | } |
Lei Zhang | 476ac13 | 2015-11-05 20:07:27 -0800 | [diff] [blame] | 170 | |
Lei Zhang | 7a5f8ee | 2021-04-24 00:19:10 +0000 | [diff] [blame] | 171 | config("pdfium_strict_config") { |
| 172 | configs = [ |
| 173 | ":pdfium_core_config", |
| 174 | "//build/config/compiler:wexit_time_destructors", |
| 175 | "//build/config/compiler:wglobal_constructors", |
| 176 | ] |
| 177 | } |
| 178 | |
Tom Sepez | 926cd3c | 2022-02-14 20:38:35 +0000 | [diff] [blame] | 179 | config("pdfium_noshorten_config") { |
| 180 | cflags = [] |
| 181 | if (is_clang) { |
| 182 | cflags += [ "-Wshorten-64-to-32" ] |
| 183 | } |
| 184 | } |
| 185 | |
Daniel Hosseinian | 0fab9e6 | 2019-11-01 19:31:49 +0000 | [diff] [blame] | 186 | source_set("pdfium_public_headers_impl") { |
Lei Zhang | 1987bbf | 2018-10-15 23:12:06 +0000 | [diff] [blame] | 187 | sources = [ |
| 188 | "public/cpp/fpdf_deleters.h", |
| 189 | "public/cpp/fpdf_scopers.h", |
| 190 | "public/fpdf_annot.h", |
| 191 | "public/fpdf_attachment.h", |
| 192 | "public/fpdf_catalog.h", |
| 193 | "public/fpdf_dataavail.h", |
| 194 | "public/fpdf_doc.h", |
| 195 | "public/fpdf_edit.h", |
| 196 | "public/fpdf_ext.h", |
| 197 | "public/fpdf_flatten.h", |
| 198 | "public/fpdf_formfill.h", |
| 199 | "public/fpdf_fwlevent.h", |
Lei Zhang | 25661d1 | 2019-08-01 21:57:23 +0000 | [diff] [blame] | 200 | "public/fpdf_javascript.h", |
Lei Zhang | 1987bbf | 2018-10-15 23:12:06 +0000 | [diff] [blame] | 201 | "public/fpdf_ppo.h", |
| 202 | "public/fpdf_progressive.h", |
| 203 | "public/fpdf_save.h", |
| 204 | "public/fpdf_searchex.h", |
Miklos Vajna | 2b76bf9 | 2020-06-25 21:35:26 +0000 | [diff] [blame] | 205 | "public/fpdf_signature.h", |
Lei Zhang | 1987bbf | 2018-10-15 23:12:06 +0000 | [diff] [blame] | 206 | "public/fpdf_structtree.h", |
| 207 | "public/fpdf_sysfontinfo.h", |
| 208 | "public/fpdf_text.h", |
| 209 | "public/fpdf_transformpage.h", |
| 210 | "public/fpdfview.h", |
| 211 | ] |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 212 | } |
Lei Zhang | 75a486e | 2018-11-30 00:04:23 +0000 | [diff] [blame] | 213 | |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 214 | group("pdfium_public_headers") { |
Lei Zhang | 40f9d72 | 2020-01-24 00:18:11 +0000 | [diff] [blame] | 215 | public_deps = [ ":pdfium_public_headers_impl" ] |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 216 | public_configs = [ |
| 217 | ":pdfium_public_config", |
| 218 | ":pdfium_implementation_config", |
| 219 | ] |
Lei Zhang | 1987bbf | 2018-10-15 23:12:06 +0000 | [diff] [blame] | 220 | } |
| 221 | |
Daniel Hosseinian | 0fab9e6 | 2019-11-01 19:31:49 +0000 | [diff] [blame] | 222 | component("pdfium") { |
Alan Screen | 68b7871 | 2023-01-28 03:59:30 +0000 | [diff] [blame] | 223 | output_name = "pdfium" |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 224 | libs = [] |
Lei Zhang | 7a5f8ee | 2021-04-24 00:19:10 +0000 | [diff] [blame] | 225 | configs += [ ":pdfium_strict_config" ] |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 226 | public_configs = [ ":pdfium_public_config" ] |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 227 | |
| 228 | deps = [ |
Lei Zhang | 76833a6 | 2018-10-12 18:53:17 +0000 | [diff] [blame] | 229 | "constants", |
Lei Zhang | 21ce4ff | 2018-10-15 18:30:49 +0000 | [diff] [blame] | 230 | "core/fpdfapi/page", |
| 231 | "core/fpdfapi/parser", |
Lei Zhang | 8460088 | 2018-10-12 18:58:21 +0000 | [diff] [blame] | 232 | "core/fpdfdoc", |
Lei Zhang | 8460088 | 2018-10-12 18:58:21 +0000 | [diff] [blame] | 233 | "core/fxcodec", |
Lei Zhang | 995374a | 2018-10-12 19:52:04 +0000 | [diff] [blame] | 234 | "core/fxcrt", |
Lei Zhang | 8460088 | 2018-10-12 18:58:21 +0000 | [diff] [blame] | 235 | "core/fxge", |
Lei Zhang | dcab8cf | 2018-10-12 18:39:56 +0000 | [diff] [blame] | 236 | "fpdfsdk", |
| 237 | "fpdfsdk/formfiller", |
Lei Zhang | a7dec32 | 2018-10-12 18:36:51 +0000 | [diff] [blame] | 238 | "fxjs", |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 239 | ] |
| 240 | |
thestig | 73c4856 | 2016-09-06 14:07:17 -0700 | [diff] [blame] | 241 | public_deps = [ |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 242 | ":pdfium_public_headers_impl", |
Lei Zhang | 995374a | 2018-10-12 19:52:04 +0000 | [diff] [blame] | 243 | "core/fxcrt", |
thestig | 73c4856 | 2016-09-06 14:07:17 -0700 | [diff] [blame] | 244 | ] |
Tom Sepez | a8a39e2 | 2015-10-12 15:47:07 -0700 | [diff] [blame] | 245 | |
Lei Zhang | d7f51c7 | 2018-10-15 17:47:57 +0000 | [diff] [blame] | 246 | if (pdf_enable_xfa) { |
| 247 | deps += [ |
| 248 | "fpdfsdk/fpdfxfa", |
| 249 | "xfa/fxfa", |
| 250 | "xfa/fxfa/parser", |
| 251 | ] |
Lei Zhang | d7f51c7 | 2018-10-15 17:47:57 +0000 | [diff] [blame] | 252 | } |
| 253 | |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 254 | if (is_win) { |
Dan Sinclair | bc6c672 | 2015-10-22 14:58:54 -0400 | [diff] [blame] | 255 | libs += [ |
| 256 | "advapi32.lib", |
| 257 | "gdi32.lib", |
| 258 | "user32.lib", |
| 259 | ] |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 260 | } |
| 261 | |
| 262 | if (is_mac) { |
Sylvain Defresne | 7e78b97 | 2020-07-07 18:02:25 +0000 | [diff] [blame] | 263 | frameworks = [ |
Dan Sinclair | bc6c672 | 2015-10-22 14:58:54 -0400 | [diff] [blame] | 264 | "AppKit.framework", |
| 265 | "CoreFoundation.framework", |
| 266 | ] |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 267 | } |
John Abd-El-Malek | ef4dce4 | 2015-02-02 16:52:07 -0800 | [diff] [blame] | 268 | |
dan sinclair | fa171d2 | 2017-03-26 22:38:17 -0400 | [diff] [blame] | 269 | if (pdf_is_complete_lib) { |
Daniel Hosseinian | 1d0d0be | 2019-11-04 21:22:24 +0000 | [diff] [blame] | 270 | static_component_type = "static_library" |
dan sinclair | fa171d2 | 2017-03-26 22:38:17 -0400 | [diff] [blame] | 271 | complete_static_lib = true |
Tom Anderson | da89ac4 | 2018-03-21 03:56:15 +0000 | [diff] [blame] | 272 | configs -= [ "//build/config/compiler:thin_archive" ] |
dan sinclair | fa171d2 | 2017-03-26 22:38:17 -0400 | [diff] [blame] | 273 | } |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 274 | } |
| 275 | |
Dirk Pranke | f9562f5 | 2023-02-28 01:30:53 +0000 | [diff] [blame] | 276 | # Targets below this are only visible within this file. |
| 277 | visibility = [ ":*" ] |
John Abd-El-Malek | d68f9a3 | 2014-06-05 12:45:33 -0700 | [diff] [blame] | 278 | |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 279 | group("pdfium_unittest_deps") { |
Lei Zhang | dbaf3b8 | 2018-10-11 17:02:43 +0000 | [diff] [blame] | 280 | testonly = true |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 281 | public_deps = [ |
| 282 | "core/fxcrt", |
Tom Sepez | 2281853 | 2020-07-22 20:40:56 +0000 | [diff] [blame] | 283 | "testing:unit_test_support", |
Tom Sepez | 16b9d77 | 2017-04-17 09:07:48 -0700 | [diff] [blame] | 284 | "//testing/gmock", |
Dan Sinclair | fffc963 | 2016-03-08 08:57:05 -0500 | [diff] [blame] | 285 | "//testing/gtest", |
Tom Sepez | 04681f3 | 2015-01-09 13:59:19 -0800 | [diff] [blame] | 286 | ] |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 287 | visibility += [ |
| 288 | "core/*", |
| 289 | "fpdfsdk/*", |
| 290 | "fxbarcode/*", |
| 291 | "fxjs/*", |
| 292 | "xfa/*", |
| 293 | ] |
| 294 | } |
| 295 | |
| 296 | test("pdfium_unittests") { |
| 297 | testonly = true |
Lei Zhang | 40f9d72 | 2020-01-24 00:18:11 +0000 | [diff] [blame] | 298 | sources = [ "testing/unit_test_main.cpp" ] |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 299 | deps = [ |
| 300 | "core/fdrm:unittests", |
| 301 | "core/fpdfapi/edit:unittests", |
| 302 | "core/fpdfapi/font:unittests", |
| 303 | "core/fpdfapi/page:unittests", |
| 304 | "core/fpdfapi/parser:unittests", |
Lei Zhang | ac52015 | 2018-11-09 22:58:56 +0000 | [diff] [blame] | 305 | "core/fpdfapi/render:unittests", |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 306 | "core/fpdfdoc:unittests", |
| 307 | "core/fpdftext:unittests", |
| 308 | "core/fxcodec:unittests", |
| 309 | "core/fxcrt", |
| 310 | "core/fxcrt:unittests", |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 311 | "core/fxge:unittests", |
| 312 | "fpdfsdk:unittests", |
Lei Zhang | 220ef3d | 2019-02-05 20:40:54 +0000 | [diff] [blame] | 313 | "testing:unit_test_support", |
Lei Zhang | f03f781 | 2018-10-15 23:48:29 +0000 | [diff] [blame] | 314 | "//testing/gmock", |
| 315 | "//testing/gtest", |
| 316 | ] |
| 317 | configs += [ ":pdfium_core_config" ] |
Lei Zhang | a996ff4 | 2018-10-15 23:49:48 +0000 | [diff] [blame] | 318 | if (is_android) { |
| 319 | use_raw_android_executable = true |
| 320 | } |
Lei Zhang | a996ff4 | 2018-10-15 23:49:48 +0000 | [diff] [blame] | 321 | if (pdf_enable_v8) { |
| 322 | configs += [ "//v8:external_startup_data" ] |
| 323 | deps += [ |
| 324 | "fxjs:unittests", |
| 325 | "//v8", |
| 326 | ] |
Tom Sepez | 2281853 | 2020-07-22 20:40:56 +0000 | [diff] [blame] | 327 | if (pdf_enable_xfa) { |
| 328 | deps += [ |
| 329 | "core/fxcrt/css:unittests", |
| 330 | "fxbarcode:unittests", |
| 331 | "xfa/fde:unittests", |
Tom Sepez | a58a676 | 2020-10-14 00:14:53 +0000 | [diff] [blame] | 332 | "xfa/fgas/crt:unittests", |
Tom Sepez | 9290522 | 2021-12-07 00:03:27 +0000 | [diff] [blame] | 333 | "xfa/fgas/font:unittests", |
Tom Sepez | 2281853 | 2020-07-22 20:40:56 +0000 | [diff] [blame] | 334 | "xfa/fgas/layout:unittests", |
| 335 | "xfa/fxfa:unittests", |
Lei Zhang | 605b4e1 | 2022-02-24 01:43:24 +0000 | [diff] [blame] | 336 | "xfa/fxfa/formcalc:unittests", |
Tom Sepez | 2281853 | 2020-07-22 20:40:56 +0000 | [diff] [blame] | 337 | "xfa/fxfa/parser:unittests", |
| 338 | ] |
| 339 | } |
Tom Sepez | d2e023b | 2015-12-08 14:36:16 -0800 | [diff] [blame] | 340 | } |
Tom Sepez | 04681f3 | 2015-01-09 13:59:19 -0800 | [diff] [blame] | 341 | } |
Tom Sepez | 1b1bb49 | 2015-01-22 17:36:32 -0800 | [diff] [blame] | 342 | |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 343 | group("pdfium_embeddertest_deps") { |
| 344 | testonly = true |
| 345 | public_deps = [ |
| 346 | ":pdfium_public_headers", |
| 347 | "core/fxcrt", |
| 348 | "testing:embedder_test_support", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 349 | "//testing/gmock", |
| 350 | "//testing/gtest", |
| 351 | ] |
| 352 | visibility += [ |
| 353 | "core/*", |
| 354 | "fpdfsdk/*", |
| 355 | "fxjs/*", |
| 356 | "xfa/*", |
| 357 | ] |
| 358 | } |
| 359 | |
Tom Sepez | 1b1bb49 | 2015-01-22 17:36:32 -0800 | [diff] [blame] | 360 | test("pdfium_embeddertests") { |
Lei Zhang | dbaf3b8 | 2018-10-11 17:02:43 +0000 | [diff] [blame] | 361 | testonly = true |
Lei Zhang | 40f9d72 | 2020-01-24 00:18:11 +0000 | [diff] [blame] | 362 | sources = [ "testing/embedder_test_main.cpp" ] |
Tom Sepez | 1b1bb49 | 2015-01-22 17:36:32 -0800 | [diff] [blame] | 363 | deps = [ |
Tom Sepez | af33f51 | 2020-06-12 01:00:10 +0000 | [diff] [blame] | 364 | ":pdfium_embeddertest_deps", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 365 | "core/fpdfapi/edit:embeddertests", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 366 | "core/fpdfapi/parser:embeddertests", |
| 367 | "core/fpdfapi/render:embeddertests", |
| 368 | "core/fxcodec:embeddertests", |
Tom Anderson | 0db20e0 | 2019-05-14 22:38:47 +0000 | [diff] [blame] | 369 | "core/fxcrt", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 370 | "core/fxge:embeddertests", |
| 371 | "fpdfsdk:embeddertests", |
Tom Sepez | ec350d9 | 2022-10-26 15:52:36 +0000 | [diff] [blame] | 372 | "fpdfsdk/formfiller:embeddertests", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 373 | "fpdfsdk/pwl:embeddertests", |
Lei Zhang | 76833a6 | 2018-10-12 18:53:17 +0000 | [diff] [blame] | 374 | "testing/image_diff", |
Dan Sinclair | fffc963 | 2016-03-08 08:57:05 -0500 | [diff] [blame] | 375 | "//testing/gmock", |
| 376 | "//testing/gtest", |
Tom Sepez | 1b1bb49 | 2015-01-22 17:36:32 -0800 | [diff] [blame] | 377 | ] |
dsinclair | 685bb88 | 2016-04-20 07:32:39 -0700 | [diff] [blame] | 378 | include_dirs = [ "testing/gmock/include" ] |
thestig | c65e11e | 2016-08-30 21:56:33 -0700 | [diff] [blame] | 379 | configs += [ ":pdfium_core_config" ] |
| 380 | |
Lei Zhang | a996ff4 | 2018-10-15 23:49:48 +0000 | [diff] [blame] | 381 | if (is_android) { |
| 382 | ignore_all_data_deps = true |
| 383 | use_raw_android_executable = true |
| 384 | } |
| 385 | |
Tom Sepez | 452b4f3 | 2015-10-13 09:27:27 -0700 | [diff] [blame] | 386 | if (pdf_enable_v8) { |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 387 | deps += [ |
| 388 | "fxjs:embeddertests", |
| 389 | "//v8", |
Lei Zhang | 1ac47eb | 2015-12-21 11:04:44 -0800 | [diff] [blame] | 390 | ] |
Jochen Eisinger | 7ed503d | 2015-12-10 14:38:06 +0100 | [diff] [blame] | 391 | configs += [ "//v8:external_startup_data" ] |
Tom Sepez | 452b4f3 | 2015-10-13 09:27:27 -0700 | [diff] [blame] | 392 | } |
Lei Zhang | a996ff4 | 2018-10-15 23:49:48 +0000 | [diff] [blame] | 393 | |
Dan Sinclair | 14aacd5 | 2017-05-18 14:11:29 -0400 | [diff] [blame] | 394 | if (pdf_enable_xfa) { |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 395 | deps += [ |
Lei Zhang | 8345825 | 2019-03-14 20:07:20 +0000 | [diff] [blame] | 396 | "fpdfsdk/fpdfxfa:embeddertests", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 397 | "xfa/fwl:embeddertests", |
Tom Sepez | 6e4710a | 2019-05-08 17:23:18 +0000 | [diff] [blame] | 398 | "xfa/fxfa/layout:embeddertests", |
Lei Zhang | 1929d6e | 2018-10-15 23:51:28 +0000 | [diff] [blame] | 399 | "xfa/fxfa/parser:embeddertests", |
Dan Sinclair | 14aacd5 | 2017-05-18 14:11:29 -0400 | [diff] [blame] | 400 | ] |
| 401 | } |
Tom Sepez | 1b1bb49 | 2015-01-22 17:36:32 -0800 | [diff] [blame] | 402 | } |
dsinclair | 685bb88 | 2016-04-20 07:32:39 -0700 | [diff] [blame] | 403 | |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 404 | executable("pdfium_diff") { |
K. Moon | bce0a8f | 2023-07-13 20:12:24 +0000 | [diff] [blame] | 405 | visibility += [ "testing/tools:test_runner_py" ] |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 406 | testonly = true |
Lei Zhang | 40f9d72 | 2020-01-24 00:18:11 +0000 | [diff] [blame] | 407 | sources = [ "testing/image_diff/image_diff.cpp" ] |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 408 | deps = [ |
Tom Anderson | 9310106 | 2019-05-07 02:08:43 +0000 | [diff] [blame] | 409 | "core/fxcrt", |
Lei Zhang | 2420447 | 2020-08-22 00:51:02 +0000 | [diff] [blame] | 410 | "testing:path_service", |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 411 | "testing/image_diff", |
| 412 | "//build/win:default_exe_manifest", |
| 413 | ] |
Lei Zhang | 7a5f8ee | 2021-04-24 00:19:10 +0000 | [diff] [blame] | 414 | configs += [ ":pdfium_strict_config" ] |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 415 | } |
| 416 | |
Lei Zhang | f02c8bf | 2017-04-01 01:35:01 -0700 | [diff] [blame] | 417 | group("pdfium_all") { |
| 418 | testonly = true |
| 419 | deps = [ |
Tom Sepez | 1d78f4d | 2018-10-22 20:17:38 +0000 | [diff] [blame] | 420 | ":pdfium_diff", |
Lei Zhang | f02c8bf | 2017-04-01 01:35:01 -0700 | [diff] [blame] | 421 | ":pdfium_embeddertests", |
| 422 | ":pdfium_unittests", |
Tom Sepez | 7c7b4c7 | 2024-05-09 07:21:41 +0000 | [diff] [blame] | 423 | "testing:pdfium_test", |
Tom Sepez | d9e3f3f | 2023-07-24 23:29:11 +0000 | [diff] [blame] | 424 | "testing/fuzzers", |
Lei Zhang | f02c8bf | 2017-04-01 01:35:01 -0700 | [diff] [blame] | 425 | ] |
K. Moon | 55e793a | 2023-07-31 22:48:35 +0000 | [diff] [blame] | 426 | |
| 427 | if (pdf_is_standalone) { |
| 428 | deps += [ "testing/tools:test_runner_py" ] |
| 429 | } |
Lei Zhang | f02c8bf | 2017-04-01 01:35:01 -0700 | [diff] [blame] | 430 | } |
K. Moon | 1852aa0 | 2022-11-10 18:56:52 +0000 | [diff] [blame] | 431 | |
| 432 | # Makes additional targets reachable only for "gn check". These are not always |
| 433 | # built by the "all" Ninja target, which uses the "default" group, which in turn |
| 434 | # depends on the "pdfium_all" group. |
| 435 | group("gn_check") { |
| 436 | deps = [] |
| 437 | |
| 438 | # TODO(crbug.com/pdfium/1832): Remove !is_android when //third_party/expat is |
| 439 | # available. |
K. Moon | a98c089 | 2022-11-12 00:44:23 +0000 | [diff] [blame] | 440 | if (defined(checkout_skia) && checkout_skia && !is_android) { |
K. Moon | 1852aa0 | 2022-11-10 18:56:52 +0000 | [diff] [blame] | 441 | deps += [ "//skia" ] |
| 442 | } |
| 443 | } |