CMakeLists.txt 4.18 KB
Newer Older
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
#
# Software License Agreement (BSD License)
#
#  Copyright (c) 2014 CNRS-LAAS
#  Author: Florent Lamiraux
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#
#   * Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#   * Redistributions in binary form must reproduce the above
#     copyright notice, this list of conditions and the following
#     disclaimer in the documentation and/or other materials provided
#     with the distribution.
#   * Neither the name of CNRS-LAAS. nor the names of its
#     contributors may be used to endorse or promote products derived
#     from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
#  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
#  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
#  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
#  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
#  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
#  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#  POSSIBILITY OF SUCH DAMAGE.
isucan's avatar
isucan committed
34

35
36
37
38
39
40
set(LIBRARY_NAME ${PROJECT_NAME})
set(${LIBRARY_NAME}_SOURCES
  collision.cpp
  distance_func_matrix.cpp
  collision_data.cpp
  collision_node.cpp
41
  collision_object.cpp
42
43
44
45
46
47
48
49
  BV/RSS.cpp
  BV/AABB.cpp
  BV/kIOS.cpp
  BV/kDOP.cpp
  BV/OBBRSS.cpp
  BV/OBB.cpp
  narrowphase/narrowphase.cpp
  narrowphase/gjk.cpp
50
  narrowphase/details.h
51
52
  shape/geometric_shapes.cpp
  shape/geometric_shapes_utility.cpp
53
  distance_box_halfspace.cpp
54
  distance_box_plane.cpp
55
  distance_box_sphere.cpp
56
  distance_capsule_capsule.cpp
57
  distance_capsule_halfspace.cpp
58
  distance_capsule_plane.cpp
59
60
  distance_cone_halfspace.cpp
  distance_cone_plane.cpp
61
  distance_cylinder_halfspace.cpp
62
  distance_cylinder_plane.cpp
63
  distance_sphere_sphere.cpp
64
  distance_sphere_cylinder.cpp
65
  distance_sphere_halfspace.cpp
66
  distance_sphere_plane.cpp
67
68
69
70
71
72
73
74
75
76
  intersect.cpp
  math/transform.cpp
  traversal/traversal_recurse.cpp
  profile.cpp
  distance.cpp
  BVH/BVH_utility.cpp
  BVH/BV_fitter.cpp
  BVH/BVH_model.cpp
  BVH/BV_splitter.cpp
  collision_func_matrix.cpp
77
  collision_utility.cpp
78
  mesh_loader/assimp.cpp
79
  mesh_loader/loader.cpp
80
  )
isucan's avatar
isucan committed
81

82
83
84
85
86
SET(PROJECT_HEADERS_FULL_PATH)
FOREACH(header ${${PROJECT_NAME}_HEADERS})
  LIST(APPEND PROJECT_HEADERS_FULL_PATH ${PROJECT_SOURCE_DIR}/${header})
ENDFOREACH()
LIST(APPEND PROJECT_HEADERS_FULL_PATH ${PROJECT_BINARY_DIR}/include/hpp/fcl/config.hh)
87
88
add_library(${LIBRARY_NAME}
  SHARED
89
  ${PROJECT_HEADERS_FULL_PATH}
90
91
  ${${LIBRARY_NAME}_SOURCES}
  )
92

93
94
95
96
# IDE sources and headers sorting
ADD_SOURCE_GROUP(${LIBRARY_NAME}_SOURCES)
ADD_HEADER_GROUP(PROJECT_HEADERS_FULL_PATH)

97
98
TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
  PUBLIC 
Justin Carpentier's avatar
Justin Carpentier committed
99
100
101
102
  Boost::thread
  Boost::date_time
  Boost::system
  )
103
104
105

target_include_directories(${LIBRARY_NAME} 
  SYSTEM PUBLIC
106
107
108
  ${EIGEN3_INCLUDE_DIRS}
  )

109
110
111
target_include_directories(${LIBRARY_NAME} 
  PUBLIC
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
112
  )
113

114
PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} assimp)
115
116
117
118
119
120
if (NOT ${ASSIMP_VERSION} VERSION_LESS "2.0.1150")
  target_compile_definitions(${LIBRARY_NAME} PRIVATE -DHPP_FCL_USE_ASSIMP_UNIFIED_HEADER_NAMES)
  message(STATUS "Assimp version has unified headers")
else()
  message(STATUS "Assimp version does not have unified headers")
endif()
121
122
IF(OCTOMAP_FOUND)
  PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} octomap)
Joseph Mirabel's avatar
Joseph Mirabel committed
123
124
125
126
127
  target_compile_definitions (${LIBRARY_NAME} PUBLIC
    -DHPP_FCL_HAVE_OCTOMAP
    -DOCTOMAP_MAJOR_VERSION=${OCTOMAP_MAJOR_VERSION}
    -DOCTOMAP_MINOR_VERSION=${OCTOMAP_MINOR_VERSION}
    -DOCTOMAP_PATCH_VERSION=${OCTOMAP_PATCH_VERSION})
128
ENDIF(OCTOMAP_FOUND)
129

Joseph Mirabel's avatar
Joseph Mirabel committed
130
131
132
install(TARGETS ${LIBRARY_NAME}
  EXPORT ${TARGETS_EXPORT_NAME}
  DESTINATION ${CMAKE_INSTALL_LIBDIR})