Home | History | Annotate | Download | only in libcxxabi
      1 //
      2 // Copyright (C) 2014 The Android Open Source Project
      3 //
      4 // Licensed under the Apache License, Version 2.0 (the "License");
      5 // you may not use this file except in compliance with the License.
      6 // You may obtain a copy of the License at
      7 //
      8 //      http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unless required by applicable law or agreed to in writing, software
     11 // distributed under the License is distributed on an "AS IS" BASIS,
     12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 // See the License for the specific language governing permissions and
     14 // limitations under the License.
     15 //
     16 
     17 cc_library_static {
     18     name: "libc++abi",
     19     host_supported: true,
     20     vendor_available: true,
     21     srcs: [
     22         "src/abort_message.cpp",
     23         "src/cxa_aux_runtime.cpp",
     24         "src/cxa_default_handlers.cpp",
     25         "src/cxa_demangle.cpp",
     26         "src/cxa_exception.cpp",
     27         "src/cxa_exception_storage.cpp",
     28         "src/cxa_guard.cpp",
     29         "src/cxa_handlers.cpp",
     30         "src/cxa_personality.cpp",
     31         "src/cxa_thread_atexit.cpp",
     32         "src/cxa_unexpected.cpp",
     33         "src/cxa_vector.cpp",
     34         "src/cxa_virtual.cpp",
     35         "src/fallback_malloc.cpp",
     36         "src/private_typeinfo.cpp",
     37         "src/stdlib_exception.cpp",
     38         "src/stdlib_new_delete.cpp",
     39         "src/stdlib_stdexcept.cpp",
     40         "src/stdlib_typeinfo.cpp",
     41     ],
     42     include_dirs: ["external/libcxx/include"],
     43     local_include_dirs:  ["include"],
     44     export_include_dirs: ["include"],
     45     cflags: [
     46         "-Wall",
     47         "-Werror",
     48     ],
     49     cppflags: [
     50         "-std=c++14",
     51         "-fexceptions",
     52         "-Wextra",
     53         "-Wno-unused-function",
     54     ],
     55     sanitize: {
     56         never: true,
     57     },
     58     stl: "none",
     59     rtti: true,
     60     arch: {
     61         arm: {
     62             include_dirs: ["external/libunwind_llvm/include"],
     63             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=1"],
     64         },
     65         arm64: {
     66             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"],
     67         },
     68         mips: {
     69             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"],
     70         },
     71         mips64: {
     72             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"],
     73         },
     74         x86: {
     75             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"],
     76         },
     77         x86_64: {
     78             cppflags: ["-DLIBCXXABI_USE_LLVM_UNWINDER=0"],
     79         },
     80     },
     81     target: {
     82         android: {
     83             cppflags: ["-DHAVE___CXA_THREAD_ATEXIT_IMPL"],
     84         },
     85         darwin: {
     86             // libcxxabi really doesn't like the non-LLVM assembler on Darwin
     87             asflags: ["-integrated-as"],
     88             cflags: ["-integrated-as", "-D_LIBCPP_DISABLE_AVAILABILITY"],
     89             cppflags: ["-integrated-as"],
     90         },
     91         linux_bionic: {
     92             cppflags: ["-DHAVE___CXA_THREAD_ATEXIT_IMPL"],
     93             enabled: true,
     94         },
     95     },
     96 
     97 }
     98