forked from hsu/val_description
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCMakeLists.txt
89 lines (61 loc) · 2.65 KB
/
CMakeLists.txt
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
cmake_minimum_required(VERSION 2.8.3)
project(val_description)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
xacro
rospy
)
catkin_package(
CATKIN_DEPENDS xacro rospy
)
set(urdf_files "")
set(PATH_TO_ROBOTS_MODEL ${CMAKE_CURRENT_SOURCE_DIR}/model/robots)
set(PATH_TO_ROBOTS_INSTANCE ${CMAKE_CURRENT_SOURCE_DIR}/instance/instances/robots)
# Xacro files
file(GLOB model_xacro_files ${PATH_TO_ROBOTS_MODEL}/common/*/*.xacro ${PATH_TO_ROBOTS_MODEL}/valkyrie_A/*/*.xacro ${PATH_TO_ROBOTS_MODEL}/valkyrie_B/*/*.xacro)
file(GLOB instance_xacro_files ${PATH_TO_ROBOTS_INSTANCE}/xacro/*/*.xacro)
# Robot files
file(GLOB urdf_xacro_files ${PATH_TO_ROBOTS_MODEL}/*.xacro)
file(GLOB instance_xacro_files ${PATH_TO_ROBOTS_INSTANCE}/*.xacro)
set(URDF_OUTPUT_PATH ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/model/urdf)
set(INSTANCE_OUTPUT_PATH ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/instance/instances/instance_files)
message(${CATKIN_PACKAGE_SHARE_DESTINATION})
# Create output directories
file(MAKE_DIRECTORY ${URDF_OUTPUT_PATH})
file(MAKE_DIRECTORY ${INSTANCE_OUTPUT_PATH})
# Generate urdf's and put them in the /model/urdf directory
foreach(it ${urdf_xacro_files})
get_filename_component(basepath ${it} PATH)
get_filename_component(basename ${it} NAME_WE)
message("processing urdf file :" ${basepath}/${basename})
set(expanded_file "${URDF_OUTPUT_PATH}/${basename}.urdf")
message("produce expanded file :" ${expanded_file})
xacro_add_xacro_file(${it} ${expanded_file})
set(urdf_files ${urdf_files} ${expanded_file})
endforeach(it)
foreach(it ${instance_xacro_files})
get_filename_component(basepath ${it} PATH)
get_filename_component(basename ${it} NAME_WE)
message("processing xml file :" ${basepath}/${basename})
set(expanded_file "${INSTANCE_OUTPUT_PATH}/${basename}.xml")
message("produce expanded file :" ${expanded_file})
xacro_add_xacro_file(${it} ${expanded_file})
set(instance_files ${instance_files} ${expanded_file})
endforeach(it)
catkin_python_setup()
catkin_add_nosetests(test)
add_custom_target(val_description_media_files ALL DEPENDS ${urdf_files} ${instance_files})
# install urdf and xacro files
install(DIRECTORY model
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY instance
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY ${URDF_OUTPUT_PATH}
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/model
)
install(DIRECTORY ${INSTANCE_OUTPUT_PATH}
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/instance/instances)