//
// 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,
        },
    },
}

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",
        "-fcoroutines-ts",
        "-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++",
}
