def __init__(self, name, project, sources, requirements, default_build, usage_requirements): AliasTarget.__init__(self, name, project, sources, requirements, default_build, usage_requirements) # On Linux, we build release variant by default, since few users will # ever want to debug C++ Boost libraries, and there's no ABI # incompatibility between debug and release variants. We build # shared and static libraries since that's what most packages # seem to provide (.so in libfoo and .a in libfoo-dev). self.minimal_properties = property_set.create([ "<variant>release", "<threading>multi", "<link>shared", "<link>static", "<runtime-link>shared"]) # On Windows, new IDE projects use: # # runtime-link=dynamic, threading=multi, variant=(debug|release) # # and in addition, C++ Boost's autolink defaults to static linking. self.minimal_properties_win = property_set.create([ "<variant>debug", "<variant>release", "<threading>multi", "<link>static", "<runtime-link>shared"]) self.complete_properties = property_set.create([ "<variant>debug", "<variant>release", "<threading>single", "<threading>multi" "<link>shared", "<link>static", "<runtime-link>shared", "<runtime-link>static"])
def __init__(self, name, project, sources, requirements, default_build, usage_requirements): AliasTarget.__init__(self, name, project, sources, requirements, default_build, usage_requirements) # On Linux, we build release variant by default, since few users will # ever want to debug C++ Boost libraries, and there's no ABI # incompatibility between debug and release variants. We build # shared and static libraries since that's what most packages # seem to provide (.so in libfoo and .a in libfoo-dev). self.minimal_properties = property_set.create([ "<variant>release", "<threading>multi", "<link>shared", "<link>static", "<runtime-link>shared" ]) # On Windows, new IDE projects use: # # runtime-link=dynamic, threading=multi, variant=(debug|release) # # and in addition, C++ Boost's autolink defaults to static linking. self.minimal_properties_win = property_set.create([ "<variant>debug", "<variant>release", "<threading>multi", "<link>static", "<runtime-link>shared" ]) self.complete_properties = property_set.create([ "<variant>debug", "<variant>release", "<threading>single", "<threading>multi" "<link>shared", "<link>static", "<runtime-link>shared", "<runtime-link>static" ])
def build_multiple(self, property_sets): usage_requirements = property_set.empty() result = [] for p in property_sets: r = AliasTarget.generate(self, p) if r: usage_requirements = usage_requirements.add(r.usage_requirements()) result.extend(r.targets()) return targets.GenerateResult(usage_requirements, unique(result))
def build_multiple(self, property_sets): usage_requirements = property_set.empty() result = [] for p in property_sets: r = AliasTarget.generate(self, p) if r: usage_requirements = usage_requirements.add( r.usage_requirements()) result.extend(r.targets()) return targets.GenerateResult(usage_requirements, unique(result))