def install_cc_prebuilt_library_atom(self, atom): name = atom['name'] # Add atom to test targets self.cc_prebuilt_targets.append(name) base = self.dest('pkg', name) library = model.CppPrebuiltLibrary(name) library.relative_path_to_root = os.path.relpath(self.output, start=base) library.is_static = atom['format'] == 'static' self.copy_files(atom['headers'], atom['root'], base, library.hdrs) for arch in self.target_arches: def _copy_prebuilt(path, category): relative_dest = os.path.join( 'arch', arch, # pylint: disable=cell-var-from-loop category, os.path.basename(path)) dest = self.dest(relative_dest) shutil.copy2(self.source(path), dest) return relative_dest binaries = atom['binaries'][arch] prebuilt_set = model.CppPrebuiltSet( _copy_prebuilt(binaries['link'], 'lib')) if 'dist' in binaries: dist = binaries['dist'] prebuilt_set.dist_lib = _copy_prebuilt(dist, 'dist') prebuilt_set.dist_path = binaries['dist_path'] if 'debug' in binaries: self.copy_file(binaries['debug']) library.prebuilts[arch] = prebuilt_set for dep in atom['deps']: library.deps.append('../' + dep) library.includes = os.path.relpath(atom['include_dir'], atom['root']) if not os.path.exists(base): os.makedirs(base) self.write_file(os.path.join(base, 'BUILD.gn'), 'cc_prebuilt_library', library) self.write_atom_metadata(os.path.join(base, 'meta.json'), atom) self.build_files.append( os.path.relpath(os.path.join(base, 'BUILD.gn'), self.output))
def install_cc_prebuilt_library_atom(self, atom): name = sanitize(atom['name']) include_paths = [ os.path.relpath(h, atom['include_dir']) for h in atom['headers'] ] self.workspace_info.headers['//pkg/' + name] = include_paths if not self.install: return library = model.CppPrebuiltLibrary(name) library.is_static = atom['format'] == 'static' base = self.dest('pkg', name) self.copy_files(atom['headers'], atom['root'], base, library.hdrs) for arch in self.target_arches: def _copy_prebuilt(path, category): relative_dest = os.path.join('arch', arch, category, os.path.basename(path)) dest = self.dest(base, relative_dest) shutil.copy2(self.source(path), dest) return relative_dest binaries = atom['binaries'][arch] prebuilt_set = model.CppPrebuiltSet( _copy_prebuilt(binaries['link'], 'lib')) if 'dist' in binaries: dist = binaries['dist'] prebuilt_set.dist_lib = _copy_prebuilt(dist, 'dist') prebuilt_set.dist_path = 'lib/' + os.path.basename(dist) if 'debug' in binaries: self.copy_file(binaries['debug']) library.prebuilts[arch] = prebuilt_set for dep in atom['deps']: library.deps.append('//pkg/' + sanitize(dep)) library.includes = os.path.relpath(atom['include_dir'], atom['root']) self.write_file(os.path.join(base, 'BUILD'), 'cc_prebuilt_library', library)
def install_cc_prebuilt_library_atom(self, atom): name = atom['name'] # Add atom to test targets self.cc_prebuilt_targets.append(name) base = self.dest('pkg', name) library = model.CppPrebuiltLibrary(name) library.relative_path_to_root = os.path.relpath(self.output, start=base) library.is_static = atom['format'] == 'static' self.copy_files(atom['headers'], atom['root'], base, library.hdrs) for arch in self.target_arches: binaries = atom['binaries'][arch] prebuilt_set = model.CppPrebuiltSet(binaries['link']) self.copy_file(binaries['link']) if 'dist' in binaries: prebuilt_set.dist_lib = binaries['dist'] prebuilt_set.dist_path = binaries['dist_path'] self.copy_file(binaries['dist']) if 'debug' in binaries: self.copy_file(binaries['debug']) library.prebuilts[arch] = prebuilt_set for dep in atom['deps']: library.deps.append('../' + dep) library.includes = os.path.relpath(atom['include_dir'], atom['root']) if not os.path.exists(base): os.makedirs(base) self.write_file(os.path.join(base, 'BUILD.gn'), 'cc_prebuilt_library', library) self.write_atom_metadata(os.path.join(base, 'meta.json'), atom) self.build_files.append( os.path.relpath(os.path.join(base, 'BUILD.gn'), self.output))