|
| 1 | +from conans import ConanFile, CMake |
| 2 | +import os |
| 3 | + |
| 4 | +class BackwardCpp(ConanFile): |
| 5 | + settings = 'os', 'compiler', 'build_type', 'arch' |
| 6 | + name = 'backward' |
| 7 | + url = 'https:77github.com/Manu343726/backward-cpp' |
| 8 | + license = 'MIT' |
| 9 | + version = '0.0.0' |
| 10 | + options = { |
| 11 | + 'stack_walking_unwind': [True, False], |
| 12 | + 'stack_walking_backtrace': [True, False], |
| 13 | + 'stack_details_auto_detect': [True, False], |
| 14 | + 'stack_details_backtrace_symbol': [True, False], |
| 15 | + 'stack_details_dw': [True, False], |
| 16 | + 'stack_details_bfd': [True, False], |
| 17 | + 'shared': [True, False] |
| 18 | + } |
| 19 | + default_options = ( |
| 20 | + 'stack_walking_unwind=True', |
| 21 | + 'stack_walking_backtrace=False', |
| 22 | + 'stack_details_auto_detect=True', |
| 23 | + 'stack_details_backtrace_symbol=False', |
| 24 | + 'stack_details_dw=False', |
| 25 | + 'stack_details_bfd=False', |
| 26 | + 'shared=False' |
| 27 | + ) |
| 28 | + exports = 'backward.cpp', 'backward.hpp', 'test/*', 'CMakeLists.txt', 'BackwardConfig.cmake' |
| 29 | + generators = 'cmake' |
| 30 | + |
| 31 | + def cmake_option(self, option, prefix = ''): |
| 32 | + return '-D{}{}={}'.format(prefix, option.upper(), self.options[option]) |
| 33 | + |
| 34 | + def build(self): |
| 35 | + cmake = CMake(self.settings) |
| 36 | + |
| 37 | + options = '' |
| 38 | + options += self.cmake_option('stack_walking_unwind') |
| 39 | + options += self.cmake_option('stack_walking_backtrace') |
| 40 | + options += self.cmake_option('stack_details_auto_detect') |
| 41 | + options += self.cmake_option('stack_details_backtrace_symbol') |
| 42 | + options += self.cmake_option('stack_details_dw') |
| 43 | + options += self.cmake_option('stack_details_bfd') |
| 44 | + options += self.cmake_option('shared', prefix = 'BACKWARD_') |
| 45 | + |
| 46 | + self.run('cmake {} {} {} -DBACKWARD_TESTS=OFF'.format(self.conanfile_directory, cmake.command_line, options)) |
| 47 | + self.run('cmake --build . {}'.format(cmake.build_config)) |
| 48 | + |
| 49 | + def package(self): |
| 50 | + self.copy('backward.hpp', os.path.join('include', 'backward')) |
| 51 | + self.copy('*.a', dst='lib') |
| 52 | + self.copy('*.so', dst='lib') |
| 53 | + self.copy('*.lib', dst='lib') |
| 54 | + self.copy('*.dll', dst='lib') |
| 55 | + |
| 56 | + def package_info(self): |
| 57 | + self.cpp_info.libs = ['backward'] |
0 commit comments