// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    default_applicable_licenses: ["external_dng_sdk_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
    name: "external_dng_sdk_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
        "legacy_by_exception_only", // by exception only
    ],
    license_text: [
        "LICENSE",
        "LICENSE.source_code",
        "LICENSE.technology",
        "NOTICE",
        "PATENTS",
    ],
}

cc_defaults {
    name: "libdng_sdk-defaults",
    srcs: [
        "source/dng_1d_function.cpp",
        "source/dng_1d_table.cpp",
        "source/dng_abort_sniffer.cpp",
        "source/dng_area_task.cpp",
        "source/dng_bad_pixels.cpp",
        "source/dng_bottlenecks.cpp",
        "source/dng_camera_profile.cpp",
        "source/dng_color_space.cpp",
        "source/dng_color_spec.cpp",
        "source/dng_date_time.cpp",
        "source/dng_exceptions.cpp",
        "source/dng_exif.cpp",
        "source/dng_file_stream.cpp",
        "source/dng_filter_task.cpp",
        "source/dng_fingerprint.cpp",
        "source/dng_gain_map.cpp",
        "source/dng_globals.cpp",
        "source/dng_host.cpp",
        "source/dng_hue_sat_map.cpp",
        "source/dng_ifd.cpp",
        "source/dng_image.cpp",
        "source/dng_image_writer.cpp",
        "source/dng_info.cpp",
        "source/dng_iptc.cpp",
        "source/dng_jpeg_image.cpp",
        "source/dng_jpeg_memory_source.cpp",
        "source/dng_lens_correction.cpp",
        "source/dng_linearization_info.cpp",
        "source/dng_lossless_jpeg.cpp",
        "source/dng_matrix.cpp",
        "source/dng_memory.cpp",
        "source/dng_memory_stream.cpp",
        "source/dng_misc_opcodes.cpp",
        "source/dng_mosaic_info.cpp",
        "source/dng_mutex.cpp",
        "source/dng_negative.cpp",
        "source/dng_opcode_list.cpp",
        "source/dng_opcodes.cpp",
        "source/dng_orientation.cpp",
        "source/dng_parse_utils.cpp",
        "source/dng_pixel_buffer.cpp",
        "source/dng_point.cpp",
        "source/dng_preview.cpp",
        "source/dng_pthread.cpp",
        "source/dng_rational.cpp",
        "source/dng_read_image.cpp",
        "source/dng_rect.cpp",
        "source/dng_ref_counted_block.cpp",
        "source/dng_reference.cpp",
        "source/dng_render.cpp",
        "source/dng_resample.cpp",
        "source/dng_safe_arithmetic.cpp",
        "source/dng_shared.cpp",
        "source/dng_simple_image.cpp",
        "source/dng_spline.cpp",
        "source/dng_stream.cpp",
        "source/dng_string.cpp",
        "source/dng_string_list.cpp",
        "source/dng_tag_types.cpp",
        "source/dng_temperature.cpp",
        "source/dng_tile_iterator.cpp",
        "source/dng_tone_curve.cpp",
        "source/dng_utils.cpp",
        "source/dng_xy_coord.cpp",
        "source/dng_xmp.cpp",
    ],
    cflags: [
        "-DUNIX_ENV=1",
        "-DqDNGBigEndian=0",
        "-DqDNGThreadSafe=1",
        "-DqDNGUseLibJPEG=1",
        "-DqDNGUseXMP=0",
        "-DqDNGValidateTarget=1",
        "-DqAndroid=1",
        "-Werror",
        "-Wsign-compare",
        "-Wno-reorder",
        "-Wframe-larger-than=20000",

        // Ignore unused parameters.
        "-Wno-unused-parameter",

        // Some integral return types are annotated with "const."
        "-Wno-ignored-qualifiers",
    ],

    rtti: true,
    cppflags: ["-fexceptions"],

    clang: true,
    sanitize: {
        misc_undefined: [
            "unsigned-integer-overflow",
            "signed-integer-overflow",
        ],
    },
}

cc_library{
    name: "libdng_sdk",
    host_supported: true,
    vendor_available: true,
    defaults: ["libdng_sdk-defaults"],

    cflags: ["-DqDNGValidate=0"],

    shared_libs: [
        "libz",
        "libjpeg",
    ],

    target: {
        host_linux: {
            static_libs: ["libcompiler_rt-extras"],
        },
        darwin: {
            host_ldlibs: [
                "-framework AppKit",
            ],
        },
        windows: {
            enabled: true,
            cflags: [
                "-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR",
                "-Wno-null-arithmetic",
                "-Wno-sign-compare",
                "-Wno-tautological-pointer-compare",
                "-Wno-unknown-pragmas",
            ],
            static_libs: ["libcompiler_rt-extras"],
        },
    },

    export_include_dirs: ["source"],
}

// dng sdk validating version static library
// This version will print out validation warnings/errors to stderr
// and is built against the NDK for use with CTS
// ========================================================

cc_library_static {
    name: "libdng_sdk_validate",
    defaults: ["libdng_sdk-defaults"],

    cflags: ["-DqDNGValidate=1"],

    static_libs: ["libjpeg_static_ndk"],
    shared_libs: ["libz"],

    export_include_dirs: ["source"],

    sdk_version: "24",
    stl: "c++_static",
}

// dng sdk unittests for target
// ========================================================

cc_binary {
    name: "dng_validate",
    defaults: ["libdng_sdk-defaults"],
    srcs: ["source/dng_validate.cpp"],

    cflags: ["-DqDNGValidate=1"],

    shared_libs: [
        "libz",
        "libjpeg",
    ],
}

cc_binary_host {
    name: "dng_validate_host",
    defaults: ["libdng_sdk-defaults"],
    srcs: ["source/dng_validate.cpp"],

    cflags: ["-DqDNGValidate=1"],

    shared_libs: [
        "libz",
        "libjpeg",
    ],

    target: {
        darwin: {
            enabled: false, // b/67474260
        },
    },
}
