package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "art_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["art_license"],
}

bootstrap_go_package {
    name: "soong-art",
    pkgPath: "android/soong/art",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "blueprint-proptools",
        "soong",
        "soong-android",
        "soong-apex",
        "soong-cc",
    ],
    srcs: [
        "art.go",
        "codegen.go",
        "makevars.go",
    ],
    pluginFor: ["soong_build"],
}

art_clang_tidy_errors = [
    "android-cloexec-dup",
    "android-cloexec-fopen",
    "android-cloexec-open",
    "bugprone-argument-comment",
    "bugprone-lambda-function-name",
    "bugprone-macro-parentheses",
    "bugprone-macro-repeated-side-effects",
    "bugprone-unused-raii", // Protect scoped things like MutexLock.
    "bugprone-unused-return-value",
    "bugprone-use-after-move",
    "bugprone-virtual-near-miss",
    "misc-unused-using-decls",
    "modernize-use-bool-literals",
    "modernize-use-nullptr",
    "performance-faster-string-find",
    "performance-for-range-copy",
    "performance-implicit-conversion-in-loop",
    "performance-inefficient-string-concatenation",
    "performance-inefficient-vector-operation",
    "performance-no-automatic-move",
    "performance-noexcept-move-constructor",
    "performance-unnecessary-copy-initialization",
    "performance-unnecessary-value-param",
    "readability-duplicate-include",
    "readability-redundant-string-cstr",
]

art_clang_tidy_disabled = [
    "-google-default-arguments",
    // We have local stores that are only used for debug checks.
    "-clang-analyzer-deadcode.DeadStores",
    // We are OK with some static globals and that they can, in theory, throw.
    "-cert-err58-cpp",
    // We have lots of C-style variadic functions, and are OK with them. JNI ensures
    // that working around this warning would be extra-painful.
    "-cert-dcl50-cpp",
    "-misc-redundant-expression",
    // "Modernization" we don't agree with.
    "-modernize-use-auto",
    "-modernize-return-braced-init-list",
    "-modernize-use-default-member-init",
    "-modernize-pass-by-value",
    // The only two remaining offenders are art/openjdkjvmti/include/jvmti.h and
    // libcore/ojluni/src/main/native/jvm.h, which are both external files by Oracle
    "-modernize-use-using",
]

soong_config_module_type_import {
    from: "art/build/SoongConfig.bp",
    module_types: [
        "art_debug_defaults",
        "art_module_art_global_defaults",
        "art_module_cc_defaults",
        "art_module_java_defaults",
        "art_module_genrule_defaults",
        "art_module_prebuilt_defaults",
    ],
}

art_module_art_global_defaults {
    // Additional flags are computed by art.go

    name: "art_defaults",

    cpp_std: "gnu++17", // TODO(b/311052584): fix C++20 build and revert this line

    // Disable all ART Soong modules by default when ART prebuilts are in use.
    // TODO(b/172480617): Clean up when sources are gone from the platform tree
    // and we no longer need to support sources present when prebuilts are used.
    enabled: false,
    soong_config_variables: {
        source_build: {
            enabled: true,
        },
    },

    // This is the default visibility for the //art package, but we repeat it
    // here so that it gets merged with other visibility rules in modules
    // extending these defaults.
    visibility: ["//art:__subpackages__"],

    cflags: [
        // Base set of cflags used by all things ART.
        "-fno-rtti",
        "-ggdb3",
        "-Wall",
        "-Werror",
        "-Wextra",
        "-Wstrict-aliasing",
        "-fstrict-aliasing",
        "-Wunreachable-code",
        "-Wredundant-decls",
        "-Wshadow",
        "-Wunused",
        "-fvisibility=protected",

        // Warn about thread safety violations with clang.
        "-Wthread-safety",
        // TODO(b/144045034): turn on -Wthread-safety-negative
        //"-Wthread-safety-negative",

        // Warn if switch fallthroughs aren't annotated.
        "-Wimplicit-fallthrough",

        // Enable float equality warnings.
        "-Wfloat-equal",

        // Enable warning of converting ints to void*.
        "-Wint-to-void-pointer-cast",

        // Enable warning of wrong unused annotations.
        "-Wused-but-marked-unused",

        // Enable warning for deprecated language features.
        "-Wdeprecated",

        // Enable warning for unreachable break & return.
        "-Wunreachable-code-break",
        "-Wunreachable-code-return",

        // Disable warning for use of offsetof on non-standard layout type.
        // We use it to implement OFFSETOF_MEMBER - see macros.h.
        "-Wno-invalid-offsetof",

        // Enable inconsistent-missing-override warning. This warning is disabled by default in
        // Android.
        "-Winconsistent-missing-override",

        // Enable thread annotations for std::mutex, etc.
        "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
    ],

    arch: {
        x86: {
            avx2: {
                cflags: [
                    "-mavx2",
                    "-mfma",
                ],
            },
        },
        x86_64: {
            avx2: {
                cflags: [
                    "-mavx2",
                    "-mfma",
                ],
            },
        },
    },

    target: {
        android: {
            cflags: [
                // To use oprofile_android --callgraph, uncomment this and recompile with
                //    mmma -j art
                // "-fno-omit-frame-pointer",
                // "-marm",
                // "-mapcs",
            ],
        },
        linux: {
            cflags: [
                // Enable missing-noreturn only on non-Mac. As lots of things are not implemented for
                // Apple, it's a pain.
                "-Wmissing-noreturn",
            ],
            // Don't export symbols of statically linked libziparchive.
            // Workaround to fix ODR violations (b/264235288) in gtests.
            // `--exclude-libs` flag is not supported on windows/darwin.
            ldflags: ["-Wl,--exclude-libs=libziparchive.a"],
        },
        linux_bionic: {
            strip: {
                // Do not strip art libs when building for linux-bionic.
                // Otherwise we can't get any symbols out of crashes.
                none: true,
            },
        },
        darwin: {
            enabled: false,
        },
        windows: {
            // When the module is enabled globally in the soong_config_variables
            // stanza above, it may get enabled on windows too for some module
            // types. Hence we need to disable it explicitly.
            // TODO(b/172480617): Clean up with that.
            enabled: false,
        },
        host: {
            cflags: [
                // Bug: 15446488. We don't omit the frame pointer to work around
                // clang/libunwind bugs that cause SEGVs in run-test-004-ThreadStress.
                "-fno-omit-frame-pointer",
            ],
        },
        // The build assumes that all our x86/x86_64 hosts (such as buildbots and developer
        // desktops) support at least sse4.2/popcount. This firstly implies that the ART
        // runtime binary itself may exploit these features. Secondly, this implies that
        // the ART runtime passes these feature flags to dex2oat and JIT by calling the
        // method InstructionSetFeatures::FromCppDefines(). Since invoking dex2oat directly
        // does not pick up these flags, cross-compiling from a x86/x86_64 host to a
        // x86/x86_64 target should not be affected.
        linux_x86: {
            cflags: [
                "-msse4.2",
                "-mpopcnt",
            ],
        },
        linux_x86_64: {
            cflags: [
                "-msse4.2",
                "-mpopcnt",
            ],
        },
    },

    codegen: {
        arm: {
            cflags: ["-DART_ENABLE_CODEGEN_arm"],
        },
        arm64: {
            cflags: ["-DART_ENABLE_CODEGEN_arm64"],
        },
        riscv64: {
            cflags: ["-DART_ENABLE_CODEGEN_riscv64"],
        },
        x86: {
            cflags: ["-DART_ENABLE_CODEGEN_x86"],
        },
        x86_64: {
            cflags: ["-DART_ENABLE_CODEGEN_x86_64"],
        },
    },

    tidy_checks: art_clang_tidy_errors + art_clang_tidy_disabled,

    tidy_checks_as_errors: art_clang_tidy_errors,

    tidy_flags: [
        // The static analyzer treats DCHECK as always enabled; we sometimes get
        // false positives when we use DCHECKs with code that relies on NDEBUG.
        "-extra-arg=-UNDEBUG",
        // clang-tidy complains about functions like:
        // void foo() { CHECK(kIsFooEnabled); /* do foo... */ }
        // not being marked noreturn if kIsFooEnabled is false.
        "-extra-arg=-Wno-missing-noreturn",
        // Because tidy doesn't like our flow checks for compile-time configuration and thinks that
        // the following code is dead (it is, but not for all configurations), disable unreachable
        // code detection in Clang for tidy builds. It is still on for regular build steps, so we
        // will still get the "real" errors.
        "-extra-arg=-Wno-unreachable-code",
    ],

    min_sdk_version: "31",
}

// Used to generate binaries that can be backed by transparent hugepages.
cc_defaults {
    name: "art_hugepage_defaults",
    arch: {
        arm64: {
            ldflags: ["-z max-page-size=0x200000"],
        },
        riscv64: {
            ldflags: ["-z max-page-size=0x200000"],
        },
        x86_64: {
            ldflags: ["-z max-page-size=0x200000"],
        },
    },
}

art_debug_defaults {
    name: "art_debug_defaults",
    defaults: ["art_defaults"],
    visibility: ["//art:__subpackages__"],
    cflags: [
        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
        "-DVIXL_DEBUG",
        "-UNDEBUG",
    ],
    asflags: [
        "-UNDEBUG",
    ],
    target: {
        // This has to be duplicated for android and host to make sure it
        // comes after the -Wframe-larger-than warnings inserted by art.go
        // target-specific properties
        android: {
            cflags: ["-Wno-frame-larger-than="],
        },
        host: {
            cflags: ["-Wno-frame-larger-than="],
        },
    },
    soong_config_variables: {
        art_debug_opt_flag: {
            cflags: ["%s"],
            conditions_default: {
                cflags: ["-Og"],
            },
        },
    },
}

// A version of conscrypt only for enabling the "-hostdex" version to test ART on host.
java_library {
    // We need our own name to not clash with the conscrypt library.
    name: "conscrypt-host",
    installable: true,
    hostdex: true,
    static_libs: ["conscrypt-for-host"],

    // Tests and build files rely on this file to be installed as "conscrypt-hostdex",
    // therefore set a stem. Without it, the file would be installed as
    // "conscrypt-host-hostdex".
    stem: "conscrypt",
    sdk_version: "core_platform",
    target: {
        hostdex: {
            required: ["libjavacrypto"],
        },
        darwin: {
            // required module "libjavacrypto" is disabled on darwin
            enabled: false,
        },
    },
}

// A version of core-icu4j only for enabling the "-hostdex" version to test ART on host.
java_library {
    // We need our own name to not clash with the core-icu4j library.
    name: "core-icu4j-host",
    installable: true,
    hostdex: true,
    static_libs: ["core-icu4j-for-host"],

    // Tests and build files rely on this file to be installed as "core-icu4j-hostdex",
    // therefore set a stem. Without it, the file would be installed as
    // "core-icu4j-host-hostdex".
    stem: "core-icu4j",
    sdk_version: "core_platform",
    target: {
        hostdex: {
            required: ["libicu_jni"],
        },
    },
}

// Defaults for different module types to enable them only when building ART
// from sources. TODO(b/172480617): Clean up when sources are gone from the
// platform tree and we no longer need to support sources present when prebuilts
// are used.

art_module_cc_defaults {
    name: "art_module_source_build_defaults",
    defaults_visibility: [
        "//art:__subpackages__",
        "//libcore:__subpackages__",
        "//libnativehelper:__subpackages__",
    ],
    enabled: false,
    soong_config_variables: {
        source_build: {
            enabled: true,
        },
    },
    target: {
        windows: {
            // Windows is disabled by default, but if we set enabled:true
            // globally above we need to disable it explicitly.
            enabled: false,
        },
    },
}

art_module_java_defaults {
    name: "art_module_source_build_java_defaults",
    defaults_visibility: [
        "//art:__subpackages__",
        "//libcore:__subpackages__",
        "//libnativehelper:__subpackages__",
    ],
    enabled: false,
    soong_config_variables: {
        source_build: {
            enabled: true,
        },
    },
    target: {
        windows: {
            enabled: false,
        },
    },
}

art_module_genrule_defaults {
    name: "art_module_source_build_genrule_defaults",
    defaults_visibility: [
        "//art:__subpackages__",
        "//libcore:__subpackages__",
        "//libnativehelper:__subpackages__",
    ],
    enabled: false,
    soong_config_variables: {
        source_build: {
            enabled: true,
        },
    },
    target: {
        windows: {
            enabled: false,
        },
    },
}

art_module_prebuilt_defaults {
    name: "art_module_source_build_prebuilt_defaults",
    defaults_visibility: [
        "//art:__subpackages__",
        "//libcore:__subpackages__",
        "//libnativehelper:__subpackages__",
    ],
    enabled: false,
    soong_config_variables: {
        source_build: {
            enabled: true,
        },
    },
    target: {
        windows: {
            enabled: false,
        },
    },
}
