blob: 9edae4f7913c3ebee348a09359b0acaf4d199454 [file] [log] [blame]
Colin Cross69201422016-10-31 15:23:08 -07001// We need to build this for both the device (as a shared library)
2// and the host (as a static library for tools to use).
3
4cc_defaults {
5 name: "libpng-defaults",
6 srcs: [
7 "png.c",
8 "pngerror.c",
9 "pngget.c",
10 "pngmem.c",
11 "pngpread.c",
12 "pngread.c",
13 "pngrio.c",
14 "pngrtran.c",
15 "pngrutil.c",
16 "pngset.c",
17 "pngtrans.c",
18 "pngwio.c",
19 "pngwrite.c",
20 "pngwtran.c",
21 "pngwutil.c",
22 ],
23 cflags: [
24 "-std=gnu89",
Chih-Hung Hsieh76670a02017-09-28 14:42:50 -070025 "-Wall",
26 "-Werror",
Colin Cross69201422016-10-31 15:23:08 -070027 "-Wno-unused-parameter",
28 ],
29 arch: {
30 arm: {
31 srcs: [
32 "arm/arm_init.c",
33 "arm/filter_neon.S",
34 "arm/filter_neon_intrinsics.c",
xNombred07bb0d2020-03-10 20:17:12 +010035 "arm/palette_neon_intrinsics.c",
Colin Cross69201422016-10-31 15:23:08 -070036 ],
Jonathan Wrighte8aa59e2020-07-04 20:51:07 +020037 cflags: ["-O3"],
Colin Cross69201422016-10-31 15:23:08 -070038 },
39 arm64: {
40 srcs: [
41 "arm/arm_init.c",
42 "arm/filter_neon.S",
43 "arm/filter_neon_intrinsics.c",
xNombred07bb0d2020-03-10 20:17:12 +010044 "arm/palette_neon_intrinsics.c",
Colin Cross69201422016-10-31 15:23:08 -070045 ],
Jonathan Wrighte8aa59e2020-07-04 20:51:07 +020046 cflags: ["-O3"],
Colin Cross69201422016-10-31 15:23:08 -070047 },
48 x86: {
49 srcs: [
Leon Scroggins III3cc83ac2017-10-06 11:02:56 -040050 "intel/intel_init.c",
51 "intel/filter_sse2_intrinsics.c",
Colin Cross69201422016-10-31 15:23:08 -070052 ],
53 // Disable optimizations because they crash on windows
54 // cflags: ["-DPNG_INTEL_SSE_OPT=1"],
55 },
56 x86_64: {
57 srcs: [
Leon Scroggins III3cc83ac2017-10-06 11:02:56 -040058 "intel/intel_init.c",
59 "intel/filter_sse2_intrinsics.c",
Colin Cross69201422016-10-31 15:23:08 -070060 ],
61 // Disable optimizations because they crash on windows
62 // cflags: ["-DPNG_INTEL_SSE_OPT=1"],
63 },
64 },
Dan Willemsen57288742017-09-27 16:13:37 -070065 shared_libs: ["libz"],
Colin Cross69201422016-10-31 15:23:08 -070066 target: {
Colin Cross69201422016-10-31 15:23:08 -070067 android_x86: {
68 cflags: ["-DPNG_INTEL_SSE_OPT=1"],
69 },
70 android_x86_64: {
71 cflags: ["-DPNG_INTEL_SSE_OPT=1"],
72 },
Colin Cross69201422016-10-31 15:23:08 -070073 },
74 export_include_dirs: ["."],
Colin Cross69201422016-10-31 15:23:08 -070075}
76
77// For the host and device platform
78// =====================================================
79
80cc_library {
81 name: "libpng",
Vijay Venkatramanbdd08fc2017-05-17 15:33:00 -070082 vendor_available: true,
Jerry Zhangb626cba2018-07-17 12:19:09 -070083 recovery_available: true,
Justin Yun21693d72017-07-24 15:19:44 +090084 vndk: {
85 enabled: true,
86 },
Jiyong Park0cbd7d62018-04-09 12:11:27 +090087 double_loadable: true,
Colin Cross69201422016-10-31 15:23:08 -070088 host_supported: true,
89 defaults: ["libpng-defaults"],
90 target: {
91 windows: {
92 enabled: true,
93 },
Colin Cross69201422016-10-31 15:23:08 -070094 },
95}
96
97// For the device (static) for NDK
98// =====================================================
99
100cc_library_static {
101 name: "libpng_ndk",
102 defaults: ["libpng-defaults"],
103 cflags: ["-ftrapv"],
104
Colin Cross69201422016-10-31 15:23:08 -0700105 shared_libs: ["libz"],
106 sdk_version: "14",
107}
108
109// For testing
110// =====================================================
111
112cc_test {
Colin Cross69201422016-10-31 15:23:08 -0700113 host_supported: true,
114 gtest: false,
115 srcs: ["pngtest.c"],
116 name: "pngtest",
Chih-Hung Hsieh76670a02017-09-28 14:42:50 -0700117 cflags: ["-Wall", "-Werror"],
Colin Cross69201422016-10-31 15:23:08 -0700118 shared_libs: [
119 "libpng",
Dan Willemsen57288742017-09-27 16:13:37 -0700120 "libz",
Colin Cross69201422016-10-31 15:23:08 -0700121 ],
Colin Cross69201422016-10-31 15:23:08 -0700122}