//
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// NOTE: This project is out of date. See http://b/175635923 for details. Until
// that is resolved it is not possible for us to update or expand access to
// std::filesystem.

package {
    default_applicable_licenses: ["external_libcxx_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.
// See: http://go/android-license-faq
license {
    name: "external_libcxx_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-NCSA",
    ],
    license_text: [
        "LICENSE.TXT",
    ],
}

cc_defaults {
    name: "libc++ defaults",
    host_supported: true,
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
    cflags: ["-Wall", "-Werror", "-Wno-unused-parameter"],
    cppflags: [
        "-std=c++14",
        "-fexceptions",
        "-DLIBCXX_BUILDING_LIBCXXABI",
        "-D_LIBCPP_BUILDING_LIBRARY",
    ],
    rtti: true,
    stl: "none",
    target: {
        linux_bionic: {
            enabled: true,
        },
        windows: {
            enabled: true,
            cflags: [
                "-D_LIBCPP_HAS_THREAD_API_WIN32",
                "-D_LIBCXXABI_BUILDING_LIBRARY",
                "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
                "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
                "-UWIN32_LEAN_AND_MEAN",
            ],
        },
    },
}

// host + device static lib
cc_library_static {
    name: "libc++_static",
    defaults: ["libc++ defaults"],
    vendor_available: true,
    product_available: true,
    ramdisk_available: true,
    vendor_ramdisk_available: true,
    recovery_available: true,
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    // being part of updatable apexes, this should work on older releases
    min_sdk_version: "apex_inherit",
    // sdk_version normally isn't needed as only the platform variant
    // is used, except on riscv64 which doesn't have an NDK libc++ and
    // reuses this module for sdk variants.
    sdk_version: "current",
    native_bridge_supported: true,
    srcs: [
        "src/algorithm.cpp",
        "src/any.cpp",
        "src/bind.cpp",
        "src/charconv.cpp",
        "src/chrono.cpp",
        "src/condition_variable.cpp",
        "src/debug.cpp",
        "src/exception.cpp",
        "src/future.cpp",
        "src/hash.cpp",
        "src/ios.cpp",
        "src/iostream.cpp",
        "src/locale.cpp",
        "src/memory.cpp",
        "src/mutex.cpp",
        "src/new.cpp",
        "src/optional.cpp",
        "src/random.cpp",
        "src/regex.cpp",
        "src/shared_mutex.cpp",
        "src/stdexcept.cpp",
        "src/string.cpp",
        "src/strstream.cpp",
        "src/system_error.cpp",
        "src/thread.cpp",
        "src/typeinfo.cpp",
        "src/utility.cpp",
        "src/valarray.cpp",
        "src/variant.cpp",
        "src/vector.cpp",
    ],
    whole_static_libs: [
        "libc++abi",
    ],
    target: {
        windows: {
            srcs: [
                "src/support/win32/*.cpp",
            ]
        },
    },
}

// host + device dynamic lib
cc_library_shared {
    name: "libc++",
    host_supported: true,
    vendor_available: true,
    product_available: true,
    native_bridge_supported: true,
    vndk: {
        enabled: true,
        support_system_process: true,
    },
    ramdisk_available: true,
    vendor_ramdisk_available: true,
    recovery_available: true,
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    // being part of updatable apexes, this should work on older releases
    min_sdk_version: "apex_inherit",
    // sdk_version normally isn't needed as only the platform variant
    // is used, except on riscv64 which doesn't have an NDK libc++ and
    // reuses this module for sdk variants.
    sdk_version: "current",
    whole_static_libs: ["libc++_static"],
    stl: "none",

    afdo: true,

    target: {
        darwin: {
            // TODO: LLD does not implement force_symbols_weak_list or
            // force_symbols_not_weak_list. Opt out and keep using ld64.
            use_clang_lld: false,
            unexported_symbols_list: "lib/libc++unexp.exp",
            force_symbols_not_weak_list: "lib/notweak.exp",
            force_symbols_weak_list: "lib/weak.exp",
            ldflags: [
                "-Wl,-undefined,dynamic_lookup",
            ],
        },

        linux_bionic: {
            enabled: true,
        },
    },

    header_abi_checker: {
        diff_flags: ["-allow-adding-removing-weak-symbols"],
    },
}

cc_library_static {
    name: "libc++experimental",
    defaults: ["libc++ defaults"],
    srcs: [
        "src/experimental/memory_resource.cpp",
    ],
}

// Not available to vendor modules until libc++ is updated and this library is
// merged into libc++ proper.
// Follow http://b/175635923 for progress.
cc_library_static {
    name: "libc++fs",
    ramdisk_available: true,
    recovery_available: true,
    apex_available: [
        "//apex_available:platform",
        "com.android.art",
        "com.android.art.debug",
        "com.android.btservices",
    ],
    // being part of updatable apexes, this should work on older releases
    min_sdk_version: "apex_inherit",
    defaults: ["libc++ defaults"],
    srcs: [
        "src/filesystem/directory_iterator.cpp",
        "src/filesystem/operations.cpp",
    ],
    multilib: {
        lib32: {
            // off_t usage is constrained to within the libc++ source (not the
            // headers), so we can build the filesystem library with a 64-bit
            // off_t on LP32 to get large file support without needing all users
            // of the library to match.
            cflags: ["-D_FILE_OFFSET_BITS=64"],
        },
    },
    target: {
        windows: {
            enabled: false,
        },
    },
}

// This target is used to extract the build commands for a test executable.
// See run_tests.py.
cc_binary {
    name: "libcxx_test_template",
    srcs: [
        "libcxx_test_template.cpp",
    ],
    cppflags: [
        "-fsized-deallocation",
        "-fexceptions",
        "-Wno-format-zero-length",
        "-Wno-implicit-fallthrough",
        "-Wno-non-virtual-dtor",
        "-Wno-return-stack-address",
        "-Wno-unused-local-typedef",

        "-UNDEBUG",

        // Optimization is causing relocation for nothrow new to be thrown away.
        // http://llvm.org/bugs/show_bug.cgi?id=21421
        "-O0",
    ],
    static_libs: [
        "libc++experimental",
        "libc++fs",
    ],
    rtti: true,
    local_include_dirs: [
        "test/support",
    ],
    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },
    compile_multilib: "both",
    host_supported: true,
    target: {
        linux: {
            ldflags: [
                // This makes the tests run a little faster.
                "-Wl,--strip-all",
            ],
        },
    },
    gnu_extensions: false,
    cpp_std: "c++17",
}

// Export libc++ headers for inclusion in the musl sysroot.
genrule {
    name: "libc_musl_sysroot_libc++_headers",
    visibility: ["//external/musl"],
    srcs: [
        "NOTICE",
        "include/**/*",
    ],
    out: ["libc_musl_sysroot_libc++_headers.zip"],
    tools: [
        "soong_zip",
        "zip2zip",
    ],
    cmd: "LIBCXX_DIR=$$(dirname $(location NOTICE)) && " +
        "$(location soong_zip) -o $(genDir)/sysroot.zip -symlinks=false" +
        // NOTICE
        " -j -f $(location NOTICE) " +
        // headers
        " -P include/c++ " +
        "  -C $${LIBCXX_DIR}/include " +
        "  -D $${LIBCXX_DIR}/include " +
        " && " +
        "$(location zip2zip) -i $(genDir)/sysroot.zip -o $(out) " +
        " -x include/c++/CMakeLists.txt" +
        " -x include/c++/module.modulemap " +
        " include/**/*:include " +
        " NOTICE:NOTICE.libc++",
}
