From 3cfc1739ee5a7019e9e5b4f4ae85ecf927e789a2 Mon Sep 17 00:00:00 2001 From: Florent Lamiraux <florent@laas.fr> Date: Sat, 2 Aug 2014 12:39:00 +0200 Subject: [PATCH] Use jrl cmake submodule for configuration. --- .gitmodules | 3 + CMakeLists.txt | 303 +++++++++++------------ cmake | 1 + doc/Doxyfile.extra.in | 0 include/fcl/config.h.in | 52 ---- src/CMakeLists.txt | 115 ++++++++- test/CMakeLists.txt | 33 +-- test/fcl_resources/config.h.in | 2 +- test/test_fcl_box_box_distance.cpp | 4 +- test/test_fcl_broadphase.cpp | 2 +- test/test_fcl_capsule_box_1.cpp | 2 +- test/test_fcl_capsule_box_2.cpp | 2 +- test/test_fcl_capsule_capsule.cpp | 2 +- test/test_fcl_collision.cpp | 2 +- test/test_fcl_distance.cpp | 2 +- test/test_fcl_frontlist.cpp | 2 +- test/test_fcl_geometric_shapes.cpp | 2 +- test/test_fcl_math.cpp | 2 +- test/test_fcl_octomap.cpp | 2 +- test/test_fcl_shape_mesh_consistency.cpp | 2 +- test/test_fcl_simple.cpp | 2 +- test/test_fcl_sphere_capsule.cpp | 2 +- 22 files changed, 285 insertions(+), 254 deletions(-) create mode 100644 .gitmodules create mode 160000 cmake create mode 100644 doc/Doxyfile.extra.in delete mode 100644 include/fcl/config.h.in diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..8b3eac81 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "cmake"] + path = cmake + url = git@github.com:jrl-umi3218/jrl-cmakemodules diff --git a/CMakeLists.txt b/CMakeLists.txt index ec5eda94..4b94eabb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,157 +1,156 @@ -cmake_minimum_required(VERSION 2.8) -project(fcl CXX C) - -# set the default build type -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - -# Set build type variable -set(FCL_BUILD_TYPE_RELEASE FALSE) -set(FCL_BUILD_TYPE_DEBUG FALSE) - -string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPERCASE) -if("${CMAKE_BUILD_TYPE_UPPERCASE}" STREQUAL "RELEASE") - set(FCL_BUILD_TYPE_RELEASE TRUE) -elseif("${CMAKE_BUILD_TYPE_UPPERCASE}" STREQUAL "DEBUG") - set(FCL_BUILD_TYPE_DEBUG TRUE) -else() - message(STATUS "CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} unknown. Valid options are: Debug Release") -endif() - -# This shouldn't be necessary, but there has been trouble -# with MSVC being set off, but MSVCXX ON. -if(MSVC OR MSVC90 OR MSVC10) - set(MSVC ON) -endif (MSVC OR MSVC90 OR MSVC10) - -set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") -include(CompilerSettings) -include(FCLVersion) +# +# 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. -if(MSVC OR IS_ICPC) - option(FCL_STATIC_LIBRARY "Whether the FCL library should be static rather than shared" ON) -else() - option(FCL_STATIC_LIBRARY "Whether the FCL library should be static rather than shared" OFF) -endif() - -# Whether to enable SSE -option(FCL_USE_SSE "Whether FCL should SSE instructions" OFF) -set(FCL_HAVE_SSE 0) -if(FCL_USE_SSE) - if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(FCL_HAVE_SSE 0) #always disable, for now - add_definitions(-march=native) - endif() - # TODO: do something similar for other compilers -endif() - -# Find Octomap (optional) -find_package(PkgConfig QUIET) -set(FCL_HAVE_OCTOMAP 0) -if(PKG_CONFIG_FOUND) - pkg_check_modules(OCTOMAP QUIET octomap) -endif() -if(NOT OCTOMAP_FOUND) - # if pkfconfig is not installed, then fall back on more fragile detection - # of octomap - find_path(OCTOMAP_INCLUDE_DIRS octomap.h - PATH_SUFFIXES octomap) - find_path(OCTOMAP_LIBRARY_DIRS - ${CMAKE_SHARED_LIBRARY_PREFIX}octomap${CMAKE_SHARED_LIBRARY_SUFFIX}) - if(OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS) - set(OCTOMAP_LIBRARIES "octomap;octomath") - endif() -endif() -if (OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS) - include_directories(${OCTOMAP_INCLUDE_DIRS}) - link_directories(${OCTOMAP_LIBRARY_DIRS}) - set(FCL_HAVE_OCTOMAP 1) - message(STATUS "FCL uses Octomap") -else() - message(STATUS "FCL does not use Octomap") -endif() - -# Find FLANN (optional) -find_package(flann QUIET) -if (FLANN_FOUND) - set(FCL_HAVE_FLANN 1) - include_directories(${FLANN_INCLUDE_DIRS}) - message(STATUS "FCL uses Flann") -else() - message(STATUS "FCL does not use Flann") -endif() - - -# find_package(tinyxml QUIET) -# if (TINYXML_FOUND) -# set(FCL_HAVE_TINYXML 1) -# include_directories(${TINYXML_INCLUDE_DIRS}) -# link_directories(${TINYXML_LIBRARY_DIRS}) -# message(STATUS "FCL uses tinyxml") -# else() -# message(STATUS "FCL does not use tinyxml") +cmake_minimum_required(VERSION 2.8) +set(CXX_DISABLE_WERROR TRUE) +include(cmake/base.cmake) +include(cmake/boost.cmake) + +set(PROJECT_NAME fcl) +set(PROJECT_DESCRIPTION + "FCL -- The Flexible Collision Library" + ) +set(PROJECT_URL "http://github.com/humanoid-path-planner/fcl") + +setup_project() + +# Required dependencies +add_required_dependency("ccd >= 1.4") +set(BOOST_COMPONENTS + thread date_time filesystem system unit_test_framework REQUIRED + ) +search_for_boost() +# Optional dependencies +add_optional_dependency("octomap >= 1.6") +# flann package ill defined: comment. +# add_optional_dependency("flann >= 1.7") +# if (${FLANN_FOUND}) +# add_definitions(-DFCL_HAVE_FLANN=1) # endif() - -find_package(Boost COMPONENTS thread date_time filesystem system unit_test_framework REQUIRED) -include_directories(${Boost_INCLUDE_DIR}) - -if(MSVC) - add_definitions(-DBOOST_ALL_NO_LIB) -endif() -add_definitions(-DBOOST_TEST_DYN_LINK) - -# FCL's own include dir should be at the front of the include path -include_directories(BEFORE "include") -include_directories("${CMAKE_CURRENT_BINARY_DIR}/include") - -if(PKG_CONFIG_FOUND) - pkg_check_modules(CCD ccd) - # check to see if the pkg is installed under the libccd name - if(NOT CCD_FOUND) - pkg_check_modules(CCD libccd) - endif() -endif() - -if(NOT CCD_FOUND) - # if pkfconfig is not installed, then fall back on more fragile detection - # of ccd - find_path(CCD_INCLUDE_DIRS ccd.h - PATH_SUFFIXES ccd) - find_path(CCD_LIBRARY_DIRS - ${CMAKE_SHARED_LIBRARY_PREFIX}ccd${CMAKE_SHARED_LIBRARY_SUFFIX}) - if(CCD_INCLUDE_DIRS AND CCD_LIBRARY_DIRS) - set(CCD_LIBRARIES "ccd") - else() - message(FATAL_ERROR "Libccd is required by FCL") - endif() -endif() -include_directories(${CCD_INCLUDE_DIRS}) -link_directories(${CCD_LIBRARY_DIRS}) - -add_subdirectory(include/fcl) +SET(${PROJECT_NAME}_HEADERS + include/fcl/collision_data.h + include/fcl/profile.h + include/fcl/exception.h + include/fcl/ccd/taylor_vector.h + include/fcl/ccd/interval_vector.h + include/fcl/ccd/simplex.h + include/fcl/ccd/support.h + include/fcl/ccd/interval_matrix.h + include/fcl/ccd/interval.h + include/fcl/ccd/interpolation/interpolation_factory.h + include/fcl/ccd/interpolation/interpolation_linear.h + include/fcl/ccd/interpolation/interpolation.h + include/fcl/ccd/conservative_advancement.h + include/fcl/ccd/taylor_model.h + include/fcl/ccd/taylor_matrix.h + include/fcl/ccd/motion_base.h + include/fcl/ccd/motion.h + include/fcl/deprecated.h + include/fcl/BV/kIOS.h + include/fcl/BV/BV.h + include/fcl/BV/RSS.h + include/fcl/BV/OBBRSS.h + include/fcl/BV/BV_node.h + include/fcl/BV/AABB.h + include/fcl/BV/OBB.h + include/fcl/BV/kDOP.h + include/fcl/narrowphase/narrowphase.h + include/fcl/narrowphase/gjk.h + include/fcl/narrowphase/gjk_libccd.h + include/fcl/broadphase/interval_tree.h + include/fcl/broadphase/broadphase_spatialhash.h + include/fcl/broadphase/broadphase_dynamic_AABB_tree.h + include/fcl/broadphase/broadphase_SSaP.h + include/fcl/broadphase/broadphase_interval_tree.h + include/fcl/broadphase/broadphase.h + include/fcl/broadphase/hierarchy_tree.h + include/fcl/broadphase/broadphase_dynamic_AABB_tree_array.h + include/fcl/broadphase/broadphase_SaP.h + include/fcl/broadphase/broadphase_bruteforce.h + include/fcl/broadphase/morton.h + include/fcl/broadphase/hash.h + include/fcl/learning/classifier.h + include/fcl/shape/geometric_shapes_utility.h + include/fcl/shape/geometric_shape_to_BVH_model.h + include/fcl/shape/geometric_shapes.h + include/fcl/simd/simd_intersect.h + include/fcl/simd/math_simd_details.h + include/fcl/distance_func_matrix.h + include/fcl/collision.h + include/fcl/collision_node.h + include/fcl/collision_func_matrix.h + include/fcl/distance.h + include/fcl/knn/greedy_kcenters.h + include/fcl/knn/nearest_neighbors_GNAT.h + include/fcl/knn/nearest_neighbors_flann.h + include/fcl/knn/nearest_neighbors_sqrtapprox.h + include/fcl/knn/nearest_neighbors_linear.h + include/fcl/knn/nearest_neighbors.h + include/fcl/continuous_collision.h + include/fcl/math/vec_nf.h + include/fcl/math/matrix_3f.h + include/fcl/math/vec_3f.h + include/fcl/math/sampling.h + include/fcl/math/math_details.h + include/fcl/math/transform.h + include/fcl/traversal/traversal_node_shapes.h + include/fcl/traversal/traversal_node_setup.h + include/fcl/traversal/traversal_recurse.h + include/fcl/traversal/traversal_node_octree.h + include/fcl/traversal/traversal_node_bvhs.h + include/fcl/traversal/traversal_node_bvh_shape.h + include/fcl/traversal/traversal_node_base.h + include/fcl/data_types.h + include/fcl/articulated_model/model.h + include/fcl/articulated_model/joint_config.h + include/fcl/articulated_model/model_config.h + include/fcl/articulated_model/joint.h + include/fcl/articulated_model/link.h + include/fcl/BVH/BV_splitter.h + include/fcl/BVH/BVH_internal.h + include/fcl/BVH/BVH_model.h + include/fcl/BVH/BV_fitter.h + include/fcl/BVH/BVH_front.h + include/fcl/BVH/BVH_utility.h + include/fcl/intersect.h + include/fcl/collision_object.h + include/fcl/octree.h + ) + +pkg_config_append_libs("fcl") add_subdirectory(src) - -set(pkg_conf_file_in "${CMAKE_CURRENT_SOURCE_DIR}/fcl.pc.in") -set(pkg_conf_file_out "${CMAKE_CURRENT_BINARY_DIR}/fcl.pc") -configure_file("${pkg_conf_file_in}" "${pkg_conf_file_out}" @ONLY) - -install(DIRECTORY include/ DESTINATION include - FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" - PATTERN ".DS_Store" EXCLUDE -) - -install(FILES "${pkg_conf_file_out}" DESTINATION lib/pkgconfig/ COMPONENT pkgconfig) - -# Add uninstall target -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/CMakeModules/cmake_uninstall.cmake" - IMMEDIATE @ONLY) -add_custom_target(uninstall - "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/CMakeModules/cmake_uninstall.cmake") - -enable_testing() add_subdirectory(test) + +setup_project_finalize() diff --git a/cmake b/cmake new file mode 160000 index 00000000..bfaeb03c --- /dev/null +++ b/cmake @@ -0,0 +1 @@ +Subproject commit bfaeb03c13f01b4e10c36ea13b238b283d18a7bd diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in new file mode 100644 index 00000000..e69de29b diff --git a/include/fcl/config.h.in b/include/fcl/config.h.in deleted file mode 100644 index fc26c232..00000000 --- a/include/fcl/config.h.in +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Software License Agreement (BSD License) - * - * Copyright (c) 2012-2014, Willow Garage, Inc. - * Copyright (c) 2014-2015, Open Source Robotics Foundation - * 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 Open Source Robotics Foundation 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. - */ - -#ifndef FCL_CONFIG_ -#define FCL_CONFIG_ - -#define FCL_VERSION "@FCL_VERSION@" -#define FCL_MAJOR_VERSION @FCL_MAJOR_VERSION@ -#define FCL_MINOR_VERSION @FCL_MINOR_VERSION@ -#define FCL_PATCH_VERSION @FCL_PATCH_VERSION@ - -#cmakedefine01 FCL_HAVE_SSE -#cmakedefine01 FCL_HAVE_OCTOMAP -#cmakedefine01 FCL_HAVE_FLANN -#cmakedefine01 FCL_HAVE_TINYXML - -#cmakedefine01 FCL_BUILD_TYPE_DEBUG -#cmakedefine01 FCL_BUILD_TYPE_RELEASE - -#endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 05a00201..b4b1eb57 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,109 @@ -file(GLOB_RECURSE FCL_SOURCE_CODE ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) -if(FCL_STATIC_LIBRARY) - add_library(${PROJECT_NAME} STATIC ${FCL_HEADERS} ${FCL_SOURCE_CODE}) -else() - add_library(${PROJECT_NAME} SHARED ${FCL_HEADERS} ${FCL_SOURCE_CODE}) -endif() +# +# 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. -target_link_libraries(${PROJECT_NAME} ${CCD_LIBRARIES} ${OCTOMAP_LIBRARIES} ${Boost_LIBRARIES}) +set(LIBRARY_NAME ${PROJECT_NAME}) +set(${LIBRARY_NAME}_SOURCES + collision.cpp + distance_func_matrix.cpp + ccd/taylor_matrix.cpp + ccd/taylor_model.cpp + ccd/interval.cpp + ccd/interval_vector.cpp + ccd/conservative_advancement.cpp + ccd/taylor_vector.cpp + ccd/interval_matrix.cpp + ccd/interpolation/interpolation_linear.cpp + ccd/interpolation/interpolation_factory.cpp + ccd/interpolation/interpolation.cpp + ccd/motion.cpp + collision_data.cpp + collision_node.cpp + BV/RSS.cpp + BV/AABB.cpp + BV/kIOS.cpp + BV/kDOP.cpp + BV/OBBRSS.cpp + BV/OBB.cpp + narrowphase/gjk_libccd.cpp + narrowphase/narrowphase.cpp + narrowphase/gjk.cpp + broadphase/broadphase_bruteforce.cpp + broadphase/interval_tree.cpp + broadphase/broadphase_SaP.cpp + broadphase/broadphase_dynamic_AABB_tree.cpp + broadphase/broadphase_SSaP.cpp + broadphase/broadphase_dynamic_AABB_tree_array.cpp + broadphase/broadphase_interval_tree.cpp + broadphase/broadphase_spatialhash.cpp + broadphase/hierarchy_tree.cpp + shape/geometric_shapes.cpp + shape/geometric_shapes_utility.cpp + distance_capsule_capsule.cpp + intersect.cpp + math/transform.cpp + math/sampling.cpp + traversal/traversal_node_setup.cpp + traversal/traversal_node_bvhs.cpp + traversal/traversal_recurse.cpp + traversal/traversal_node_base.cpp + profile.cpp + continuous_collision.cpp + articulated_model/link.cpp + articulated_model/model.cpp + articulated_model/model_config.cpp + articulated_model/joint.cpp + articulated_model/joint_config.cpp + distance.cpp + BVH/BVH_utility.cpp + BVH/BV_fitter.cpp + BVH/BVH_model.cpp + BVH/BV_splitter.cpp + collision_func_matrix.cpp + ) -install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib/ LIBRARY DESTINATION lib/) +# Declare boost include directories +include_directories(${Boost_INCLUDE_DIRS}) +link_directories(${Boost_LIBRARY_DIRS}) + +add_library(${LIBRARY_NAME} + SHARED + ${${LIBRARY_NAME}_SOURCES} + ) +TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${Boost_LIBRARIES}) +PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} ccd) +PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} octomap) +#PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} flann) + + +install(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f12ba283..9efad9f8 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,26 +1,18 @@ +config_files(fcl_resources/config.h) + macro(add_fcl_test test_name) + MESSAGE("add_executable ${ARGV}") add_executable(${ARGV}) target_link_libraries(${test_name} fcl - ${Boost_SYSTEM_LIBRARY} - ${Boost_THREAD_LIBRARY} - ${Boost_DATE_TIME_LIBRARY} - ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) + ${Boost_LIBRARIES} + ) add_test(${test_name} ${EXECUTABLE_OUTPUT_PATH}/${test_name}) endmacro(add_fcl_test) -# configure location of resources -file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/fcl_resources" TEST_RESOURCES_SRC_DIR) -file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/fcl_resources" TEST_RESOURCES_BIN_DIR) -if(WIN32) - # Correct directory separator for Windows - string(REPLACE "\\" "\\\\" TEST_RESOURCES_SRC_DIR ${TEST_RESOURCES_SRC_DIR}) - string(REPLACE "\\" "\\\\" TEST_RESOURCES_BIN_DIR ${TEST_RESOURCES_BIN_DIR}) -endif(WIN32) -configure_file("${TEST_RESOURCES_SRC_DIR}/config.h.in" "${TEST_RESOURCES_BIN_DIR}/config.h") +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${Boost_INCLUDE_DIRS}) -include_directories(.) -include_directories("${CMAKE_CURRENT_BINARY_DIR}") add_fcl_test(test_fcl_collision test_fcl_collision.cpp test_fcl_utility.cpp) add_fcl_test(test_fcl_distance test_fcl_distance.cpp test_fcl_utility.cpp) @@ -43,14 +35,3 @@ if (FCL_HAVE_OCTOMAP) add_fcl_test(test_fcl_octomap test_fcl_octomap.cpp test_fcl_utility.cpp) endif() -#if (FCL_HAVE_TINYXML) -# add_executable(test_fcl_xmldata test_fcl_xmldata.cpp test_fcl_utility.cpp libsvm/svm.cpp) -# target_link_libraries(test_fcl_xmldata -# fcl -# ${TINYXML_LIBRARY_DIRS} -# ${Boost_SYSTEM_LIBRARY} -# ${Boost_THREAD_LIBRARY} -# ${Boost_DATE_TIME_LIBRARY} -# ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) -# add_test(test_fcl_xmldata ${EXECUTABLE_OUTPUT_PATH}/test_fcl_xmldata) -#endif() diff --git a/test/fcl_resources/config.h.in b/test/fcl_resources/config.h.in index 848ab014..0f876877 100644 --- a/test/fcl_resources/config.h.in +++ b/test/fcl_resources/config.h.in @@ -37,5 +37,5 @@ #ifndef FCL_TEST_RESOURCES_CONFIG_ #define FCL_TEST_RESOURCES_CONFIG_ -#define TEST_RESOURCES_DIR "@TEST_RESOURCES_SRC_DIR@" +#define TEST_RESOURCES_DIR "@PROJECT_SOURCE_DIR@/test/fcl_resources" #endif diff --git a/test/test_fcl_box_box_distance.cpp b/test/test_fcl_box_box_distance.cpp index 9a05b58b..67bf84dc 100644 --- a/test/test_fcl_box_box_distance.cpp +++ b/test/test_fcl_box_box_distance.cpp @@ -34,10 +34,10 @@ /** \author Florent Lamiraux <florent@laas.fr> */ -#define BOOST_TEST_MODULE "FCL_BOX_BOX" +#define BOOST_TEST_MODULE FCL_BOX_BOX #define CHECK_CLOSE_TO_0(x, eps) BOOST_CHECK_CLOSE ((x + 1.0), (1.0), (eps)) -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include <cmath> #include <fcl/distance.h> diff --git a/test/test_fcl_broadphase.cpp b/test/test_fcl_broadphase.cpp index 91d24bb4..d94fbbf9 100644 --- a/test/test_fcl_broadphase.cpp +++ b/test/test_fcl_broadphase.cpp @@ -37,7 +37,7 @@ #define BOOST_TEST_MODULE "FCL_BROADPHASE" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/config.h" #include "fcl/broadphase/broadphase.h" diff --git a/test/test_fcl_capsule_box_1.cpp b/test/test_fcl_capsule_box_1.cpp index fa469a6b..154409f4 100644 --- a/test/test_fcl_capsule_box_1.cpp +++ b/test/test_fcl_capsule_box_1.cpp @@ -37,7 +37,7 @@ #define BOOST_TEST_MODULE "FCL_GEOMETRIC_SHAPES" #define CHECK_CLOSE_TO_0(x, eps) BOOST_CHECK_CLOSE ((x + 1.0), (1.0), (eps)) -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include <cmath> #include <fcl/distance.h> diff --git a/test/test_fcl_capsule_box_2.cpp b/test/test_fcl_capsule_box_2.cpp index 64f00995..87959192 100644 --- a/test/test_fcl_capsule_box_2.cpp +++ b/test/test_fcl_capsule_box_2.cpp @@ -37,7 +37,7 @@ #define BOOST_TEST_MODULE "FCL_GEOMETRIC_SHAPES" #define CHECK_CLOSE_TO_0(x, eps) BOOST_CHECK_CLOSE ((x + 1.0), (1.0), (eps)) -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include <cmath> #include <fcl/distance.h> diff --git a/test/test_fcl_capsule_capsule.cpp b/test/test_fcl_capsule_capsule.cpp index 4e77a438..8de1f641 100644 --- a/test/test_fcl_capsule_capsule.cpp +++ b/test/test_fcl_capsule_capsule.cpp @@ -38,7 +38,7 @@ #define BOOST_TEST_MODULE "FCL_CAPSULE_CAPSULE" #define CHECK_CLOSE_TO_0(x, eps) BOOST_CHECK_CLOSE ((x + 1.0), (1.0), (eps)) -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include <cmath> #include <fcl/distance.h> diff --git a/test/test_fcl_collision.cpp b/test/test_fcl_collision.cpp index a3c5d6fa..74fdd850 100644 --- a/test/test_fcl_collision.cpp +++ b/test/test_fcl_collision.cpp @@ -36,7 +36,7 @@ /** \author Jia Pan */ #define BOOST_TEST_MODULE "FCL_COLLISION" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/traversal/traversal_node_bvhs.h" #include "fcl/traversal/traversal_node_setup.h" diff --git a/test/test_fcl_distance.cpp b/test/test_fcl_distance.cpp index 4bfa0156..23aecc6c 100644 --- a/test/test_fcl_distance.cpp +++ b/test/test_fcl_distance.cpp @@ -36,7 +36,7 @@ /** \author Jia Pan */ #define BOOST_TEST_MODULE "FCL_DISTANCE" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/traversal/traversal_node_bvhs.h" #include "fcl/traversal/traversal_node_setup.h" diff --git a/test/test_fcl_frontlist.cpp b/test/test_fcl_frontlist.cpp index 041cf632..fc4d61db 100644 --- a/test/test_fcl_frontlist.cpp +++ b/test/test_fcl_frontlist.cpp @@ -37,7 +37,7 @@ #define BOOST_TEST_MODULE "FCL_FRONT_LIST" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/traversal/traversal_node_bvhs.h" #include "fcl/traversal/traversal_node_setup.h" diff --git a/test/test_fcl_geometric_shapes.cpp b/test/test_fcl_geometric_shapes.cpp index f3f0d689..92c30dc8 100644 --- a/test/test_fcl_geometric_shapes.cpp +++ b/test/test_fcl_geometric_shapes.cpp @@ -37,7 +37,7 @@ #define BOOST_TEST_MODULE "FCL_GEOMETRIC_SHAPES" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/narrowphase/narrowphase.h" #include "fcl/collision.h" diff --git a/test/test_fcl_math.cpp b/test/test_fcl_math.cpp index 9270213e..f26cfb84 100644 --- a/test/test_fcl_math.cpp +++ b/test/test_fcl_math.cpp @@ -35,7 +35,7 @@ #define BOOST_TEST_MODULE "FCL_MATH" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #if FCL_HAVE_SSE #include "fcl/simd/math_simd_details.h" diff --git a/test/test_fcl_octomap.cpp b/test/test_fcl_octomap.cpp index 0d4b49cc..fe826b2e 100644 --- a/test/test_fcl_octomap.cpp +++ b/test/test_fcl_octomap.cpp @@ -36,7 +36,7 @@ /** \author Jia Pan */ #define BOOST_TEST_MODULE "FCL_OCTOMAP" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/config.h" #include "fcl/octree.h" diff --git a/test/test_fcl_shape_mesh_consistency.cpp b/test/test_fcl_shape_mesh_consistency.cpp index 552f3fe1..1cf09511 100644 --- a/test/test_fcl_shape_mesh_consistency.cpp +++ b/test/test_fcl_shape_mesh_consistency.cpp @@ -36,7 +36,7 @@ /** \author Jia Pan */ #define BOOST_TEST_MODULE "FCL_SHAPE_MESH_CONSISTENCY" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/narrowphase/narrowphase.h" #include "fcl/shape/geometric_shape_to_BVH_model.h" diff --git a/test/test_fcl_simple.cpp b/test/test_fcl_simple.cpp index 37688dd5..45dc3493 100644 --- a/test/test_fcl_simple.cpp +++ b/test/test_fcl_simple.cpp @@ -1,5 +1,5 @@ #define BOOST_TEST_MODULE "FCL_SIMPLE" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/intersect.h" #include "fcl/collision.h" diff --git a/test/test_fcl_sphere_capsule.cpp b/test/test_fcl_sphere_capsule.cpp index e9612b39..4c040c5d 100644 --- a/test/test_fcl_sphere_capsule.cpp +++ b/test/test_fcl_sphere_capsule.cpp @@ -36,7 +36,7 @@ /** \author Martin Felis <martin.felis@iwr.uni-heidelberg.de> */ #define BOOST_TEST_MODULE "FCL_SPHERE_CAPSULE" -#include <boost/test/unit_test.hpp> +#include <boost/test/included/unit_test.hpp> #include "fcl/collision.h" #include "fcl/shape/geometric_shapes.h" -- GitLab