xref: /aosp_15_r20/external/pdfium/Android.bp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
2*3ac0a46fSAndroid Build Coastguard Worker//     CONSULT THE OWNERS AND [email protected] BEFORE
3*3ac0a46fSAndroid Build Coastguard Worker//     DEPENDING ON IT IN YOUR PROJECT. ***
4*3ac0a46fSAndroid Build Coastguard Workerpackage {
5*3ac0a46fSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_pdfium_license"],
6*3ac0a46fSAndroid Build Coastguard Worker}
7*3ac0a46fSAndroid Build Coastguard Worker
8*3ac0a46fSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
9*3ac0a46fSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
10*3ac0a46fSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
11*3ac0a46fSAndroid Build Coastguard Worker//
12*3ac0a46fSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
13*3ac0a46fSAndroid Build Coastguard Worker//
14*3ac0a46fSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
15*3ac0a46fSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
16*3ac0a46fSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
17*3ac0a46fSAndroid Build Coastguard Worker//
18*3ac0a46fSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
19*3ac0a46fSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
20*3ac0a46fSAndroid Build Coastguard Worker// used in the current project.
21*3ac0a46fSAndroid Build Coastguard Worker// See: http://go/android-license-faq
22*3ac0a46fSAndroid Build Coastguard Workerlicense {
23*3ac0a46fSAndroid Build Coastguard Worker    name: "external_pdfium_license",
24*3ac0a46fSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
25*3ac0a46fSAndroid Build Coastguard Worker    license_kinds: [
26*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
27*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-Artistic",
28*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
29*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-FTL",
30*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
31*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-OFL", // by exception only
32*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-Zlib",
33*3ac0a46fSAndroid Build Coastguard Worker        "SPDX-license-identifier-libtiff",
34*3ac0a46fSAndroid Build Coastguard Worker        "legacy_unencumbered",
35*3ac0a46fSAndroid Build Coastguard Worker    ],
36*3ac0a46fSAndroid Build Coastguard Worker    license_text: [
37*3ac0a46fSAndroid Build Coastguard Worker        "LICENSE",
38*3ac0a46fSAndroid Build Coastguard Worker    ],
39*3ac0a46fSAndroid Build Coastguard Worker}
40*3ac0a46fSAndroid Build Coastguard Worker
41*3ac0a46fSAndroid Build Coastguard Workercc_defaults {
42*3ac0a46fSAndroid Build Coastguard Worker    name: "pdfium-common",
43*3ac0a46fSAndroid Build Coastguard Worker    cflags: [
44*3ac0a46fSAndroid Build Coastguard Worker        "-O3",
45*3ac0a46fSAndroid Build Coastguard Worker        "-fstrict-aliasing",
46*3ac0a46fSAndroid Build Coastguard Worker        "-fprefetch-loop-arrays",
47*3ac0a46fSAndroid Build Coastguard Worker        "-fexceptions",
48*3ac0a46fSAndroid Build Coastguard Worker
49*3ac0a46fSAndroid Build Coastguard Worker        "-Wno-implicit-fallthrough",
50*3ac0a46fSAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
51*3ac0a46fSAndroid Build Coastguard Worker        "-Wno-non-virtual-dtor",
52*3ac0a46fSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
53*3ac0a46fSAndroid Build Coastguard Worker
54*3ac0a46fSAndroid Build Coastguard Worker        // pdfium_common_config
55*3ac0a46fSAndroid Build Coastguard Worker        "-DOPJ_STATIC",
56*3ac0a46fSAndroid Build Coastguard Worker        "-DPNG_PREFIX",
57*3ac0a46fSAndroid Build Coastguard Worker        "-DPNG_USE_READ_MACROS",
58*3ac0a46fSAndroid Build Coastguard Worker
59*3ac0a46fSAndroid Build Coastguard Worker        // Do not export functions by default. Export only functions annotated
60*3ac0a46fSAndroid Build Coastguard Worker        // with FPDF_EXPORT.
61*3ac0a46fSAndroid Build Coastguard Worker        "-fvisibility=hidden",
62*3ac0a46fSAndroid Build Coastguard Worker
63*3ac0a46fSAndroid Build Coastguard Worker        // Macro definitions to enable FPDF_EXPORT.
64*3ac0a46fSAndroid Build Coastguard Worker        "-DCOMPONENT_BUILD",
65*3ac0a46fSAndroid Build Coastguard Worker        "-DFPDF_IMPLEMENTATION",
66*3ac0a46fSAndroid Build Coastguard Worker    ],
67*3ac0a46fSAndroid Build Coastguard Worker
68*3ac0a46fSAndroid Build Coastguard Worker    arch: {
69*3ac0a46fSAndroid Build Coastguard Worker        arm: {
70*3ac0a46fSAndroid Build Coastguard Worker            instruction_set: "arm",
71*3ac0a46fSAndroid Build Coastguard Worker        },
72*3ac0a46fSAndroid Build Coastguard Worker    },
73*3ac0a46fSAndroid Build Coastguard Worker
74*3ac0a46fSAndroid Build Coastguard Worker    include_dirs: [
75*3ac0a46fSAndroid Build Coastguard Worker        "external/freetype/include",
76*3ac0a46fSAndroid Build Coastguard Worker    ],
77*3ac0a46fSAndroid Build Coastguard Worker
78*3ac0a46fSAndroid Build Coastguard Worker    header_libs: [
79*3ac0a46fSAndroid Build Coastguard Worker        "pdfium-headers",
80*3ac0a46fSAndroid Build Coastguard Worker        "pdfium-third-party-headers",
81*3ac0a46fSAndroid Build Coastguard Worker    ],
82*3ac0a46fSAndroid Build Coastguard Worker}
83*3ac0a46fSAndroid Build Coastguard Worker
84*3ac0a46fSAndroid Build Coastguard Workercc_defaults {
85*3ac0a46fSAndroid Build Coastguard Worker    name: "pdfium-core",
86*3ac0a46fSAndroid Build Coastguard Worker
87*3ac0a46fSAndroid Build Coastguard Worker    defaults: [
88*3ac0a46fSAndroid Build Coastguard Worker        "pdfium-common",
89*3ac0a46fSAndroid Build Coastguard Worker    ],
90*3ac0a46fSAndroid Build Coastguard Worker
91*3ac0a46fSAndroid Build Coastguard Worker    exclude_srcs: [
92*3ac0a46fSAndroid Build Coastguard Worker        "**/*_unittest.cpp",
93*3ac0a46fSAndroid Build Coastguard Worker        "**/*_embeddertest.cpp",
94*3ac0a46fSAndroid Build Coastguard Worker    ],
95*3ac0a46fSAndroid Build Coastguard Worker    sdk_version: "current",
96*3ac0a46fSAndroid Build Coastguard Worker    min_sdk_version: "apex_inherit",
97*3ac0a46fSAndroid Build Coastguard Worker    apex_available: [
98*3ac0a46fSAndroid Build Coastguard Worker        "com.android.mediaprovider",
99*3ac0a46fSAndroid Build Coastguard Worker        "//apex_available:platform",
100*3ac0a46fSAndroid Build Coastguard Worker    ],
101*3ac0a46fSAndroid Build Coastguard Worker    stl: "c++_static",
102*3ac0a46fSAndroid Build Coastguard Worker}
103*3ac0a46fSAndroid Build Coastguard Worker
104*3ac0a46fSAndroid Build Coastguard Workercc_library_headers {
105*3ac0a46fSAndroid Build Coastguard Worker    name: "pdfium-headers",
106*3ac0a46fSAndroid Build Coastguard Worker    export_include_dirs: ["."],
107*3ac0a46fSAndroid Build Coastguard Worker    sdk_version: "current",
108*3ac0a46fSAndroid Build Coastguard Worker    min_sdk_version: "apex_inherit",
109*3ac0a46fSAndroid Build Coastguard Worker    apex_available: [
110*3ac0a46fSAndroid Build Coastguard Worker        "com.android.mediaprovider",
111*3ac0a46fSAndroid Build Coastguard Worker        "//apex_available:platform",
112*3ac0a46fSAndroid Build Coastguard Worker    ],
113*3ac0a46fSAndroid Build Coastguard Worker}
114*3ac0a46fSAndroid Build Coastguard Worker
115*3ac0a46fSAndroid Build Coastguard Workercc_library_headers {
116*3ac0a46fSAndroid Build Coastguard Worker    name: "pdfium-third-party-headers",
117*3ac0a46fSAndroid Build Coastguard Worker    export_include_dirs: ["third_party"],
118*3ac0a46fSAndroid Build Coastguard Worker    sdk_version: "current",
119*3ac0a46fSAndroid Build Coastguard Worker    min_sdk_version: "apex_inherit",
120*3ac0a46fSAndroid Build Coastguard Worker    apex_available: [
121*3ac0a46fSAndroid Build Coastguard Worker        "com.android.mediaprovider",
122*3ac0a46fSAndroid Build Coastguard Worker        "//apex_available:platform",
123*3ac0a46fSAndroid Build Coastguard Worker    ],
124*3ac0a46fSAndroid Build Coastguard Worker}
125*3ac0a46fSAndroid Build Coastguard Worker
126*3ac0a46fSAndroid Build Coastguard Workercc_library_shared {
127*3ac0a46fSAndroid Build Coastguard Worker    name: "libpdfium",
128*3ac0a46fSAndroid Build Coastguard Worker    defaults: ["pdfium-core"],
129*3ac0a46fSAndroid Build Coastguard Worker
130*3ac0a46fSAndroid Build Coastguard Worker    whole_static_libs: [
131*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdfsdk",
132*3ac0a46fSAndroid Build Coastguard Worker    ],
133*3ac0a46fSAndroid Build Coastguard Worker
134*3ac0a46fSAndroid Build Coastguard Worker    // Transitivity is not supported for static libraries (yet).
135*3ac0a46fSAndroid Build Coastguard Worker    // Lists the whole transitivity closure here.
136*3ac0a46fSAndroid Build Coastguard Worker    static_libs: [
137*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-agg",
138*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-cmaps",
139*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-constants",
140*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-edit",
141*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fdrm",
142*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-font",
143*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-formfiller",
144*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdfdoc",
145*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdftext",
146*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxcodec",
147*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxcrt",
148*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxge",
149*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxjs",
150*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-libopenjpeg2",
151*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-page",
152*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-parser",
153*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-pwl",
154*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-render",
155*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-skia_shared",
156*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-third_party-base",
157*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-lcms2",
158*3ac0a46fSAndroid Build Coastguard Worker    ],
159*3ac0a46fSAndroid Build Coastguard Worker
160*3ac0a46fSAndroid Build Coastguard Worker    // TODO: figure out why turning on exceptions requires manually linking libdl
161*3ac0a46fSAndroid Build Coastguard Worker    shared_libs: [
162*3ac0a46fSAndroid Build Coastguard Worker        "libdl",
163*3ac0a46fSAndroid Build Coastguard Worker        "libft2",
164*3ac0a46fSAndroid Build Coastguard Worker        "libicu",
165*3ac0a46fSAndroid Build Coastguard Worker        "libjpeg",
166*3ac0a46fSAndroid Build Coastguard Worker        "libz",
167*3ac0a46fSAndroid Build Coastguard Worker    ],
168*3ac0a46fSAndroid Build Coastguard Worker
169*3ac0a46fSAndroid Build Coastguard Worker    ldflags: [
170*3ac0a46fSAndroid Build Coastguard Worker        "-Wl,-icf=all",
171*3ac0a46fSAndroid Build Coastguard Worker    ],
172*3ac0a46fSAndroid Build Coastguard Worker
173*3ac0a46fSAndroid Build Coastguard Worker    export_include_dirs: ["public"],
174*3ac0a46fSAndroid Build Coastguard Worker}
175*3ac0a46fSAndroid Build Coastguard Worker
176*3ac0a46fSAndroid Build Coastguard Workercc_library_static {
177*3ac0a46fSAndroid Build Coastguard Worker    name: "libpdfium_static",
178*3ac0a46fSAndroid Build Coastguard Worker    defaults: ["pdfium-core"],
179*3ac0a46fSAndroid Build Coastguard Worker
180*3ac0a46fSAndroid Build Coastguard Worker    whole_static_libs: [
181*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdfsdk",
182*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-agg",
183*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-cmaps",
184*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-constants",
185*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-edit",
186*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fdrm",
187*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-font",
188*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-formfiller",
189*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdfdoc",
190*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fpdftext",
191*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxcodec",
192*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxcrt",
193*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxge",
194*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-fxjs",
195*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-libopenjpeg2",
196*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-page",
197*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-parser",
198*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-pwl",
199*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-render",
200*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-skia_shared",
201*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-third_party-base",
202*3ac0a46fSAndroid Build Coastguard Worker        "libpdfium-lcms2",
203*3ac0a46fSAndroid Build Coastguard Worker    ],
204*3ac0a46fSAndroid Build Coastguard Worker
205*3ac0a46fSAndroid Build Coastguard Worker    export_include_dirs: ["public"],
206*3ac0a46fSAndroid Build Coastguard Worker}
207*3ac0a46fSAndroid Build Coastguard Worker
208*3ac0a46fSAndroid Build Coastguard Workersubdirs = ["third_party"]
209