forked from FieldRobotEvent/virtual_maize_field
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
62 lines (50 loc) · 1.78 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from __future__ import annotations
from os import path, walk
from pathlib import Path
from xml.etree import ElementTree
from setuptools import find_packages, setup
package_data = ElementTree.parse(Path(__file__).parent / "package.xml")
package_name = package_data.find("./name").text
data_files = [
("share/ament_index/resource_index/packages", ["resource/" + package_name]),
("share/" + package_name, ["package.xml"]),
]
# Add all folders recursively
# https://answers.ros.org/question/397319/how-to-copy-folders-with-subfolders-to-package-installation-path/
for folder_name in (
"config",
"launch",
"Media",
"models",
):
_path_dict = {}
for path_, directories, filenames in walk(folder_name):
for filename in filenames:
file_path = path.join(path_, filename)
install_path = path.join("share", package_name, path_)
if install_path in _path_dict.keys():
_path_dict[install_path].append(file_path)
else:
_path_dict[install_path] = [file_path]
for key in _path_dict.keys():
data_files.append((key, _path_dict[key]))
setup(
name=package_name,
version=package_data.find("./version").text,
packages=find_packages(),
data_files=data_files,
package_data={"": ["*.template"]},
include_package_data=True,
install_requires=["setuptools"],
zip_safe=True,
maintainer=package_data.find("./maintainer").text,
maintainer_email=package_data.find("./maintainer").attrib["email"],
description=package_data.find("./description").text,
license=package_data.find("./license").text,
tests_require=["pytest"],
entry_points={
"console_scripts": [
"generate_world = virtual_maize_field.generate_world:main",
],
},
)