def ap_library(bld, library, vehicle): try: common_tg = bld.get_tgen_by_name(_common_tgen_name(library)) except Errors.WafError: common_tg = None try: vehicle_tg = bld.get_tgen_by_name(_vehicle_tgen_name(library, vehicle)) except Errors.WafError: vehicle_tg = None if common_tg and vehicle_tg: return if library.find('*') != -1: # allow for wildcard patterns, used for submodules without direct waf support library_dir = bld.srcnode.find_dir('.') wildcard = library else: library_dir = bld.srcnode.find_dir('libraries/%s' % library) wildcard = ap.SOURCE_EXTS + UTILITY_SOURCE_EXTS if not library_dir: bld.fatal('ap_library: %s not found' % library) src = library_dir.ant_glob(wildcard) # allow for dynamically generated sources in a library that inherit the # dependencies and includes if library in bld.env.AP_LIB_EXTRA_SOURCES: for s in bld.env.AP_LIB_EXTRA_SOURCES[library]: src.append( bld.bldnode.find_or_declare( os.path.join('libraries', library, s))) if not common_tg: kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_common_tgen_name(library), source=[s for s in src if not _depends_on_vehicle(bld, s)], idx=0, ) bld.objects(**kw) if not vehicle_tg: source = [s for s in src if _depends_on_vehicle(bld, s)] if not source: return kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_vehicle_tgen_name(library, vehicle), source=source, defines=ap.get_legacy_defines(vehicle), idx=_vehicle_index(vehicle), ) bld.objects(**kw)
def ap_library(bld, library, vehicle): try: common_tg = bld.get_tgen_by_name(_common_tgen_name(library)) except Errors.WafError: common_tg = None try: vehicle_tg = bld.get_tgen_by_name(_vehicle_tgen_name(library, vehicle)) except Errors.WafError: vehicle_tg = None if common_tg and vehicle_tg: return if library.find('*') != -1: # allow for wildcard patterns, used for submodules without direct waf support library_dir = bld.srcnode.find_dir('.') wildcard = library else: library_dir = bld.srcnode.find_dir('libraries/%s' % library) wildcard = ap.SOURCE_EXTS + UTILITY_SOURCE_EXTS if not library_dir: bld.fatal('ap_library: %s not found' % library) src = library_dir.ant_glob(wildcard) if not common_tg: kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_common_tgen_name(library), source=[s for s in src if not _depends_on_vehicle(bld, s)], idx=0, ) bld.objects(**kw) if not vehicle_tg: source = [s for s in src if _depends_on_vehicle(bld, s)] if not source: return kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_vehicle_tgen_name(library, vehicle), source=source, defines=ap.get_legacy_defines(vehicle), idx=_vehicle_index(vehicle), ) bld.objects(**kw)
def ap_library(bld, library, vehicle): try: common_tg = bld.get_tgen_by_name(_common_tgen_name(library)) except Errors.WafError: common_tg = None try: vehicle_tg = bld.get_tgen_by_name(_vehicle_tgen_name(library, vehicle)) except Errors.WafError: vehicle_tg = None if common_tg and vehicle_tg: return library_dir = bld.srcnode.find_dir('libraries/%s' % library) if not library_dir: bld.fatal('ap_library: %s not found' % library) src = library_dir.ant_glob(ap.SOURCE_EXTS + UTILITY_SOURCE_EXTS) if not common_tg: kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_common_tgen_name(library), source=[s for s in src if not _depends_on_vehicle(bld, s)], idx=0, ) bld.objects(**kw) if not vehicle_tg: source = [s for s in src if _depends_on_vehicle(bld, s)] if not source: return kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW) kw['features'] = kw.get('features', []) + ['ap_library_object'] kw.update( name=_vehicle_tgen_name(library, vehicle), source=source, defines=ap.get_legacy_defines(vehicle), idx=_vehicle_index(vehicle), ) bld.objects(**kw)