29 lines
1,002 B
Python
29 lines
1,002 B
Python
import os
|
|
import shutil
|
|
import re
|
|
|
|
def _get_files_from_folder(search_dir, output_folder):
|
|
if not os.path.isdir(search_dir):
|
|
return []
|
|
files = []
|
|
for f in os.listdir(search_dir):
|
|
src = os.path.join(search_dir, f)
|
|
if os.access(src, os.X_OK) or bool(re.search(r"lib.*\.so(\.\d+)*$", f)):
|
|
if os.path.isfile(src):
|
|
dst = os.path.join(output_folder, f)
|
|
shutil.copy2(src, dst)
|
|
files.append(dst)
|
|
else:
|
|
files += _get_files_from_folder(src, output_folder)
|
|
return files
|
|
|
|
def deploy(graph, output_folder, **kwargs):
|
|
conanfile = graph.root.conanfile
|
|
files = []
|
|
for r, d in conanfile.dependencies.items():
|
|
if d.package_folder is None:
|
|
continue
|
|
search_dirs = (d.cpp_info.libdirs or [])
|
|
for dir in search_dirs:
|
|
search_dir = os.path.join(d.package_folder, dir)
|
|
files += _get_files_from_folder(search_dir, output_folder)
|