// // Copyright (C) 2017 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. // cc_defaults { name: "libunwindstack_flags", host_supported: true, cflags: [ "-Wall", "-Werror", "-Wextra", ], target: { darwin: { enabled: false, }, }, multilib: { lib32: { suffix: "32", }, lib64: { suffix: "64", }, }, } cc_defaults { name: "libunwindstack_common", defaults: ["libunwindstack_flags"], srcs: [ "ArmExidx.cpp", "DwarfCfa.cpp", "DwarfDebugFrame.cpp", "DwarfEhFrame.cpp", "DwarfMemory.cpp", "DwarfOp.cpp", "DwarfSection.cpp", "Elf.cpp", "ElfInterface.cpp", "ElfInterfaceArm.cpp", "Log.cpp", "MapInfo.cpp", "Maps.cpp", "Memory.cpp", "Regs.cpp", "Symbols.cpp", ], shared_libs: [ "libbase", "liblog", "liblzma", ], } cc_library { name: "libunwindstack", defaults: ["libunwindstack_common"], } //------------------------------------------------------------------------- // Unit Tests //------------------------------------------------------------------------- cc_defaults { name: "libunwindstack_test_common", defaults: ["libunwindstack_flags"], srcs: [ "tests/ArmExidxDecodeTest.cpp", "tests/ArmExidxExtractTest.cpp", "tests/DwarfCfaLogTest.cpp", "tests/DwarfCfaTest.cpp", "tests/DwarfDebugFrameTest.cpp", "tests/DwarfEhFrameTest.cpp", "tests/DwarfMemoryTest.cpp", "tests/DwarfOpLogTest.cpp", "tests/DwarfOpTest.cpp", "tests/DwarfSectionTest.cpp", "tests/DwarfSectionImplTest.cpp", "tests/ElfInterfaceArmTest.cpp", "tests/ElfInterfaceTest.cpp", "tests/ElfTest.cpp", "tests/LogFake.cpp", "tests/MapInfoTest.cpp", "tests/MapsTest.cpp", "tests/MemoryFake.cpp", "tests/MemoryFileTest.cpp", "tests/MemoryLocalTest.cpp", "tests/MemoryRangeTest.cpp", "tests/MemoryRemoteTest.cpp", "tests/RegsTest.cpp", "tests/SymbolsTest.cpp", ], cflags: [ "-O0", "-g", ], shared_libs: [ "libbase", "liblog", "liblzma", ], static_libs: [ "libgmock", ], target: { linux: { host_ldlibs: [ "-lrt", ], }, }, } // These unit tests run against the shared library. cc_test { name: "libunwindstack_test", defaults: ["libunwindstack_test_common"], shared_libs: [ "libunwindstack", ], data: [ "tests/elf32.xz", "tests/elf64.xz", ], } //------------------------------------------------------------------------- // Utility Executables //------------------------------------------------------------------------- cc_defaults { name: "libunwindstack_executables", defaults: ["libunwindstack_flags"], shared_libs: [ "libunwindstack", "libbase", "liblzma", ], static_libs: [ "liblog", ], compile_multilib: "both", } cc_binary { name: "unwind_info", defaults: ["libunwindstack_executables"], srcs: [ "unwind_info.cpp", ], } // Generates the elf data for use in the tests for .gnu_debugdata frames. // Once these files are generated, use the xz command to compress the data. cc_binary_host { name: "gen_gnudebugdata", cflags: [ "-Wall", "-Werror", "-Wextra", ], srcs: [ "tests/GenGnuDebugdata.cpp", ], target: { darwin: { enabled: false, }, }, }