forked from icub-tech-iit/ergocub-software
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
85 lines (69 loc) · 3.55 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
# Copyright (C) 2006-2022 Istituto Italiano di Tecnologia (IIT)
# All rights reserved.
#
# This software may be modified and distributed under the terms of the
# BSD-3-Clause license. See the accompanying LICENSE file for details.
set(GAZEBO_SUPPORTED_MODELS "")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1_minContacts")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1_1")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1_1_minContacts")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1_2")
list(APPEND GAZEBO_SUPPORTED_MODELS "ergoCubGazeboV1_2_minContacts")
set(INSTALLED_URDF_MODELS "")
macro(SUBDIRLIST result curdir)
file(GLOB children RELATIVE ${curdir} ${curdir}/*)
set(dirlist "")
foreach(child ${children})
if(IS_DIRECTORY ${curdir}/${child})
list(APPEND dirlist ${child})
endif()
endforeach()
set(${result} ${dirlist})
endmacro()
# Copy the ergoCub folder in the build tree
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${BUILD_PREFIX} DESTINATION ${CMAKE_BINARY_DIR})
set(ERGOCUB_MODELS_SDF_VERSION "1.7")
SUBDIRLIST(ROBOTS_NAMES ${CMAKE_CURRENT_SOURCE_DIR}/${BUILD_PREFIX}/robots)
foreach(ROBOT_DIRNAME ${ROBOTS_NAMES})
set(ROBOT_NAME ${ROBOT_DIRNAME})
set(ROBOT_MODEL_CONFIG_FILE "${CMAKE_BINARY_DIR}/${BUILD_PREFIX}/robots/${ROBOT_NAME}/model.config")
set(ROBOT_FIXED_MODEL_FOLDER "${CMAKE_BINARY_DIR}/${BUILD_PREFIX}/robots/${ROBOT_NAME}_fixed")
set(ROBOT_FIXED_MODEL_CONFIG_FILE "${ROBOT_FIXED_MODEL_FOLDER}/model.config")
set(ROBOT_FIXED_MODEL_SDF_FILE "${ROBOT_FIXED_MODEL_FOLDER}/${ROBOT_NAME}_fixed.sdf")
set(ROBOT_FEET_FIXED_MODEL_FOLDER "${CMAKE_BINARY_DIR}/${BUILD_PREFIX}/robots/${ROBOT_NAME}_feet_fixed")
set(ROBOT_FEET_FIXED_MODEL_CONFIG_FILE "${ROBOT_FEET_FIXED_MODEL_FOLDER}/model.config")
set(ROBOT_FEET_FIXED_MODEL_SDF_FILE "${ROBOT_FEET_FIXED_MODEL_FOLDER}/${ROBOT_NAME}_feet_fixed.sdf")
list(APPEND INSTALLED_URDF_MODELS \"${ROBOT_NAME}\")
# When copying in sources remove the _fixed models
if(ROBOT_NAME IN_LIST GAZEBO_SUPPORTED_MODELS)
set(ROBOT_NAME_CONFIG "${ROBOT_NAME}")
set(ROBOT_MODEL_CONFIG "model.urdf")
set(ROBOT_MODEL_DESCRIPTION_CONFIG "Model for the ergoCub humanoid robot.")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/model.config.in
${ROBOT_MODEL_CONFIG_FILE}
@ONLY)
file(MAKE_DIRECTORY ${ROBOT_FIXED_MODEL_FOLDER})
set(ROBOT_NAME_CONFIG "${ROBOT_NAME}_fixed")
set(ROBOT_MODEL_CONFIG "${ROBOT_NAME}_fixed.sdf")
set(ROBOT_MODEL_DESCRIPTION_CONFIG "Model for the ergoCub humanoid robot, fixed on the air")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/model.config.in
${ROBOT_FIXED_MODEL_CONFIG_FILE}
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fixed_model.sdf.in
${ROBOT_FIXED_MODEL_SDF_FILE}
@ONLY)
file(MAKE_DIRECTORY ${ROBOT_FEET_FIXED_MODEL_FOLDER})
set(ROBOT_NAME_CONFIG "${ROBOT_NAME}_feet_fixed")
set(ROBOT_MODEL_CONFIG "${ROBOT_NAME}_feet_fixed.sdf")
set(ROBOT_MODEL_DESCRIPTION_CONFIG "Model for the ergoCub humanoid robot, with the feet fixed on the ground.")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/model.config.in
${ROBOT_FEET_FIXED_MODEL_CONFIG_FILE}
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/feet_fixed_model.sdf.in
${ROBOT_FEET_FIXED_MODEL_SDF_FILE}
@ONLY)
endif()
endforeach()
# install the directory
install(DIRECTORY ${CMAKE_BINARY_DIR}/${BUILD_PREFIX} DESTINATION share)