1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. 2*c8dee2aaSAndroid Build Coastguard Worker# 3*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 5*c8dee2aaSAndroid Build Coastguard Worker# The Adobe DNG SDK, an API for reading and writing DNG files. 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Workerdeclare_args() { 8*c8dee2aaSAndroid Build Coastguard Worker} 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Workerimport("../third_party.gni") 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerthird_party("dng_sdk") { 13*c8dee2aaSAndroid Build Coastguard Worker public_include_dirs = [ "../externals/dng_sdk/source" ] 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker configs = [ 16*c8dee2aaSAndroid Build Coastguard Worker "//gn/portable:add_exceptions", 17*c8dee2aaSAndroid Build Coastguard Worker "//gn/portable:add_rtti", 18*c8dee2aaSAndroid Build Coastguard Worker ] 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard Worker public_defines = [ "qDNGBigEndian=0" ] 21*c8dee2aaSAndroid Build Coastguard Worker 22*c8dee2aaSAndroid Build Coastguard Worker defines = [ 23*c8dee2aaSAndroid Build Coastguard Worker "qDNGReportErrors=0", 24*c8dee2aaSAndroid Build Coastguard Worker "qDNGThreadSafe=1", 25*c8dee2aaSAndroid Build Coastguard Worker "qDNGUseLibJPEG=1", 26*c8dee2aaSAndroid Build Coastguard Worker "qDNGUseXMP=0", 27*c8dee2aaSAndroid Build Coastguard Worker "qDNGValidate=0", 28*c8dee2aaSAndroid Build Coastguard Worker "qDNGValidateTarget=1", 29*c8dee2aaSAndroid Build Coastguard Worker "UNIX_ENV=1", 30*c8dee2aaSAndroid Build Coastguard Worker ] 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Worker deps = [ 33*c8dee2aaSAndroid Build Coastguard Worker "//third_party/libjpeg-turbo:libjpeg", 34*c8dee2aaSAndroid Build Coastguard Worker "//third_party/zlib", 35*c8dee2aaSAndroid Build Coastguard Worker ] 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Worker sources = [ 38*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/RawEnvironment.h", 39*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_1d_function.cpp", 40*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_1d_function.h", 41*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_1d_table.cpp", 42*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_1d_table.h", 43*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_abort_sniffer.cpp", 44*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_abort_sniffer.h", 45*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_area_task.cpp", 46*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_area_task.h", 47*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_assertions.h", 48*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_auto_ptr.h", 49*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_bad_pixels.cpp", 50*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_bad_pixels.h", 51*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_bottlenecks.cpp", 52*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_bottlenecks.h", 53*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_camera_profile.cpp", 54*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_camera_profile.h", 55*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_classes.h", 56*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_color_space.cpp", 57*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_color_space.h", 58*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_color_spec.cpp", 59*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_color_spec.h", 60*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_date_time.cpp", 61*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_date_time.h", 62*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_errors.h", 63*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_exceptions.cpp", 64*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_exceptions.h", 65*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_exif.cpp", 66*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_exif.h", 67*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_fast_module.h", 68*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_file_stream.cpp", 69*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_file_stream.h", 70*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_filter_task.cpp", 71*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_filter_task.h", 72*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_fingerprint.cpp", 73*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_fingerprint.h", 74*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_flags.h", 75*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_gain_map.cpp", 76*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_gain_map.h", 77*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_globals.cpp", 78*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_globals.h", 79*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_host.cpp", 80*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_host.h", 81*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_hue_sat_map.cpp", 82*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_hue_sat_map.h", 83*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_ifd.cpp", 84*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_ifd.h", 85*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_image.cpp", 86*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_image.h", 87*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_image_writer.cpp", 88*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_image_writer.h", 89*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_info.cpp", 90*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_info.h", 91*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_iptc.cpp", 92*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_iptc.h", 93*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_jpeg_image.cpp", 94*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_jpeg_image.h", 95*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_jpeg_memory_source.cpp", 96*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_jpeg_memory_source.h", 97*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_jpeglib.h", 98*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_lens_correction.cpp", 99*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_lens_correction.h", 100*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_linearization_info.cpp", 101*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_linearization_info.h", 102*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_lossless_jpeg.cpp", 103*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_lossless_jpeg.h", 104*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_matrix.cpp", 105*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_matrix.h", 106*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_memory.cpp", 107*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_memory.h", 108*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_memory_stream.cpp", 109*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_memory_stream.h", 110*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_misc_opcodes.cpp", 111*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_misc_opcodes.h", 112*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_mosaic_info.cpp", 113*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_mosaic_info.h", 114*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_mutex.cpp", 115*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_mutex.h", 116*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_negative.cpp", 117*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_negative.h", 118*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_opcode_list.cpp", 119*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_opcode_list.h", 120*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_opcodes.cpp", 121*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_opcodes.h", 122*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_orientation.cpp", 123*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_orientation.h", 124*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_parse_utils.cpp", 125*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_parse_utils.h", 126*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_pixel_buffer.cpp", 127*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_pixel_buffer.h", 128*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_point.cpp", 129*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_point.h", 130*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_preview.cpp", 131*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_preview.h", 132*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_pthread.cpp", 133*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_pthread.h", 134*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_rational.cpp", 135*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_rational.h", 136*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_read_image.cpp", 137*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_read_image.h", 138*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_rect.cpp", 139*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_rect.h", 140*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_ref_counted_block.cpp", 141*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_ref_counted_block.h", 142*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_reference.cpp", 143*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_reference.h", 144*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_render.cpp", 145*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_render.h", 146*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_resample.cpp", 147*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_resample.h", 148*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_safe_arithmetic.cpp", 149*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_safe_arithmetic.h", 150*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_sdk_limits.h", 151*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_shared.cpp", 152*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_shared.h", 153*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_simple_image.cpp", 154*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_simple_image.h", 155*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_spline.cpp", 156*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_spline.h", 157*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_stream.cpp", 158*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_stream.h", 159*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_string.cpp", 160*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_string.h", 161*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_string_list.cpp", 162*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_string_list.h", 163*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tag_codes.h", 164*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tag_types.cpp", 165*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tag_types.h", 166*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tag_values.h", 167*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_temperature.cpp", 168*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_temperature.h", 169*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tile_iterator.cpp", 170*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tile_iterator.h", 171*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tone_curve.cpp", 172*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_tone_curve.h", 173*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_types.h", 174*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_uncopyable.h", 175*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_utils.cpp", 176*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_utils.h", 177*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_xy_coord.cpp", 178*c8dee2aaSAndroid Build Coastguard Worker "../externals/dng_sdk/source/dng_xy_coord.h", 179*c8dee2aaSAndroid Build Coastguard Worker ] 180*c8dee2aaSAndroid Build Coastguard Worker 181*c8dee2aaSAndroid Build Coastguard Worker if (current_cpu == "x86" || current_cpu == "arm") { 182*c8dee2aaSAndroid Build Coastguard Worker # DNG SDK uses __builtin_smulll_overflow() to detect 64x64 bit multiply overflow. 183*c8dee2aaSAndroid Build Coastguard Worker # On some platforms, the compiler implements this with __mulodi4(). 184*c8dee2aaSAndroid Build Coastguard Worker # I can't quite figure out how to link that here, so instead here's a shim for 185*c8dee2aaSAndroid Build Coastguard Worker # __builtin_smulll_overflow() that multiplies normally assuming no overflow. 186*c8dee2aaSAndroid Build Coastguard Worker # Tracked in b/29412086. 187*c8dee2aaSAndroid Build Coastguard Worker defines += [ "__builtin_smulll_overflow(x,y,p)=(*(p)=(x)*(y), false)" ] 188*c8dee2aaSAndroid Build Coastguard Worker } 189*c8dee2aaSAndroid Build Coastguard Worker} 190