59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
import os
|
|
|
|
from setuptools import setup
|
|
|
|
package_name = "iiwa_bringup"
|
|
|
|
# Собираем список пакетов: основной + вложенные (если они есть).
|
|
packages = [package_name]
|
|
# Если есть подпапка utils с __init__.py — зарегистрируем её как iiwa_bringup.utils
|
|
if os.path.isdir("utils") and os.path.isfile(os.path.join("utils", "__init__.py")):
|
|
packages.append(f"{package_name}.utils")
|
|
|
|
# Соответствие имени пакета -> директория на диске.
|
|
# iiwa_bringup -> текущая папка '.'
|
|
# iiwa_bringup.utils -> ./utils
|
|
package_dir = {
|
|
package_name: ".",
|
|
}
|
|
if f"{package_name}.utils" in packages:
|
|
package_dir[f"{package_name}.utils"] = os.path.join(".", "utils")
|
|
|
|
|
|
def data_files_from_tree(src_dir: str, dst_root: str) -> list:
|
|
entries = []
|
|
if not os.path.isdir(src_dir):
|
|
return entries
|
|
EXCLUDE_DIRS = {".git", "__pycache__", ".pytest_cache", ".idea"}
|
|
EXCLUDES = {".DS_Store", "Thumbs.db"}
|
|
for root, dirs, files in os.walk(src_dir):
|
|
dirs[:] = [d for d in dirs if d not in EXCLUDE_DIRS]
|
|
file_list = [os.path.join(root, f) for f in files if f not in EXCLUDES]
|
|
if not file_list:
|
|
continue
|
|
rel = os.path.relpath(root, src_dir)
|
|
dst_dir = os.path.join(dst_root, rel) if rel != "." else dst_root
|
|
entries.append((dst_dir, file_list))
|
|
return entries
|
|
|
|
|
|
data_files = [(f"share/{package_name}", ["package.xml"])]
|
|
data_files += data_files_from_tree("launch", f"share/{package_name}/launch")
|
|
data_files += data_files_from_tree("config", f"share/{package_name}/config")
|
|
data_files += data_files_from_tree("resource", f"share/{package_name}/resource")
|
|
|
|
setup(
|
|
name=package_name,
|
|
version="0.0.1",
|
|
packages=packages,
|
|
package_dir=package_dir,
|
|
include_package_data=True,
|
|
data_files=data_files,
|
|
install_requires=["setuptools"],
|
|
zip_safe=False,
|
|
maintainer="Grabar Daniil",
|
|
maintainer_email="grabardm@ml-dev.ru",
|
|
description="iiwa bringup package",
|
|
license="Apache-2.0",
|
|
)
|