2016-12-11 13:42:37 +01:00
|
|
|
from conans import ConanFile, CMake
|
|
|
|
import os
|
|
|
|
|
|
|
|
class BackwardCpp(ConanFile):
|
|
|
|
settings = 'os', 'compiler', 'build_type', 'arch'
|
|
|
|
name = 'backward'
|
|
|
|
url = 'https:77github.com/Manu343726/backward-cpp'
|
|
|
|
license = 'MIT'
|
2016-12-18 23:16:33 +01:00
|
|
|
version = '1.3.0'
|
2016-12-11 13:42:37 +01:00
|
|
|
options = {
|
|
|
|
'stack_walking_unwind': [True, False],
|
|
|
|
'stack_walking_backtrace': [True, False],
|
|
|
|
'stack_details_auto_detect': [True, False],
|
|
|
|
'stack_details_backtrace_symbol': [True, False],
|
|
|
|
'stack_details_dw': [True, False],
|
|
|
|
'stack_details_bfd': [True, False],
|
|
|
|
'shared': [True, False]
|
|
|
|
}
|
|
|
|
default_options = (
|
|
|
|
'stack_walking_unwind=True',
|
|
|
|
'stack_walking_backtrace=False',
|
|
|
|
'stack_details_auto_detect=True',
|
|
|
|
'stack_details_backtrace_symbol=False',
|
|
|
|
'stack_details_dw=False',
|
|
|
|
'stack_details_bfd=False',
|
|
|
|
'shared=False'
|
|
|
|
)
|
|
|
|
exports = 'backward.cpp', 'backward.hpp', 'test/*', 'CMakeLists.txt', 'BackwardConfig.cmake'
|
|
|
|
generators = 'cmake'
|
|
|
|
|
|
|
|
def cmake_option(self, option, prefix = ''):
|
|
|
|
return '-D{}{}={}'.format(prefix, option.upper(), self.options[option])
|
|
|
|
|
|
|
|
def build(self):
|
|
|
|
cmake = CMake(self.settings)
|
|
|
|
|
|
|
|
options = ''
|
|
|
|
options += self.cmake_option('stack_walking_unwind')
|
|
|
|
options += self.cmake_option('stack_walking_backtrace')
|
|
|
|
options += self.cmake_option('stack_details_auto_detect')
|
|
|
|
options += self.cmake_option('stack_details_backtrace_symbol')
|
|
|
|
options += self.cmake_option('stack_details_dw')
|
|
|
|
options += self.cmake_option('stack_details_bfd')
|
|
|
|
options += self.cmake_option('shared', prefix = 'BACKWARD_')
|
|
|
|
|
|
|
|
self.run('cmake {} {} {} -DBACKWARD_TESTS=OFF'.format(self.conanfile_directory, cmake.command_line, options))
|
|
|
|
self.run('cmake --build . {}'.format(cmake.build_config))
|
|
|
|
|
|
|
|
def package(self):
|
|
|
|
self.copy('backward.hpp', os.path.join('include', 'backward'))
|
|
|
|
self.copy('*.a', dst='lib')
|
|
|
|
self.copy('*.so', dst='lib')
|
|
|
|
self.copy('*.lib', dst='lib')
|
|
|
|
self.copy('*.dll', dst='lib')
|
|
|
|
|
|
|
|
def package_info(self):
|
|
|
|
self.cpp_info.libs = ['backward']
|