From 7b6d281733d21fcf1706b01baf277a89fb6d161a Mon Sep 17 00:00:00 2001 From: vahrenkamp <vahrenkamp@042f3d55-54a8-47e9-b7fb-15903f145c44> Date: Fri, 10 Jan 2014 21:16:04 +0000 Subject: [PATCH] Major change in cmake setup: * Simox projects are not longer treated as stand-alone-projects, but as subprojects of simox. This avoids lots of confusions that have been ontroduced due to the VirtualRobot stand-alone project. * cmake build-config and install setup has been improved and is consistent through the whole project. * switched to version 2.3.0 git-svn-id: http://svn.code.sf.net/p/simox/code/trunk@466 042f3d55-54a8-47e9-b7fb-15903f145c44 --- CMakeLists.txt | 142 +++----- .../FindCoin3D.cmake | 188 +++++----- .../FindEigen3.cmake | 172 +++++----- CMakeModules/FindSimox.cmake | 52 --- .../FindSoQt.cmake | 126 +++---- CMakeModules/SimoxConfig.cmake.in | 76 ++--- CMakeModules/SimoxConfigVersion.cmake.in | 3 +- CMakeModules/SimoxExternalLibrarySetup.cmake | 16 - CMakeModules/SimoxMacros.cmake | 48 ++- GraspPlanning/CMakeLists.txt | 82 ++--- GraspPlanning/ConvexHullGenerator.cpp | 2 +- .../powercrust/CMakeLists.txt | 27 +- .../qhull-2003.1/CMakeLists.txt | 28 +- .../GraspPlanner/GenericGraspPlanner.cpp | 6 +- .../GraspPlanner/GenericGraspPlanner.h | 4 +- .../MATPlanner/CandidateGraspTester.cpp | 4 +- .../MATPlanner/CandidateGraspTester.h | 2 +- .../GraspPlanner/MATPlanner/Converter.h | 98 +++--- .../MATPlanner/GridOfMedialSpheres.cpp | 6 +- .../GraspPlanner/MATPlanner/MatGraspPlanner.h | 2 +- GraspPlanning/config.cmake | 55 --- .../examples/GraspPlanner/CMakeLists.txt | 30 +- .../examples/GraspQuality/CMakeLists.txt | 57 ++-- .../examples/MATGraspPlanner/CMakeLists.txt | 58 ++-- .../MATGraspPlanner/MatGraspPlannerWindow.h | 10 +- MotionPlanning/CMakeLists.txt | 85 ++--- .../PostProcessing/ShortcutProcessor.cpp | 4 +- .../CoinRrtWorkspaceVisualization.cpp | 6 +- .../RrtWorkspaceVisualization.cpp | 2 +- MotionPlanning/config.cmake | 58 ---- .../examples/GraspRRT/CMakeLists.txt | 53 +-- MotionPlanning/examples/IKRRT/CMakeLists.txt | 45 ++- .../MultiThreadedPlanning/CMakeLists.txt | 30 +- .../MTPlanningScenery.cpp | 6 +- .../MultiThreadedPlanning/MTPlanningScenery.h | 12 +- .../MultiThreadedPlanning/MTPlanningWindow.h | 2 +- MotionPlanning/examples/RRT/CMakeLists.txt | 44 +-- MotionPlanning/examples/RRT/RRTdemo.cpp | 8 +- MotionPlanning/examples/RrtGui/CMakeLists.txt | 57 ++-- SimDynamics/CMakeLists.txt | 303 +++++++++++------ SimDynamics/CMakeModules/FindBullet.cmake | 4 +- .../BulletEngine/BulletRobot.cpp | 2 +- SimDynamics/README.txt | 5 +- SimDynamics/config.cmake | 155 --------- .../BulletDebugViewerGlut.cpp | 2 +- .../BulletDebugViewerGlut/CMakeLists.txt | 51 +-- .../examples/SimDynamicsViewer/CMakeLists.txt | 31 +- VirtualRobot/CMakeLists.txt | 215 +++--------- .../CMakeModules/FindVirtualRobot.cmake | 58 ---- .../CMakeModules/VirtualRobotConfig.cmake.in | 57 ---- .../VirtualRobotConfigDependencies.cmake | 169 --------- .../VirtualRobotConfigVersion.cmake.in | 13 - .../VirtualRobotExternalLibrarySetup.cmake | 43 --- .../CMakeModules/VirtualRobotMacros.cmake | 30 -- .../CollisionDetection/CMakeLists.txt | 10 +- .../CollisionDetection/CollisionModel.cpp | 4 +- .../PQP/PQP++/CMakeLists.txt | 42 ++- VirtualRobot/VirtualRobot.h | 5 +- VirtualRobot/VirtualRobotTest.h | 10 +- .../Workspace/WorkspaceRepresentation.cpp | 3 +- VirtualRobot/config.cmake | 127 ------- VirtualRobot/definesVR.h.cmake | 8 - .../examples/GenericIK/CMakeLists.txt | 70 ++-- .../examples/GraspEditor/CMakeLists.txt | 68 ++-- VirtualRobot/examples/Jacobi/CMakeLists.txt | 71 ++-- .../examples/ReachabilityMap/CMakeLists.txt | 47 +-- .../examples/RobotViewer/CMakeLists.txt | 70 ++-- .../examples/SceneViewer/CMakeLists.txt | 64 ++-- .../examples/loadRobot/CMakeLists.txt | 23 +- .../examples/reachability/CMakeLists.txt | 68 ++-- .../examples/stability/CMakeLists.txt | 66 ++-- config.cmake | 321 ++++++++++++++++-- doc/CMakeLists.txt | 2 +- 73 files changed, 1633 insertions(+), 2290 deletions(-) rename {VirtualRobot/CMakeModules => CMakeModules}/FindCoin3D.cmake (97%) rename {VirtualRobot/CMakeModules => CMakeModules}/FindEigen3.cmake (97%) delete mode 100644 CMakeModules/FindSimox.cmake rename {VirtualRobot/CMakeModules => CMakeModules}/FindSoQt.cmake (97%) delete mode 100644 CMakeModules/SimoxExternalLibrarySetup.cmake delete mode 100644 GraspPlanning/config.cmake delete mode 100644 MotionPlanning/config.cmake delete mode 100644 SimDynamics/config.cmake delete mode 100644 VirtualRobot/CMakeModules/FindVirtualRobot.cmake delete mode 100644 VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in delete mode 100644 VirtualRobot/CMakeModules/VirtualRobotConfigDependencies.cmake delete mode 100644 VirtualRobot/CMakeModules/VirtualRobotConfigVersion.cmake.in delete mode 100644 VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake delete mode 100644 VirtualRobot/CMakeModules/VirtualRobotMacros.cmake delete mode 100644 VirtualRobot/config.cmake delete mode 100644 VirtualRobot/definesVR.h.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5339115fc..c8cd05e2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ PROJECT(Simox) cmake_minimum_required(VERSION 2.6) if(NOT ("${CMAKE_VERSION}" VERSION_LESS 2.8.12)) - cmake_policy(SET CMP0022 OLD) # avoid INTERFACE_LINK_LIBRARIES warninss + cmake_policy(SET CMP0022 OLD) # avoid INTERFACE_LINK_LIBRARIES warnings ENDIF() MESSAGE(STATUS "******************** Configuring Simox ************************") @@ -15,16 +15,23 @@ set (Simox_BUILD_SimDynamics FALSE CACHE BOOL "Build Dynamic Simulation") INCLUDE (config.cmake) -MESSAGE(STATUS "\n** SETTING Simox target directory to: ${Simox_BUILD_DIRECTORY}") +MESSAGE(STATUS "** Simox build directory: ${Simox_BUILD_DIRECTORY}") add_subdirectory(VirtualRobot) +set (SIMOX_EXPORT_TARGET_LIST VirtualRobot) +list(APPEND SIMOX_EXPORT_TARGET_LIST ColCheckerPQP) if (Simox_BUILD_Saba) add_subdirectory(MotionPlanning) + list(APPEND SIMOX_EXPORT_TARGET_LIST Saba) endif() if (Simox_BUILD_GraspStudio) add_subdirectory(GraspPlanning) + list(APPEND SIMOX_EXPORT_TARGET_LIST GraspStudio) + list(APPEND SIMOX_EXPORT_TARGET_LIST qhull) + list(APPEND SIMOX_EXPORT_TARGET_LIST powercrust) endif() if (Simox_BUILD_SimDynamics) add_subdirectory(SimDynamics) + list(APPEND SIMOX_EXPORT_TARGET_LIST SimDynamics) endif() add_subdirectory(doc) @@ -34,110 +41,55 @@ add_subdirectory(doc) ####################################################################### ############################################ -MESSAGE (STATUS "\n ***** Simox: Generating CMake files for build and install setup") +MESSAGE (STATUS "** Simox: Generating CMake files for build and install setup") -set(Simox_LIBRARIES VirtualRobot Saba GraspStudio) -if (Simox_BUILD_SimDynamics) - set(Simox_LIBRARIES "Simox_LIBRARIES" "SimDynamics") -endif() -set(Simox_EXECUTABLES "") +# Add all targets to the build-tree export set + +export(TARGETS ${SIMOX_EXPORT_TARGET_LIST} + FILE "${PROJECT_BINARY_DIR}/SimoxTargets.cmake") + # Export the package for use from the build-tree # (this registers the build-tree with a global CMake-registry) -EXPORT(PACKAGE Simox) - -# import Virtual-Robot configs (build) -SET (VirtualRobot_CONFIG_INBUILD "${Simox_BUILD_DIRECTORY}/share/VirtualRobot/cmake/VirtualRobotConfig.cmake") -SET (VirtualRobot_CONFIG_INSTALL_LOCAL "${Simox_BUILD_DIRECTORY}/InstallFiles/VirtualRobotConfig.cmake") -#MESSAGE ("VirtualRobot_CONFIG_INBUILD = ${VirtualRobot_CONFIG_INBUILD}") -#MESSAGE ("VirtualRobot_CONFIG_INSTALL_LOCAL = ${VirtualRobot_CONFIG_INSTALL_LOCAL}") -include ("${VirtualRobot_CONFIG_INBUILD}") - -# Create an SimoxConfig.cmake file for the use from the build tree -SET(Simox_LIBRARIES_ALL "${VirtualRobot_LIBRARIES}" "Saba" "GraspStudio") -if (Simox_BUILD_SimDynamics) - SET(Simox_LIBRARIES_ALL "${Simox_LIBRARIES_ALL}" "SimDynamics" "${SimDynamics_EXTERNAL_LIBRARIES}") - #MESSAGE ("Simox_LIBRARIES_ALL: ${Simox_LIBRARIES_ALL}") - #MESSAGE ("SimDynamics_PHYSICS_LIBRARIES: ${SimDynamics_PHYSICS_LIBRARIES}") - #MESSAGE ("SABA_INCLUDE_DIRS: ${SABA_INCLUDE_DIRS}") - -endif() -SET(Simox_BASE_DIR "${PROJECT_SOURCE_DIR}") -SET(Simox_INCLUDE_DIRS "${VirtualRobot_INCLUDE_DIRS}" "${GRASP_STUDIO_INCLUDE_DIRS}" "${SABA_INCLUDE_DIRS}" "${SIMDYNAMICS_INCLUDE_DIRS}") - #MESSAGE ("VirtualRobot_INCLUDE_DIRS: ${VirtualRobot_INCLUDE_DIRS}") - #MESSAGE ("Simox_INCLUDE_DIRS: ${Simox_INCLUDE_DIRS}") - #MESSAGE ("Simox_LIBRARIES_ALL: ${Simox_LIBRARIES_ALL}") -SET(Simox_LIB_DIRS "${VirtualRobot_LIBRARY_DIRS}" "${GRASP_STUDIO_LIBRARY_DIRS}" "${SABA_LIBRARY_DIRS}" "${SIMDYNAMICS_LIBRARY_DIRS}") - #MESSAGE ("Simox_LIB_DIRS: ${Simox_LIB_DIRS}") -SET(Simox_LIB_FLAGS "${VirtualRobot_COMPILE_FLAGS} ${GRASP_STUDIO_COMPILE_FLAGS} ${SABA_COMPILE_FLAGS} ${SIMDYNAMICS_COMPILE_FLAGS}") - #MESSAGE ("Simox_LIB_FLAGS: ${Simox_LIB_FLAGS}") -SET(Simox_CMAKE_DIR "${Simox_BUILD_DIRECTORY}/share/Simox/cmake") -SET(VirtualRobot_CMAKE_DIR "${Simox_BUILD_DIRECTORY}/share/VirtualRobot/cmake") -SET(Simox_LIBRARY_CMAKE_INCLUDE "${VirtualRobot_CMAKE_INCLUDE}") -SET(Simox_DATA_PATH "${VirtualRobot_DATA_PATH}") - -# the SimoxConfig.cmake will be used by external porjects to setup Simox via the FindPackage method. -# So it must be located in the Simox_DIR directory (build-tree -> Simox_BUILD_DIRECTORY) -configure_file( - ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfig.cmake.in - "${Simox_BUILD_DIRECTORY}/share/Simox/cmake/SimoxConfig.cmake" - @ONLY) - -configure_file( - ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in - "${Simox_BUILD_DIRECTORY}/share/Simox/cmake/SimoxConfigVersion.cmake" - @ONLY) - -configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake" - "${Simox_BUILD_DIRECTORY}/share/Simox/cmake/SimoxExternalLibrarySetup.cmake" COPYONLY) -configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake" - "${Simox_BUILD_DIRECTORY}/share/Simox/cmake/SimoxMacros.cmake" COPYONLY) -#configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake" -# "${Simox_BUILD_DIRECTORY}/share/Simox/cmake/FindSimox.cmake" COPYONLY) +export(PACKAGE Simox) -# Create an SimoxConfig.cmake file for the use from the install tree -# and install it - -# import Virtual-Robot configs (install) -# do not include files from install tree here (the files are not installed yet. So include them manually from inbuild) -SET (VirtualRobot_DISABLE_DEPENDENCIES_INCLUDE TRUE) -include ("${VirtualRobot_CONFIG_INSTALL_LOCAL}") -include(${PROJECT_SOURCE_DIR}/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake) -include(${PROJECT_SOURCE_DIR}/VirtualRobot/CMakeModules/VirtualRobotMacros.cmake) - -SET(Simox_INCLUDE_DIRS "${VirtualRobot_INCLUDE_DIRS}" "${GRASP_STUDIO_INCLUDE_DIRS}" "${SABA_INCLUDE_DIRS}" "${SIMDYNAMICS_INCLUDE_DIRS}") -SET(Simox_LIB_DIRS "${VirtualRobot_LIBRARY_DIRS}" "${GRASP_STUDIO_LIBRARY_DIRS}" "${SABA_LIBRARY_DIRS}" "${SIMDYNAMICS_LIBRARY_DIRS}") -SET(Simox_LIB_FLAGS "${VirtualRobot_COMPILE_FLAGS} ${GRASP_STUDIO_COMPILE_FLAGS} ${SABA_COMPILE_FLAGS} ${SIMDYNAMICS_COMPILE_FLAGS}") -SET(Simox_BASE_DIR "${CMAKE_INSTALL_PREFIX}/include") -SET(Simox_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/share/Simox/cmake") -SET(VirtualRobot_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/share/VirtualRobot/cmake") -SET(Simox_DATA_PATH "${CMAKE_INSTALL_PREFIX}/data") -configure_file( - ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfig.cmake.in - "${Simox_BUILD_DIRECTORY}/InstallFiles/SimoxConfig.cmake" - @ONLY) -configure_file( - ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in - "${Simox_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake" - @ONLY) -# The SimoxConfig.cmake will be used by external projects to setup Simox via the FindPackage method. -# So it must be located in the Simox_DIR directory (install-tree -> CMAKE_INSTALL_PREFIX) -# changed from DESTINATION "${CMAKE_INSTALL_PREFIX}" to "${Simox_CMAKE_DIR}" +# Create the SimoxConfig.cmake and SimoxVersion files +file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" + "${INSTALL_INCLUDE_DIR}") +# ... for the build tree +set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}") +set (Simox_DATA_PATH ${Simox_DATA_DIR}) +set (Simox_MACROS_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/CMakeModules") +configure_file(CMakeModules/SimoxConfig.cmake.in + "${PROJECT_BINARY_DIR}/SimoxConfig.cmake" @ONLY) +# ... for the install tree +set(CONF_INCLUDE_DIRS "\${Simox_CMAKE_DIR}/${REL_INCLUDE_DIR}") +set (Simox_DATA_PATH ${Simox_INSTALL_DATA_DIR}) +set (Simox_MACROS_INCLUDE_DIR "\${Simox_CMAKE_DIR}") +configure_file(CMakeModules/SimoxConfig.cmake.in + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/SimoxConfig.cmake" @ONLY) +# ... for both +configure_file(CMakeModules/SimoxConfigVersion.cmake.in + "${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake" @ONLY) + +# Install the SimoxConfig.cmake and SimoxConfigVersion.cmake install(FILES - "${Simox_BUILD_DIRECTORY}/InstallFiles/SimoxConfig.cmake" - "${Simox_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake" - DESTINATION "${Simox_CMAKE_DIR}" - COMPONENT ApplicationData - ) -#removed "${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake" - + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/SimoxConfig.cmake" + "${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake" + DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) + install(FILES - "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake" "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake" - DESTINATION "${Simox_CMAKE_DIR}" + DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT ApplicationData ) + +# Install the export set for use with the install-tree +install(EXPORT SimoxTargets DESTINATION + "${INSTALL_CMAKE_DIR}" COMPONENT dev) + + ############################################################# # PACKAGING (DEB) diff --git a/VirtualRobot/CMakeModules/FindCoin3D.cmake b/CMakeModules/FindCoin3D.cmake similarity index 97% rename from VirtualRobot/CMakeModules/FindCoin3D.cmake rename to CMakeModules/FindCoin3D.cmake index 69a99d880..4db8d9f16 100644 --- a/VirtualRobot/CMakeModules/FindCoin3D.cmake +++ b/CMakeModules/FindCoin3D.cmake @@ -1,94 +1,94 @@ -# - Find Coin3D (Open Inventor) -# Coin3D is an implementation of the Open Inventor API. -# It provides data structures and algorithms for 3D visualization -# http://www.coin3d.org/ -# -# This module defines the following variables -# COIN3D_FOUND - system has Coin3D - Open Inventor -# COIN3D_INCLUDE_DIRS - where the Inventor include directory can be found -# COIN3D_LIBRARIES - Link to this to use Coin3D -# -# The Coin directory can be defined by the environment variable <Coin3D_DIR> - -#============================================================================= -# Copyright 2008-2009 Kitware, Inc. -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -IF (WIN32) - IF (CYGWIN) - - FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h) - FIND_LIBRARY(COIN3D_LIBRARIES Coin) - - ELSE (CYGWIN) - - FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/include" - $ENV{Coin3D_DIR}/include - $ENV{COINDIR}/include - ) - - FIND_LIBRARY(COIN3D_LIBRARY_DEBUG coin3d - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/lib" - $ENV{Coin3D_DIR}/lib - $ENV{COINDIR}/lib - ) - - FIND_LIBRARY(COIN3D_LIBRARY_RELEASE coin3 - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/lib" - $ENV{Coin3D_DIR}/lib - $ENV{COINDIR}/lib - ) - - IF (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) - SET(COIN3D_LIBRARIES optimized ${COIN3D_LIBRARY_RELEASE} - debug ${COIN3D_LIBRARY_DEBUG}) - ELSE (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) - IF (COIN3D_LIBRARY_DEBUG) - SET (COIN3D_LIBRARIES ${COIN3D_LIBRARY_DEBUG}) - ENDIF (COIN3D_LIBRARY_DEBUG) - IF (COIN3D_LIBRARY_RELEASE) - SET (COIN3D_LIBRARIES ${COIN3D_LIBRARY_RELEASE}) - ENDIF (COIN3D_LIBRARY_RELEASE) - ENDIF (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) - - ENDIF (CYGWIN) - -ELSE (WIN32) - IF(APPLE) - FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h - /Library/Frameworks/Inventor.framework/Headers - ) - FIND_LIBRARY(COIN3D_LIBRARIES Coin - /Library/Frameworks/Inventor.framework/Libraries - ) - SET(COIN3D_LIBRARIES "-framework Coin3d" CACHE STRING "Coin3D library for OSX") - ELSE(APPLE) - - find_path( COIN3D_INCLUDE_DIRS NAMES Inventor/So.h PATHS $ENV{Coin3D_DIR}/include /usr/include /usr/local/include NO_DEFAULT_PATH ) - find_library( COIN3D_LIBRARIES NAMES Coin PATHS $ENV{Coin3D_DIR}/lib /usr/lib /usr/local/lib NO_DEFAULT_PATH ) -#FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h $ENV{COIN3D_DIR}/include) -#FIND_LIBRARY(COIN3D_LIBRARIES Coin $ENV{COIN3D_DIR}/lib) - - ENDIF(APPLE) - -ENDIF (WIN32) - -# handle the QUIETLY and REQUIRED arguments and set COIN3D_FOUND to TRUE if -# all listed variables are TRUE -#INCLUDE("${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake") -INCLUDE( FindPackageHandleStandardArgs ) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Coin3D DEFAULT_MSG COIN3D_LIBRARIES COIN3D_INCLUDE_DIRS) - -MARK_AS_ADVANCED(COIN3D_INCLUDE_DIRS COIN3D_LIBRARIES ) - - +# - Find Coin3D (Open Inventor) +# Coin3D is an implementation of the Open Inventor API. +# It provides data structures and algorithms for 3D visualization +# http://www.coin3d.org/ +# +# This module defines the following variables +# COIN3D_FOUND - system has Coin3D - Open Inventor +# COIN3D_INCLUDE_DIRS - where the Inventor include directory can be found +# COIN3D_LIBRARIES - Link to this to use Coin3D +# +# The Coin directory can be defined by the environment variable <Coin3D_DIR> + +#============================================================================= +# Copyright 2008-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +IF (WIN32) + IF (CYGWIN) + + FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h) + FIND_LIBRARY(COIN3D_LIBRARIES Coin) + + ELSE (CYGWIN) + + FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/include" + $ENV{Coin3D_DIR}/include + $ENV{COINDIR}/include + ) + + FIND_LIBRARY(COIN3D_LIBRARY_DEBUG coin3d + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/lib" + $ENV{Coin3D_DIR}/lib + $ENV{COINDIR}/lib + ) + + FIND_LIBRARY(COIN3D_LIBRARY_RELEASE coin3 + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/lib" + $ENV{Coin3D_DIR}/lib + $ENV{COINDIR}/lib + ) + + IF (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) + SET(COIN3D_LIBRARIES optimized ${COIN3D_LIBRARY_RELEASE} + debug ${COIN3D_LIBRARY_DEBUG}) + ELSE (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) + IF (COIN3D_LIBRARY_DEBUG) + SET (COIN3D_LIBRARIES ${COIN3D_LIBRARY_DEBUG}) + ENDIF (COIN3D_LIBRARY_DEBUG) + IF (COIN3D_LIBRARY_RELEASE) + SET (COIN3D_LIBRARIES ${COIN3D_LIBRARY_RELEASE}) + ENDIF (COIN3D_LIBRARY_RELEASE) + ENDIF (COIN3D_LIBRARY_DEBUG AND COIN3D_LIBRARY_RELEASE) + + ENDIF (CYGWIN) + +ELSE (WIN32) + IF(APPLE) + FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h + /Library/Frameworks/Inventor.framework/Headers + ) + FIND_LIBRARY(COIN3D_LIBRARIES Coin + /Library/Frameworks/Inventor.framework/Libraries + ) + SET(COIN3D_LIBRARIES "-framework Coin3d" CACHE STRING "Coin3D library for OSX") + ELSE(APPLE) + + find_path( COIN3D_INCLUDE_DIRS NAMES Inventor/So.h PATHS $ENV{Coin3D_DIR}/include /usr/include /usr/local/include NO_DEFAULT_PATH ) + find_library( COIN3D_LIBRARIES NAMES Coin PATHS $ENV{Coin3D_DIR}/lib /usr/lib /usr/local/lib NO_DEFAULT_PATH ) +#FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h $ENV{COIN3D_DIR}/include) +#FIND_LIBRARY(COIN3D_LIBRARIES Coin $ENV{COIN3D_DIR}/lib) + + ENDIF(APPLE) + +ENDIF (WIN32) + +# handle the QUIETLY and REQUIRED arguments and set COIN3D_FOUND to TRUE if +# all listed variables are TRUE +#INCLUDE("${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake") +INCLUDE( FindPackageHandleStandardArgs ) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Coin3D DEFAULT_MSG COIN3D_LIBRARIES COIN3D_INCLUDE_DIRS) + +MARK_AS_ADVANCED(COIN3D_INCLUDE_DIRS COIN3D_LIBRARIES ) + + diff --git a/VirtualRobot/CMakeModules/FindEigen3.cmake b/CMakeModules/FindEigen3.cmake similarity index 97% rename from VirtualRobot/CMakeModules/FindEigen3.cmake rename to CMakeModules/FindEigen3.cmake index b5de7e8d8..212cae379 100644 --- a/VirtualRobot/CMakeModules/FindEigen3.cmake +++ b/CMakeModules/FindEigen3.cmake @@ -1,86 +1,86 @@ -# - Try to find Eigen3 lib -# -# This module supports requiring a minimum version, e.g. you can do -# find_package(Eigen3 3.1.2) -# to require version 3.1.2 or newer of Eigen3. -# -# Once done this will define -# -# Eigen3_FOUND - system has eigen lib with correct version -# Eigen3_INCLUDE_DIR - the eigen include directory -# Eigen3_VERSION - eigen version - -# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org> -# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr> -# Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com> -# Copyright (c) 2011 Manfred Kroehnert <Manfred.Kroehnert@kit.edu> "No all uppercase variable names" -# Redistribution and use is allowed according to the terms of the 2-clause BSD license. - -if(NOT Eigen3_FIND_VERSION) - if(NOT Eigen3_FIND_VERSION_MAJOR) - set(Eigen3_FIND_VERSION_MAJOR 2) - endif(NOT Eigen3_FIND_VERSION_MAJOR) - if(NOT Eigen3_FIND_VERSION_MINOR) - set(Eigen3_FIND_VERSION_MINOR 91) - endif(NOT Eigen3_FIND_VERSION_MINOR) - if(NOT Eigen3_FIND_VERSION_PATCH) - set(Eigen3_FIND_VERSION_PATCH 0) - endif(NOT Eigen3_FIND_VERSION_PATCH) - - set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") -endif(NOT Eigen3_FIND_VERSION) - -macro(_eigen3_check_version) - file(READ "${Eigen3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) - - string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") - set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") - set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") - set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") - - set(Eigen3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) - if(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(Eigen3_VERSION_OK FALSE) - else(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(Eigen3_VERSION_OK TRUE) - endif(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - - if(NOT Eigen3_VERSION_OK) - - message(STATUS "Eigen3 version ${Eigen3_VERSION} found in ${Eigen3_INCLUDE_DIR}, " - "but at least version ${Eigen3_FIND_VERSION} is required") - endif(NOT Eigen3_VERSION_OK) -endmacro(_eigen3_check_version) - -if (Eigen3_INCLUDE_DIR) - - # in cache already - _eigen3_check_version() - set(Eigen3_FOUND ${Eigen3_VERSION_OK}) - -else (Eigen3_INCLUDE_DIR) - - find_path(Eigen3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library - PATHS - ${CMAKE_INSTALL_PREFIX}/include - ${KDE4_INCLUDE_DIR} - ${Eigen3_DIR} - $ENV{Eigen3_DIR} - /org/share/archive/SFB588_RefDist/eigen3/ - PATH_SUFFIXES eigen3 eigen - ) - - if(Eigen3_INCLUDE_DIR) - _eigen3_check_version() - set(Eigen3_FOUND ${Eigen3_VERSION_OK}) - endif(Eigen3_INCLUDE_DIR) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Eigen3 DEFAULT_MSG Eigen3_INCLUDE_DIR Eigen3_VERSION_OK) - - mark_as_advanced(Eigen3_INCLUDE_DIR) - -endif(Eigen3_INCLUDE_DIR) - +# - Try to find Eigen3 lib +# +# This module supports requiring a minimum version, e.g. you can do +# find_package(Eigen3 3.1.2) +# to require version 3.1.2 or newer of Eigen3. +# +# Once done this will define +# +# Eigen3_FOUND - system has eigen lib with correct version +# Eigen3_INCLUDE_DIR - the eigen include directory +# Eigen3_VERSION - eigen version + +# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org> +# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr> +# Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com> +# Copyright (c) 2011 Manfred Kroehnert <Manfred.Kroehnert@kit.edu> "No all uppercase variable names" +# Redistribution and use is allowed according to the terms of the 2-clause BSD license. + +if(NOT Eigen3_FIND_VERSION) + if(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 2) + endif(NOT Eigen3_FIND_VERSION_MAJOR) + if(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 91) + endif(NOT Eigen3_FIND_VERSION_MINOR) + if(NOT Eigen3_FIND_VERSION_PATCH) + set(Eigen3_FIND_VERSION_PATCH 0) + endif(NOT Eigen3_FIND_VERSION_PATCH) + + set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") +endif(NOT Eigen3_FIND_VERSION) + +macro(_eigen3_check_version) + file(READ "${Eigen3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") + set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + + set(Eigen3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + if(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(Eigen3_VERSION_OK FALSE) + else(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(Eigen3_VERSION_OK TRUE) + endif(${Eigen3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + + if(NOT Eigen3_VERSION_OK) + + message(STATUS "Eigen3 version ${Eigen3_VERSION} found in ${Eigen3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") + endif(NOT Eigen3_VERSION_OK) +endmacro(_eigen3_check_version) + +if (Eigen3_INCLUDE_DIR) + + # in cache already + _eigen3_check_version() + set(Eigen3_FOUND ${Eigen3_VERSION_OK}) + +else (Eigen3_INCLUDE_DIR) + + find_path(Eigen3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + PATHS + ${CMAKE_INSTALL_PREFIX}/include + ${KDE4_INCLUDE_DIR} + ${Eigen3_DIR} + $ENV{Eigen3_DIR} + /org/share/archive/SFB588_RefDist/eigen3/ + PATH_SUFFIXES eigen3 eigen + ) + + if(Eigen3_INCLUDE_DIR) + _eigen3_check_version() + set(Eigen3_FOUND ${Eigen3_VERSION_OK}) + endif(Eigen3_INCLUDE_DIR) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG Eigen3_INCLUDE_DIR Eigen3_VERSION_OK) + + mark_as_advanced(Eigen3_INCLUDE_DIR) + +endif(Eigen3_INCLUDE_DIR) + diff --git a/CMakeModules/FindSimox.cmake b/CMakeModules/FindSimox.cmake deleted file mode 100644 index 345b45b39..000000000 --- a/CMakeModules/FindSimox.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# Find SIMOX -# -# This find script searches for simox and includes all neccessary config files. -# -# Search order -## 1. ${Custom_Simox_DIR} -## 2. ${Simox_DIR} -## 3. $ENV{Simox_DIR} -## [ The paths should point to either the build or the install directory or Simox ] -# -# The following variables are set: -## Simox_FOUND - TRUE on success -## Simox_INCLUDE_DIR - The include directory -## Simox_LIBRARIES - The libraries -# -# -# A CMakeLists.txt file for setting up a simox related project could look like this: -# -## PROJECT ( myDemo ) -## FIND_PACKAGE(Simox REQUIRED) -## IF(Simox_USE_COIN_VISUALIZATION) -## FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp) -## FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/myWindow.h) -## set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/myWindow.h) -## set(GUI_UIS ${PROJECT_SOURCE_DIR}/myWindow.ui) -## SimoxQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") -## ENDIF() - -#### CMAKE CONFIG - -find_path( Simox_DIR SimoxConfig.cmake - "${Custom_Simox_DIR}" - "${Simox_DIR}" - "$ENV{Simox_DIR}") - -SET (Simox_CMAKE_CONFIG ${Simox_DIR}/SimoxConfig.cmake) -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * Including ${Simox_CMAKE_CONFIG}") -endif() -include (${Simox_CMAKE_CONFIG}) - -if( Simox_LIBRARIES AND Simox_BASE_DIR) - set( Simox_FOUND TRUE ) - set( VirtualRobot_FOUND TRUE ) - set( Simox_INCLUDE_DIR ${Simox_BASE_DIR} ) - set( Simox_LIBRARY ${Simox_LIBRARIES} ) -endif() - -include( FindPackageHandleStandardArgs ) -find_package_handle_standard_args( Simox DEFAULT_MSG Simox_LIBRARIES Simox_INCLUDE_DIR ) - -mark_as_advanced( Simox_INCLUDE_DIR Simox_LIBRARIES ) diff --git a/VirtualRobot/CMakeModules/FindSoQt.cmake b/CMakeModules/FindSoQt.cmake similarity index 97% rename from VirtualRobot/CMakeModules/FindSoQt.cmake rename to CMakeModules/FindSoQt.cmake index ff5ddf090..bd55902fb 100644 --- a/VirtualRobot/CMakeModules/FindSoQt.cmake +++ b/CMakeModules/FindSoQt.cmake @@ -1,63 +1,63 @@ -# - Find SoQt (Open Inventor Qt Integration) -# SoQt is an implementation of the Open Inventor API. -# It provides data structures and algorithms for 3D visualization -# http://www.coin3d.org/ -# -# This module defines the following variables -# SoQt_FOUND - system has SoQt - Open Inventor Qt Integration -# SoQt_INCLUDE_DIRS - where the SoQt include directory can be found -# SoQt_LIBRARIES - Link to this to use SoQt -# - - -IF (WIN32) - IF (CYGWIN) - - FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h) - FIND_LIBRARY(SoQt_LIBRARIES SoQt) - - ELSE (CYGWIN) - FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h "$ENV{COINDIR}/include" "$ENV{Coin3D_DIR}/include") - FIND_LIBRARY(SoQt_LIBRARY_RELEASE soqt1 "$ENV{COINDIR}/lib" "$ENV{Coin3D_DIR}/lib") - FIND_LIBRARY(SoQt_LIBRARY_DEBUG soqt1d "$ENV{COINDIR}/lib" "$ENV{Coin3D_DIR}/lib") - - IF (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) - SET(SoQt_LIBRARIES optimized ${SoQt_LIBRARY_RELEASE} - debug ${SoQt_LIBRARY_DEBUG}) - ELSE (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) - IF (SoQt_LIBRARY_DEBUG) - SET (SoQt_LIBRARIES ${SoQt_LIBRARY_DEBUG}) - ENDIF (SoQt_LIBRARY_DEBUG) - IF (SoQt_LIBRARY_RELEASE) - SET (SoQt_LIBRARIES ${SoQt_LIBRARY_RELEASE}) - ENDIF (SoQt_LIBRARY_RELEASE) - ENDIF (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) - - ENDIF (CYGWIN) - -ELSE (WIN32) - IF(APPLE) - FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h - /Library/Frameworks/Inventor.framework/Headers - ) - FIND_LIBRARY(SoQt_LIBRARIES SoQt - /Library/Frameworks/Inventor.framework/Libraries - ) - SET(SoQt_LIBRARIES "-framework SoQt" CACHE STRING "SoQt library for OSX") - ELSE(APPLE) - - FIND_PATH(SoQt_INCLUDE_DIRS NAMES Inventor/Qt/SoQt.h PATHS "$ENV{SoQt_DIR}/include" "$ENV{COIN3D_DIR}/include" "$ENV{Coin3D_DIR}/include" /usr/include /usr/local/include NO_DEFAULT_PATH) - FIND_LIBRARY(SoQt_LIBRARIES NAMES SoQt PATHS "$ENV{SoQt_DIR}/lib" "$ENV{COIN3D_DIR}/lib" "$ENV{Coin3D_DIR}/lib" /usr/lib /usr/local/lib NO_DEFAULT_PATH) - - ENDIF(APPLE) - -ENDIF (WIN32) - -# handle the QUIETLY and REQUIRED arguments and set SoQt_FOUND to TRUE if -# all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SoQt DEFAULT_MSG SoQt_LIBRARIES SoQt_INCLUDE_DIRS) - -MARK_AS_ADVANCED(SoQt_INCLUDE_DIRS SoQt_LIBRARIES ) - - +# - Find SoQt (Open Inventor Qt Integration) +# SoQt is an implementation of the Open Inventor API. +# It provides data structures and algorithms for 3D visualization +# http://www.coin3d.org/ +# +# This module defines the following variables +# SoQt_FOUND - system has SoQt - Open Inventor Qt Integration +# SoQt_INCLUDE_DIRS - where the SoQt include directory can be found +# SoQt_LIBRARIES - Link to this to use SoQt +# + + +IF (WIN32) + IF (CYGWIN) + + FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h) + FIND_LIBRARY(SoQt_LIBRARIES SoQt) + + ELSE (CYGWIN) + FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h "$ENV{COINDIR}/include" "$ENV{Coin3D_DIR}/include") + FIND_LIBRARY(SoQt_LIBRARY_RELEASE soqt1 "$ENV{COINDIR}/lib" "$ENV{Coin3D_DIR}/lib") + FIND_LIBRARY(SoQt_LIBRARY_DEBUG soqt1d "$ENV{COINDIR}/lib" "$ENV{Coin3D_DIR}/lib") + + IF (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) + SET(SoQt_LIBRARIES optimized ${SoQt_LIBRARY_RELEASE} + debug ${SoQt_LIBRARY_DEBUG}) + ELSE (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) + IF (SoQt_LIBRARY_DEBUG) + SET (SoQt_LIBRARIES ${SoQt_LIBRARY_DEBUG}) + ENDIF (SoQt_LIBRARY_DEBUG) + IF (SoQt_LIBRARY_RELEASE) + SET (SoQt_LIBRARIES ${SoQt_LIBRARY_RELEASE}) + ENDIF (SoQt_LIBRARY_RELEASE) + ENDIF (SoQt_LIBRARY_DEBUG AND SoQt_LIBRARY_RELEASE) + + ENDIF (CYGWIN) + +ELSE (WIN32) + IF(APPLE) + FIND_PATH(SoQt_INCLUDE_DIRS Inventor/Qt/SoQt.h + /Library/Frameworks/Inventor.framework/Headers + ) + FIND_LIBRARY(SoQt_LIBRARIES SoQt + /Library/Frameworks/Inventor.framework/Libraries + ) + SET(SoQt_LIBRARIES "-framework SoQt" CACHE STRING "SoQt library for OSX") + ELSE(APPLE) + + FIND_PATH(SoQt_INCLUDE_DIRS NAMES Inventor/Qt/SoQt.h PATHS "$ENV{SoQt_DIR}/include" "$ENV{COIN3D_DIR}/include" "$ENV{Coin3D_DIR}/include" /usr/include /usr/local/include NO_DEFAULT_PATH) + FIND_LIBRARY(SoQt_LIBRARIES NAMES SoQt PATHS "$ENV{SoQt_DIR}/lib" "$ENV{COIN3D_DIR}/lib" "$ENV{Coin3D_DIR}/lib" /usr/lib /usr/local/lib NO_DEFAULT_PATH) + + ENDIF(APPLE) + +ENDIF (WIN32) + +# handle the QUIETLY and REQUIRED arguments and set SoQt_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SoQt DEFAULT_MSG SoQt_LIBRARIES SoQt_INCLUDE_DIRS) + +MARK_AS_ADVANCED(SoQt_INCLUDE_DIRS SoQt_LIBRARIES ) + + diff --git a/CMakeModules/SimoxConfig.cmake.in b/CMakeModules/SimoxConfig.cmake.in index 6e51ef678..8892dbbd6 100644 --- a/CMakeModules/SimoxConfig.cmake.in +++ b/CMakeModules/SimoxConfig.cmake.in @@ -1,49 +1,43 @@ -## Copyright (c) 2011, Karlsruhe Institute of Technology (Manfred Kroehnert) +## Copyright (c) 2014, Karlsruhe Institute of Technology (Nikolaus Vahrenkamp) + # - Config file for the Simox package # It defines the following variables -# Simox_INCLUDE_DIRS - include directories for Simox -# Simox_LIBRARY_DIRS - library directories for Simox (normally not used!) -# Simox_LIBRARIES - libraries to link against -# Simox_EXECUTABLES - the Simox executable -# Simox_COMPILE_FLAGS - compile flags -# Simox_CMAKE_INCLUDE - list of includes that may be neccessary for external libraries (e.g. QT_USE_FILE) -# Simox_DATA_PATH - the standard data path -# Simox_CMAKE_DIR - Path to Simox cmake files. -# Simox_BASE_DIR - Path to Simox - -SET(Simox_INCLUDE_DIRS "@Simox_INCLUDE_DIRS@") -SET(Simox_LIBRARY_DIRS "@Simox_LIB_DIRS@") -SET(Simox_COMPILE_FLAGS "@Simox_LIB_FLAGS@") -SET(Simox_CMAKE_INCLUDE "@Simox_LIBRARY_CMAKE_INCLUDE@") -SET(Simox_DATA_PATH "@Simox_DATA_PATH@") -SET(Simox_CMAKE_DIR "@Simox_CMAKE_DIR@") -SET(VirtualRobot_CMAKE_DIR "@VirtualRobot_CMAKE_DIR@") -SET(Simox_BASE_DIR "@Simox_BASE_DIR@") - -# These are IMPORTED targets created by SimoxLibraryDepends.cmake -SET(Simox_LIBRARIES "@Simox_LIBRARIES_ALL@") -SET(Simox_EXECUTABLES "@Simox_EXECUTABLES@") +# Simox_INCLUDE_DIRS - include directories for Simox +# Simox_LIBRARIES - libraries to link against +# Simox_EXECUTABLE - the executables +# Simox_VISUALIZATION - if visualization is enabled +# Simox_USE_COIN_VISUALIZATION - if Coin3D visualization was selected + +# Compute paths +get_filename_component(Simox_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(Simox_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") + +# Our library dependencies (contains definitions for IMPORTED targets) +if(NOT TARGET Simox AND NOT Simox_BINARY_DIR) + include("${Simox_CMAKE_DIR}/SimoxTargets.cmake") +endif() + +# These are IMPORTED targets created by SimoxTargets.cmake +set(Simox_LIBRARIES "@Simox_LIBRARIES@") +set(Simox_EXECUTABLE "@Simox_EXECUTABLE@") +set(Simox_DATA_PATH "@Simox_DATA_PATH@") SET(Simox_VISUALIZATION "@Simox_VISUALIZATION@") SET(Simox_USE_COIN_VISUALIZATION "@Simox_USE_COIN_VISUALIZATION@") SET(Simox_USE_OPENSCENEGRAPH_VISUALIZATION "@Simox_USE_OPENSCENEGRAPH_VISUALIZATION@") SET(Simox_USE_COLLADA "@Simox_USE_COLLADA@") -SET(Simox_VISUALIZATION_LIBS "@Simox_VISUALIZATION_LIBS@") -SET(Simox_VISUALIZATION_INCLUDE_PATHS "@Simox_VISUALIZATION_INCLUDE_PATHS@") -SET(Simox_VISUALIZATION_COMPILE_FLAGS "@Simox_VISUALIZATION_COMPILE_FLAGS@") - -# Convenient setup: all simox-related dependencies are included here. -# If this causes troubles, disable it by steting Simox_DISABLE_DEPENDENCIES_INCLUDE. -# Then you will need to setup the dependencies on your own, similar to the setup in SimoxExternalLibrarySetup.cmake -IF(NOT Simox_DISABLE_DEPENDENCIES_INCLUDE) - # include all library dependencies - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * Including ${Simox_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake") - endif() - include(${Simox_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake) - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * Including ${Simox_CMAKE_DIR}/SimoxMacros.cmake") - endif() - include(${Simox_CMAKE_DIR}/SimoxMacros.cmake) -ENDIF() + + +SET(Simox_EXTERNAL_INCLUDE_DIRS "@Simox_EXTERNAL_INCLUDE_DIRS@") +SET(Simox_EXTERNAL_LIBRARY_FLAGS "@Simox_EXTERNAL_LIBRARY_FLAGS@") +SET(Simox_EXTERNAL_LIBRARIES "@Simox_EXTERNAL_LIBRARIES@") +SET(Simox_EXTERNAL_LIBRARY_DIRS "@Simox_EXTERNAL_LIBRARY_DIRS@") +SET(Simox_EXTERNAL_CMAKE_INCLUDE "@Simox_EXTERNAL_CMAKE_INCLUDE@") + + + +if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) + MESSAGE(STATUS " * Including ${Simox_CMAKE_DIR}/SimoxMacros.cmake") +endif() +include(@Simox_MACROS_INCLUDE_DIR@/SimoxMacros.cmake) diff --git a/CMakeModules/SimoxConfigVersion.cmake.in b/CMakeModules/SimoxConfigVersion.cmake.in index 72771e106..b79002734 100644 --- a/CMakeModules/SimoxConfigVersion.cmake.in +++ b/CMakeModules/SimoxConfigVersion.cmake.in @@ -10,4 +10,5 @@ set(PACKAGE_VERSION "@Simox_VERSION@") if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") set(PACKAGE_VERSION_EXACT TRUE) endif() -endif() \ No newline at end of file +endif() + diff --git a/CMakeModules/SimoxExternalLibrarySetup.cmake b/CMakeModules/SimoxExternalLibrarySetup.cmake deleted file mode 100644 index f3536bcc0..000000000 --- a/CMakeModules/SimoxExternalLibrarySetup.cmake +++ /dev/null @@ -1,16 +0,0 @@ - -# Setup paths, libs and external cmake files to be used for SIMOX - -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS "SETTING LIBRARY DEPENDENCIES FOR SIMOX") -endif() - -# VR - -INCLUDE (${VirtualRobot_CMAKE_DIR}/VirtualRobotConfig.cmake) -INCLUDE (${VirtualRobot_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake) - -# SABA - -# GRASP STUDIO - diff --git a/CMakeModules/SimoxMacros.cmake b/CMakeModules/SimoxMacros.cmake index 22c2a9c41..388a8627f 100644 --- a/CMakeModules/SimoxMacros.cmake +++ b/CMakeModules/SimoxMacros.cmake @@ -1,24 +1,60 @@ # Build and helper macros -function(VirtualRobotQtApplication name srcs incs mocFiles uiFiles) +function(setupSimoxExternalLibraries) + IF (Simox_VISUALIZATION) + # we need to check for Qt4 + IF(NOT "$ENV{QT_QMAKE_EXECUTABLE}" STREQUAL "") + # if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) + # MESSAGE (STATUS "USING QT-PATH from environment variable QT_QMAKE_EXECUTABLE: $ENV{QT_QMAKE_EXECUTABLE}") + #endif() + file(TO_CMAKE_PATH "$ENV{QT_QMAKE_EXECUTABLE}" QT_QMAKE_EXECUTABLE) + ENDIF() + FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) + ENDIF() + INCLUDE_DIRECTORIES(${Simox_INCLUDE_DIRS}) + INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) + ADD_DEFINITIONS( ${Simox_EXTERNAL_LIBRARY_FLAGS} ) + LINK_DIRECTORIES( ${Simox_LIBRARY_DIRS} ) + + FOREACH(f ${Simox_EXTERNAL_CMAKE_INCLUDE}) + MESSAGE(STATUS " * Simox_EXTERNAL_CMAKE_INCLUDE: ${f}") + INCLUDE(${f}) + ENDFOREACH(f) +endfunction() + + +function(VirtualRobotApplication name srcs incs) + setupSimoxExternalLibraries() + INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) + ################################## EXECUTABLE ############################## + ADD_EXECUTABLE(${name} ${srcs} ${incs}) + TARGET_LINK_LIBRARIES(${name} VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) +endfunction() + +function(VirtualRobotQtApplication name srcs incs mocFiles uiFiles) + setupSimoxExternalLibraries() MESSAGE (STATUS "Qt Moc'ing: ${mocFiles}") qt4_wrap_cpp(generatedMocFiles ${mocFiles}) MESSAGE (STATUS "Qt ui files: ${uiFiles}") qt4_wrap_ui(generatedUiFiles ${uiFiles}) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) - ################################## EXECUTABLE ############################## ADD_EXECUTABLE(${name} ${srcs} ${incs} ${generatedUiFiles} ${generatedMocFiles}) - TARGET_LINK_LIBRARIES(${name} ${VirtualRobot_LIBRARIES}) + TARGET_LINK_LIBRARIES(${name} VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) +endfunction() + +function(SimoxApplication name srcs incs) + VirtualRobotApplication("${name}" "${srcs}" "${incs}") + # add Saba and GraspStudio + TARGET_LINK_LIBRARIES(${name} GraspStudio Saba) endfunction() -function(SimoxQtApplication name srcs incs mocFiles uiFiles) - VirtualRobotQtApplication("${name}" "${srcs}" "${incs}" "${mocFiles}" "${uiFiles}") - +function(SimoxQtApplication name srcs incs mocFiles uiFiles) + VirtualRobotQtApplication("${name}" "${srcs}" "${incs}" "${mocFiles}" "${uiFiles}") # add Saba and GraspStudio TARGET_LINK_LIBRARIES(${name} GraspStudio Saba) endfunction() diff --git a/GraspPlanning/CMakeLists.txt b/GraspPlanning/CMakeLists.txt index edc705c81..79707a3dc 100644 --- a/GraspPlanning/CMakeLists.txt +++ b/GraspPlanning/CMakeLists.txt @@ -3,11 +3,17 @@ PROJECT ( GraspStudio ) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) CMAKE_POLICY(VERSION 2.6) -MESSAGE (STATUS "\n ***** CONFIGURING Simox project GraspStudio *****") -INCLUDE (config.cmake) +MESSAGE (STATUS "***** CONFIGURING Simox project GraspStudio *****") + +MACRO(ADD_GRASPSTUDIO_TEST TEST_NAME) + ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) + TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot Saba GraspStudio ${Simox_EXTERNAL_LIBRARIES}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_TEST_DIR}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "GraspStudio Tests") + ADD_TEST(NAME Saba_${TEST_NAME} + COMMAND ${Simox_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) +ENDMACRO(ADD_GRASPSTUDIO_TEST) -INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) -ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) ########### QHULL ################# OPTION(BUILD_qhull "if on builds qhull external library" ON) @@ -22,7 +28,7 @@ OPTION(BUILD_powercrust "if on builds powercrust external library" ON) IF(BUILD_powercrust) ADD_SUBDIRECTORY(ExternalDependencies/powercrust) ENDIF(BUILD_powercrust) -########### END QHULL ################# +########### END POWERCRUST ################# SET(SOURCES @@ -48,8 +54,9 @@ GraspPlanner/GenericGraspPlanner.h GraspQuality/GraspQualityMeasure.h GraspQuality/GraspQualityMeasureWrenchSpace.h Visualization/ConvexHullVisualization.h -${GRASPSTUDIO_SimoxDir}/VirtualRobot/definesVR.h ) +#${GRASPSTUDIO_SimoxDir}/VirtualRobot/definesVR.h + IF(BUILD_powercrust) # Adding MATGraspPlanner @@ -113,21 +120,21 @@ if (Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) ) endif () -# this var is considered for generating Simox_INCLUDE_DIRS_ -SET(GRASP_STUDIO_INCLUDE_DIRS "${GRASPSTUDIO_SimoxDir}" "${GRASPSTUDIO_DIR}" "${GRASPSTUDIO_DIR}/ExternalDependencies/qhull-2003.1/include" "${GRASPSTUDIO_DIR}/ExternalDependencies" "${GRASPSTUDIO_DIR}/ExternalDependencies/powercrust") -INCLUDE_DIRECTORIES(${GRASPSTUDIO_SimoxDir}) -INCLUDE_DIRECTORIES(${GRASPSTUDIO_DIR}) -INCLUDE_DIRECTORIES(${GRASPSTUDIO_DIR}/ExternalDependencies) -INCLUDE_DIRECTORIES(${GRASPSTUDIO_DIR}/ExternalDependencies/qhull-2003.1/include) -INCLUDE_DIRECTORIES(${GRASPSTUDIO_DIR}/ExternalDependencies/powercrust) +INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) +ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) +ADD_LIBRARY (GraspStudio SHARED ${SOURCES} ${INCLUDES}) +TARGET_LINK_LIBRARIES (GraspStudio Saba VirtualRobot ${Simox_EXTERNAL_LIBRARIES} qhull powercrust) +# .DLL path +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) +# .so path +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) +# .lib path (this is needed for setting the DLL-import library path on windows) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) -ADD_LIBRARY (GraspStudio SHARED ${SOURCES} ${INCLUDES}) -#MESSAGE("VirtualRobot_ROBOT_LINK_LIBRARIES:" ${VirtualRobot_LINK_LIBRARIES}) -TARGET_LINK_LIBRARIES (GraspStudio ${COLLISIONDETECTION_LIB} ${VirtualRobot_EXTERNAL_LIBRARIES} VirtualRobot qhull powercrust) # include examples ADD_SUBDIRECTORY(examples/) @@ -135,40 +142,21 @@ ADD_SUBDIRECTORY(examples/) # include unit tests #ADD_SUBDIRECTORY(tests/) -IF (NOT DEFINED Simox_VERSION) - set(GraspStudio_MAJOR_VERSION 1) - set(GraspStudio_MINOR_VERSION 0) - set(GraspStudio_PATCH_VERSION 0) -ELSE() - set(GraspStudio_MAJOR_VERSION ${Simox_MAJOR_VERSION}) - set(GraspStudio_MINOR_VERSION ${Simox_MINOR_VERSION}) - set(GraspStudio_PATCH_VERSION ${Simox_PATCH_VERSION}) -ENDIF() -set(GraspStudio_VERSION - ${GraspStudio_MAJOR_VERSION}.${GraspStudio_MINOR_VERSION}.${GraspStudio_PATCH_VERSION}) -set_target_properties( GraspStudio PROPERTIES - VERSION ${GraspStudio_VERSION} - SOVERSION ${GraspStudio_MAJOR_VERSION} - ) -MESSAGE(STATUS " * GraspStudio Version: ${GraspStudio_VERSION}") - -# .DLL path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) -# .so path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) -# .lib path (this is needed for setting the DLL-import library path on windows) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -INSTALL(TARGETS GraspStudio - RUNTIME DESTINATION ${GRASPSTUDIO_INSTALL_BIN_DIR} - LIBRARY DESTINATION ${GRASPSTUDIO_INSTALL_LIB_DIR} - ARCHIVE DESTINATION ${GRASPSTUDIO_INSTALL_LIB_DIR} - COMPONENT Libraries - ) +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) -INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${GRASPSTUDIO_INSTALL_HEADER_DIR} +INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} COMPONENT Headers FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE @@ -178,5 +166,7 @@ INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${GRASPSTUDIO_INSTALL_HEADER PATTERN "data" EXCLUDE PATTERN "examples" EXCLUDE ) + +MESSAGE (STATUS "***** Finished CONFIGURING Simox project GraspStudio *****\n") diff --git a/GraspPlanning/ConvexHullGenerator.cpp b/GraspPlanning/ConvexHullGenerator.cpp index 46b494628..f5d2c42b6 100644 --- a/GraspPlanning/ConvexHullGenerator.cpp +++ b/GraspPlanning/ConvexHullGenerator.cpp @@ -13,7 +13,7 @@ using namespace VirtualRobot::MathTools; extern "C" { -#include <qhull/qhull_a.h> +#include "ExternalDependencies/qhull-2003.1/include/qhull/qhull_a.h" } namespace GraspStudio { diff --git a/GraspPlanning/ExternalDependencies/powercrust/CMakeLists.txt b/GraspPlanning/ExternalDependencies/powercrust/CMakeLists.txt index cb95d83d4..ef9dd1b45 100644 --- a/GraspPlanning/ExternalDependencies/powercrust/CMakeLists.txt +++ b/GraspPlanning/ExternalDependencies/powercrust/CMakeLists.txt @@ -4,11 +4,7 @@ PROJECT(powercrust) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) CMAKE_POLICY(VERSION 2.6) -INCLUDE (${GRASPSTUDIO_DIR}/config.cmake) -SET (GRASPSTUDIO_VirtualRobotDir ${GRASPSTUDIO_SimoxDir}/VirtualRobot) -INCLUDE (${GRASPSTUDIO_VirtualRobotDir}/config.cmake) - -MESSAGE(STATUS "** powercrust VirtualRobotDir: ${GRASPSTUDIO_VirtualRobotDir}") +MESSAGE (STATUS " **** Configuring powercrust") # Specify sources and headers FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/*.cpp) @@ -18,18 +14,23 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include ${PROJEC ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") - # .DLL path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) # .so path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) # .lib path (this is needed for setting the DLL-import library path on windows) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME}) -MESSAGE(STATUS " ** ${PROJECT_NAME} will be placed into " ${GRASPSTUDIO_LIB_DIR}) -MESSAGE(STATUS " ** ${PROJECT_NAME} will be installed into " ${GRASPSTUDIO_INSTALL_LIB_DIR}) +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${GRASPSTUDIO_INSTALL_LIB_DIR} COMPONENT Libraries) +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) diff --git a/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt b/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt index a4d2d9c32..dad43cae0 100644 --- a/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt +++ b/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt @@ -2,13 +2,7 @@ PROJECT(qhull) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) CMAKE_POLICY(VERSION 2.6) - -INCLUDE (${GRASPSTUDIO_DIR}/config.cmake) -SET (GRASPSTUDIO_VirtualRobotDir ${GRASPSTUDIO_SimoxDir}/VirtualRobot) -INCLUDE (${GRASPSTUDIO_VirtualRobotDir}/config.cmake) - -MESSAGE(STATUS "** qHull VirtualRobotDir: ${GRASPSTUDIO_VirtualRobotDir}") - +MESSAGE (STATUS " **** Configuring qhull") # Specify sources and headers FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/src/*.c) @@ -20,16 +14,22 @@ ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") # .DLL path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) # .so path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) # .lib path (this is needed for setting the DLL-import library path on windows) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${GRASPSTUDIO_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME}) -MESSAGE(STATUS " ** ${PROJECT_NAME} will be placed into " ${GRASPSTUDIO_LIB_DIR}) -MESSAGE(STATUS " ** ${PROJECT_NAME} will be installed into " ${GRASPSTUDIO_INSTALL_LIB_DIR}) +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${GRASPSTUDIO_INSTALL_LIB_DIR} COMPONENT Libraries) +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) diff --git a/GraspPlanning/GraspPlanner/GenericGraspPlanner.cpp b/GraspPlanning/GraspPlanner/GenericGraspPlanner.cpp index 881e8ff34..a715e4b6b 100644 --- a/GraspPlanning/GraspPlanner/GenericGraspPlanner.cpp +++ b/GraspPlanning/GraspPlanner/GenericGraspPlanner.cpp @@ -5,9 +5,9 @@ #include <VirtualRobot/Nodes/RobotNode.h> #include <iostream> #include <sstream> -#include "GraspQuality/GraspQualityMeasureWrenchSpace.h" -#include "GraspQuality/GraspQualityMeasure.h" -#include "ApproachMovementGenerator.h" +#include "../GraspQuality/GraspQualityMeasureWrenchSpace.h" +#include "../GraspQuality/GraspQualityMeasure.h" +#include "../ApproachMovementGenerator.h" using namespace std; diff --git a/GraspPlanning/GraspPlanner/GenericGraspPlanner.h b/GraspPlanning/GraspPlanner/GenericGraspPlanner.h index 03f6162d3..46a432351 100644 --- a/GraspPlanning/GraspPlanner/GenericGraspPlanner.h +++ b/GraspPlanning/GraspPlanner/GenericGraspPlanner.h @@ -25,8 +25,8 @@ #include "../GraspStudio.h" #include "GraspPlanner.h" -#include "ApproachMovementGenerator.h" -#include "GraspQuality/GraspQualityMeasure.h" +#include "../ApproachMovementGenerator.h" +#include "../GraspQuality/GraspQualityMeasure.h" namespace GraspStudio { diff --git a/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.cpp b/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.cpp index 3ebc6699f..2ed7f3bea 100644 --- a/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.cpp +++ b/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.cpp @@ -21,8 +21,8 @@ * */ #include "CandidateGraspTester.h" -#include "../GraspQuality/GraspQualityMeasure.h" -#include "../GraspQuality/GraspQualityMeasureWrenchSpace.h" +#include "../../GraspQuality/GraspQualityMeasure.h" +#include "../../GraspQuality/GraspQualityMeasureWrenchSpace.h" #include <VirtualRobot/Robot.h> #include <VirtualRobot/EndEffector/EndEffector.h> diff --git a/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.h b/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.h index 55826b423..e62b18d7b 100644 --- a/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.h +++ b/GraspPlanning/GraspPlanner/MATPlanner/CandidateGraspTester.h @@ -28,7 +28,7 @@ #include <vector> #include "MedialSphere.h" -#include "powercrust.h" +#include "../../ExternalDependencies/powercrust/powercrust.h" namespace GraspStudio { diff --git a/GraspPlanning/GraspPlanner/MATPlanner/Converter.h b/GraspPlanning/GraspPlanner/MATPlanner/Converter.h index a5970dae1..e913297e4 100644 --- a/GraspPlanning/GraspPlanner/MATPlanner/Converter.h +++ b/GraspPlanning/GraspPlanner/MATPlanner/Converter.h @@ -1,50 +1,50 @@ -/** -* This file is part of Simox. -* -* Simox is free software; you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as -* published by the Free Software Foundation; either version 2 of -* the License, or (at your option) any later version. -* -* Simox is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -* -* @package GraspStudio -* @author Markus Przybylski -* @copyright 2013 H2T,KIT -* GNU Lesser General Public License -* -*/ -#ifndef CONVERTER_H -#define CONVERTER_H - -#include "../../GraspStudio.h" -#include <vector> -#include "MedialSphere.h" - -#include "powercrust.h" - +/** +* This file is part of Simox. +* +* Simox is free software; you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* Simox is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +* +* @package GraspStudio +* @author Markus Przybylski +* @copyright 2013 H2T,KIT +* GNU Lesser General Public License +* +*/ +#ifndef CONVERTER_H +#define CONVERTER_H + +#include "../../GraspStudio.h" +#include <vector> +#include "MedialSphere.h" + +#include "../../ExternalDependencies/powercrust/powercrust.h" + namespace GraspStudio -{ - - class GRASPSTUDIO_IMPORT_EXPORT Converter - { - public: - EIGEN_MAKE_ALIGNED_OPERATOR_NEW - - Converter(); - - static std::vector<MedialSpherePtr> convertPowerCrustPolarBallsToMedialSpheres(std::vector<GraspStudio::PowerCrust::PolarBall>& polarBalls); - - static MedialSpherePtr convertPowerCrustPolarBallToMedialSphere(GraspStudio::PowerCrust::PolarBall& polarBall); - - - }; -} - -#endif // CONVERTER_H +{ + + class GRASPSTUDIO_IMPORT_EXPORT Converter + { + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + Converter(); + + static std::vector<MedialSpherePtr> convertPowerCrustPolarBallsToMedialSpheres(std::vector<GraspStudio::PowerCrust::PolarBall>& polarBalls); + + static MedialSpherePtr convertPowerCrustPolarBallToMedialSphere(GraspStudio::PowerCrust::PolarBall& polarBall); + + + }; +} + +#endif // CONVERTER_H diff --git a/GraspPlanning/GraspPlanner/MATPlanner/GridOfMedialSpheres.cpp b/GraspPlanning/GraspPlanner/MATPlanner/GridOfMedialSpheres.cpp index 9325857a6..3411ae6b6 100644 --- a/GraspPlanning/GraspPlanner/MATPlanner/GridOfMedialSpheres.cpp +++ b/GraspPlanning/GraspPlanner/MATPlanner/GridOfMedialSpheres.cpp @@ -146,7 +146,7 @@ namespace GraspStudio { mainDirection = 'x'; //numCells(0) = ceil(ceil(ratio * (numPoints ** (1.0 / 3))) / gridConstant); - numCells(0) = (int)ceil(ceil(ratio *pow(numPoints, (1.0f / 3.0f))) / gridConstant); + numCells(0) = (int)ceil(ceil(ratio *pow((float)numPoints, (1.0f / 3.0f))) / gridConstant); cellWidth = maxDist / numCells(0); numCells(1) = (int)ceil(diffVect(1) / cellWidth); numCells(2) = (int)ceil(diffVect(2) / cellWidth); @@ -155,7 +155,7 @@ namespace GraspStudio { mainDirection = 'y'; //numCells(1) = ceil(ceil(ratio * (num_points ** (1.0 / 3))) / k_factor); - numCells(1) = (int)ceil(ceil(ratio *pow(numPoints, (1.0f / 3.0f))) / gridConstant); + numCells(1) = (int)ceil(ceil(ratio *pow((float)numPoints, (1.0f / 3.0f))) / gridConstant); cellWidth = maxDist / numCells(1); numCells(0) = (int)ceil(diffVect(0) / cellWidth); numCells(2) = (int)ceil(diffVect(2) / cellWidth); @@ -165,7 +165,7 @@ namespace GraspStudio { mainDirection = 'z'; //numCells(2) = ceil(ceil(ratio * (numPoints ** (1.0 / 3))) / gridConstant); - numCells(2) = (int)ceil(ceil(ratio *pow(numPoints, (1.0f / 3.0f))) / gridConstant); + numCells(2) = (int)ceil(ceil(ratio *pow((float)numPoints, (1.0f / 3.0f))) / gridConstant); cellWidth = maxDist / numCells(2); numCells(0) = (int)ceil(diffVect(0) / cellWidth); numCells(1) = (int)ceil(diffVect(1) / cellWidth); diff --git a/GraspPlanning/GraspPlanner/MATPlanner/MatGraspPlanner.h b/GraspPlanning/GraspPlanner/MATPlanner/MatGraspPlanner.h index cec71024d..dd67a2bfd 100644 --- a/GraspPlanning/GraspPlanner/MATPlanner/MatGraspPlanner.h +++ b/GraspPlanning/GraspPlanner/MATPlanner/MatGraspPlanner.h @@ -27,7 +27,7 @@ #include <GraspPlanning/GraspStudio.h> #include <GraspPlanning/GraspPlanner/GraspPlanner.h> #include <GraspPlanning/GraspQuality/GraspQualityMeasure.h> -#include "powercrust.h" +#include "../../ExternalDependencies/powercrust/powercrust.h" #include "MedialSphere.h" diff --git a/GraspPlanning/config.cmake b/GraspPlanning/config.cmake deleted file mode 100644 index f0d9c6945..000000000 --- a/GraspPlanning/config.cmake +++ /dev/null @@ -1,55 +0,0 @@ -IF (NOT GRASPSTUDIO_CONFIGURED) - - # defines GRASPSTUDIO_CONFIGURED variable which indicates that this config file has already been included - SET(GRASPSTUDIO_CONFIGURED TRUE) - - GET_FILENAME_COMPONENT (CurrentGSPath ${CMAKE_CURRENT_LIST_FILE} PATH) - SET(GRASPSTUDIO_DIR ${CurrentGSPath}) - - ############################# SETUP PATHS TO Simox ############################# - SET(GS_Simox_DIR_STANDARD "${CurrentGSPath}/..") - # be sure to have the absolute path - get_filename_component(GS_Simox_DIR_STANDARD ${GS_Simox_DIR_STANDARD} ABSOLUTE) - - SET (GRASPSTUDIO_SimoxDir ${GS_Simox_DIR_STANDARD} CACHE STRING "Path to Simox used by GraspStudio") - - INCLUDE(${GRASPSTUDIO_SimoxDir}/config.cmake) - #INCLUDE(${GRASPSTUDIO_SimoxDir}/CMakeModules/SimoxProject.cmake) - - IF(NOT DEFINED Simox_BUILD_DIRECTORY) - get_filename_component(Simox_BUILD_DIRECTORY ${Simox_BUILD_DIRECTORY} ABSOLUTE) - SET(Simox_BUILD_DIRECTORY "${GRASPSTUDIO_SimoxDir}/build" CACHE STRING "Simox build directory used by GraspStudio") - SET(Simox_LIB_DIR ${Simox_BUILD_DIRECTORY}/lib) - SET(Simox_BIN_DIR ${Simox_BUILD_DIRECTORY}/bin) - ENDIF() - - ############################# SETUP PATHS ############################# - #ADD_DEFINITIONS(-DGRASPSTUDIO_BASE_DIR="${GRASPSTUDIO_DIR}") - - # Define, where to put the binaries - SET(GRASPSTUDIO_LIB_DIR ${Simox_LIB_DIR}) - SET(GRASPSTUDIO_BIN_DIR ${Simox_BIN_DIR}) - MESSAGE(STATUS "** GRASPSTUDIO_LIB_DIR: ${GRASPSTUDIO_LIB_DIR}") - MESSAGE(STATUS "** GRASPSTUDIO_BIN_DIR: ${GRASPSTUDIO_BIN_DIR}") - - # Define, where to install the binaries - SET(GRASPSTUDIO_INSTALL_LIB_DIR ${Simox_INSTALL_LIB_DIR}) - SET(GRASPSTUDIO_INSTALL_BIN_DIR ${Simox_INSTALL_BIN_DIR}) - SET(GRASPSTUDIO_INSTALL_HEADER_DIR ${Simox_INSTALL_HEADER_DIR}) - - ####################################################################### - # Setup for testing - ####################################################################### - ENABLE_TESTING() - INCLUDE(CTest) - - MACRO(ADD_GRASPSTUDIO_TEST TEST_NAME) - ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot Saba GraspStudio ${VirtualRobot_LINK_LIBRARIES}) - IF(NOT UNIX) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - ENDIF(NOT UNIX) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "GraspStudio Tests") - ADD_TEST( GraspStudio_${TEST_NAME} ${TEST_NAME} --output_format=XML --log_level=all --report_level=no) - ENDMACRO(ADD_GRASPSTUDIO_TEST) -ENDIF(NOT GRASPSTUDIO_CONFIGURED) diff --git a/GraspPlanning/examples/GraspPlanner/CMakeLists.txt b/GraspPlanning/examples/GraspPlanner/CMakeLists.txt index bfca84331..4622d6fba 100644 --- a/GraspPlanning/examples/GraspPlanner/CMakeLists.txt +++ b/GraspPlanning/examples/GraspPlanner/CMakeLists.txt @@ -3,7 +3,9 @@ PROJECT ( GraspPlanner ) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) - + +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # the variable "demo_SRCS" contains all .cpp files of this project @@ -20,15 +22,19 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # create the executable SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) - - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${GRASPSTUDIO_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${GRASPSTUDIO_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${GRASPSTUDIO_INSTALL_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/GraspPlanning/examples/GraspQuality/CMakeLists.txt b/GraspPlanning/examples/GraspQuality/CMakeLists.txt index 9ec1bb765..f121ef38d 100644 --- a/GraspPlanning/examples/GraspQuality/CMakeLists.txt +++ b/GraspPlanning/examples/GraspQuality/CMakeLists.txt @@ -4,32 +4,39 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - # the variable "demo_SRCS" contains all .cpp files of this project - FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GraspQualityDemo.cpp ${PROJECT_SOURCE_DIR}/GraspQualityWindow.cpp) - FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GraspQualityWindow.h) - - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/GraspQualityWindow.h - ) - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/GraspQuality.ui - ) - + # the variable "demo_SRCS" contains all .cpp files of this project + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GraspQualityDemo.cpp ${PROJECT_SOURCE_DIR}/GraspQualityWindow.cpp) + FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GraspQualityWindow.h) + + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/GraspQualityWindow.h + ) + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/GraspQuality.ui + ) + + + # create the executable + SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) - # create the executable - SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) - - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${GRASPSTUDIO_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${GRASPSTUDIO_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${GRASPSTUDIO_INSTALL_BIN_DIR}) ENDIF() diff --git a/GraspPlanning/examples/MATGraspPlanner/CMakeLists.txt b/GraspPlanning/examples/MATGraspPlanner/CMakeLists.txt index 26fb7857a..4078ec1ad 100644 --- a/GraspPlanning/examples/MATGraspPlanner/CMakeLists.txt +++ b/GraspPlanning/examples/MATGraspPlanner/CMakeLists.txt @@ -3,32 +3,38 @@ PROJECT ( MatGraspPlanner ) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) - -IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - # the variable "demo_SRCS" contains all .cpp files of this project - FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/MatGraspPlannerApp.cpp ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.cpp) - FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.h) - - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.h - ) - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/MatGraspPlanner.ui - ) - - # create the executable - SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${GRASPSTUDIO_BIN_DIR}) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) + + # the variable "demo_SRCS" contains all .cpp files of this project + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/MatGraspPlannerApp.cpp ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.cpp) + FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.h) + + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/MatGraspPlannerWindow.h + ) + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/MatGraspPlanner.ui + ) + + # create the executable + SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${GRASPSTUDIO_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${GRASPSTUDIO_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${GRASPSTUDIO_INSTALL_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/GraspPlanning/examples/MATGraspPlanner/MatGraspPlannerWindow.h b/GraspPlanning/examples/MATGraspPlanner/MatGraspPlannerWindow.h index 8456a7167..dd56707d1 100644 --- a/GraspPlanning/examples/MATGraspPlanner/MatGraspPlannerWindow.h +++ b/GraspPlanning/examples/MATGraspPlanner/MatGraspPlannerWindow.h @@ -48,13 +48,13 @@ #include "ui_MatGraspPlanner.h" -#include "GraspPlanner/MATPlanner/TestCases.h" -#include "GraspPlanner/MATPlanner/StrOutHelpers.h" +#include "GraspPlanning/GraspPlanner/MATPlanner/TestCases.h" +#include "GraspPlanning/GraspPlanner/MATPlanner/StrOutHelpers.h" #include "GraspPlanning/GraspStudio.h" #include "GraspPlanning/GraspQuality/GraspQualityMeasureWrenchSpace.h" -#include "GraspPlanner/MATPlanner/MatGraspPlanner.h" -#include "GraspPlanner/MATPlanner/MeshConverter.h" -#include "GraspPlanner/MATPlanner/GraspPlannerConfiguration.h" +#include "GraspPlanning/GraspPlanner/MATPlanner/MatGraspPlanner.h" +#include "GraspPlanning/GraspPlanner/MATPlanner/MeshConverter.h" +#include "GraspPlanning/GraspPlanner/MATPlanner/GraspPlannerConfiguration.h" class MatGraspPlannerWindow : public QMainWindow { diff --git a/MotionPlanning/CMakeLists.txt b/MotionPlanning/CMakeLists.txt index 83e34845d..8b57feace 100644 --- a/MotionPlanning/CMakeLists.txt +++ b/MotionPlanning/CMakeLists.txt @@ -3,15 +3,23 @@ PROJECT ( Saba ) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) CMAKE_POLICY(VERSION 2.6) -MESSAGE (STATUS "\n ***** CONFIGURING Simox project Saba *****") -INCLUDE (config.cmake) - -#MESSAGE(STATUS "Saba: using VirtualRobotDir: ${SABA_VirtualRobotDir}") -#MESSAGE(STATUS " Simox_LIB_DIR: ${Simox_LIB_DIR}") -#MESSAGE(STATUS " Simox_BIN_DIR: ${Simox_BIN_DIR}") -#MESSAGE ("Simox_USE_COIN_VISUALIZATION:${Simox_USE_COIN_VISUALIZATION}") - - +MESSAGE (STATUS "***** CONFIGURING Simox project Saba *****") + +########################### TESTING ##################################### +MACRO(ADD_SABA_TEST TEST_NAME) + INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) + INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/..") + ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) + ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) + TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot Saba ${Simox_EXTERNAL_LIBRARIES}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_TEST_DIR}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "Saba Tests") + ADD_TEST(NAME Saba_${TEST_NAME} + COMMAND ${Simox_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) +ENDMACRO(ADD_SABA_TEST) + +#################################### FILES ################################## SET(SOURCES CSpace/CSpace.cpp CSpace/CSpaceSampled.cpp @@ -53,8 +61,8 @@ PostProcessing/PathProcessor.h PostProcessing/ShortcutProcessor.h PostProcessing/PathProcessingThread.h ApproachDiscretization.h -${SABA_SimoxDir}/VirtualRobot/definesVR.h ) +#../VirtualRobot/definesVR.h if (Simox_USE_COIN_VISUALIZATION) @@ -69,43 +77,19 @@ if (Simox_USE_COIN_VISUALIZATION) ) endif (Simox_USE_COIN_VISUALIZATION) -# this var is considered for generating Simox_INCLUDE_DIRS -SET(SABA_INCLUDE_DIRS "${SABA_DIR}") - -INCLUDE_DIRECTORIES(${SABA_DIR}) -LINK_DIRECTORIES (${Simox_LIB_DIR}) - -INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) -ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) +INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) +ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) ADD_LIBRARY (Saba SHARED ${SOURCES} ${INCLUDES}) #MESSAGE("VirtualRobot_ROBOT_LINK_LIBRARIES:" ${VirtualRobot_EXTERNAL_LIBRARIES}) -TARGET_LINK_LIBRARIES (Saba VirtualRobot ${VirtualRobot_EXTERNAL_LIBRARIES}) - -IF (NOT DEFINED Simox_VERSION) - set(Saba_MAJOR_VERSION 1) - set(Saba_MINOR_VERSION 0) - set(Saba_PATCH_VERSION 0) -ELSE() - set(Saba_MAJOR_VERSION ${Simox_MAJOR_VERSION}) - set(Saba_MINOR_VERSION ${Simox_MINOR_VERSION}) - set(Saba_PATCH_VERSION ${Simox_PATCH_VERSION}) -ENDIF() -set(Saba_VERSION - ${Saba_MAJOR_VERSION}.${Saba_MINOR_VERSION}.${Saba_PATCH_VERSION}) -set_target_properties( Saba PROPERTIES - VERSION ${Saba_VERSION} - SOVERSION ${Saba_MAJOR_VERSION} - ) -MESSAGE(STATUS " * Saba Version: ${Saba_VERSION}") - +TARGET_LINK_LIBRARIES (Saba VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) # .DLL path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SABA_BIN_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) # .so path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${SABA_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) # .lib path (this is needed for setting the DLL-import library path on windows) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${SABA_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) # include examples ADD_SUBDIRECTORY(examples/) @@ -113,14 +97,19 @@ ADD_SUBDIRECTORY(examples/) # include unit tests ADD_SUBDIRECTORY(tests/) -INSTALL(TARGETS Saba - RUNTIME DESTINATION ${SABA_INSTALL_BIN_DIR} - LIBRARY DESTINATION ${SABA_INSTALL_LIB_DIR} - ARCHIVE DESTINATION ${SABA_INSTALL_LIB_DIR} - COMPONENT Libraries - ) +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${SABA_INSTALL_HEADER_DIR} +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) + +INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} COMPONENT Headers FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE @@ -130,4 +119,4 @@ INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${SABA_INSTALL_HEADER_DIR} PATTERN "data" EXCLUDE PATTERN "examples" EXCLUDE ) - +MESSAGE (STATUS "***** Finished CONFIGURING Simox project Saba *****\n") diff --git a/MotionPlanning/PostProcessing/ShortcutProcessor.cpp b/MotionPlanning/PostProcessing/ShortcutProcessor.cpp index 55cabbc74..e0b781591 100644 --- a/MotionPlanning/PostProcessing/ShortcutProcessor.cpp +++ b/MotionPlanning/PostProcessing/ShortcutProcessor.cpp @@ -1,7 +1,7 @@ #include "ShortcutProcessor.h" -#include "CSpace/CSpaceSampled.h" -#include "CSpace/CSpacePath.h" +#include "MotionPlanning/CSpace/CSpaceSampled.h" +#include "MotionPlanning/CSpace/CSpacePath.h" #include <vector> #include <time.h> #include <math.h> diff --git a/MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.cpp b/MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.cpp index 10a1e4096..79a56f135 100644 --- a/MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.cpp +++ b/MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.cpp @@ -1,8 +1,8 @@ #include "CoinRrtWorkspaceVisualization.h" -#include "CSpace/CSpacePath.h" -#include "CSpace/CSpaceTree.h" -#include "CSpace/CSpaceNode.h" +#include "MotionPlanning/CSpace/CSpacePath.h" +#include "MotionPlanning/CSpace/CSpaceTree.h" +#include "MotionPlanning/CSpace/CSpaceNode.h" #include <Inventor/SoPrimitiveVertex.h> #include <Inventor/SbLinear.h> diff --git a/MotionPlanning/Visualization/RrtWorkspaceVisualization.cpp b/MotionPlanning/Visualization/RrtWorkspaceVisualization.cpp index 3145f0201..093519f0d 100644 --- a/MotionPlanning/Visualization/RrtWorkspaceVisualization.cpp +++ b/MotionPlanning/Visualization/RrtWorkspaceVisualization.cpp @@ -1,6 +1,6 @@ #include "RrtWorkspaceVisualization.h" -#include "CSpace/CSpace.h" +#include "MotionPlanning/CSpace/CSpace.h" #include "VirtualRobot/Nodes/RobotNode.h" namespace Saba { diff --git a/MotionPlanning/config.cmake b/MotionPlanning/config.cmake deleted file mode 100644 index e608cd999..000000000 --- a/MotionPlanning/config.cmake +++ /dev/null @@ -1,58 +0,0 @@ -IF (NOT SABA_CONFIGURED) - - # defines SABA_CONFIGURED variable which indicates that this config file has already been included - SET(SABA_CONFIGURED TRUE) - - GET_FILENAME_COMPONENT (CurrentSabaPath ${CMAKE_CURRENT_LIST_FILE} PATH) - SET(SABA_DIR ${CurrentSabaPath}) - - ############################# SETUP PATHS TO Simox ############################# - SET(Simox_DIR_STANDARD "${CurrentSabaPath}/..") - # be sure to have the absolute path - get_filename_component(Simox_DIR_STANDARD ${Simox_DIR_STANDARD} ABSOLUTE) - - SET (SABA_SimoxDir ${Simox_DIR_STANDARD} CACHE STRING "Path to Simox used by SaBa") - - INCLUDE(${SABA_SimoxDir}/config.cmake) - - IF(NOT DEFINED Simox_BUILD_DIRECTORY) - get_filename_component(Simox_BUILD_DIRECTORY ${Simox_BUILD_DIRECTORY} ABSOLUTE) - SET(Simox_BUILD_DIRECTORY "${SABA_SimoxDir}/build" CACHE STRING "Simox build directory used by SaBa") - SET(Simox_LIB_DIR ${Simox_BUILD_DIRECTORY}/lib) - SET(Simox_BIN_DIR ${Simox_BUILD_DIRECTORY}/bin) - ENDIF() - - ############################# SETUP PATHS ############################# - #ADD_DEFINITIONS(-DSABA_BASE_DIR="${SABA_DIR}") - - # Define, where to put the binaries - SET(SABA_LIB_DIR ${Simox_LIB_DIR}) - SET(SABA_BIN_DIR ${Simox_BIN_DIR}) - MESSAGE(STATUS "** SABA_LIB_DIR: ${SABA_LIB_DIR}") - MESSAGE(STATUS "** SABA_BIN_DIR: ${SABA_BIN_DIR}") - - # Define, where to install the binaries - SET(SABA_INSTALL_LIB_DIR ${Simox_INSTALL_LIB_DIR}) - SET(SABA_INSTALL_BIN_DIR ${Simox_INSTALL_BIN_DIR}) - SET(SABA_INSTALL_HEADER_DIR ${Simox_INSTALL_HEADER_DIR}) - - ####################################################################### - # Setup for testing - ####################################################################### - ENABLE_TESTING() - INCLUDE(CTest) - - MACRO(ADD_SABA_TEST TEST_NAME) - INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) - ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot Saba ${VirtualRobot_LINK_LIBRARIES}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_TEST_DIR}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "Saba Tests") - #IF(NOT UNIX) - # SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - #ENDIF(NOT UNIX) - ADD_TEST(NAME Saba_${TEST_NAME} - COMMAND ${VirtualRobot_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) - ENDMACRO(ADD_SABA_TEST) -ENDIF(NOT SABA_CONFIGURED) diff --git a/MotionPlanning/examples/GraspRRT/CMakeLists.txt b/MotionPlanning/examples/GraspRRT/CMakeLists.txt index f2617501b..aebe631a9 100644 --- a/MotionPlanning/examples/GraspRRT/CMakeLists.txt +++ b/MotionPlanning/examples/GraspRRT/CMakeLists.txt @@ -4,35 +4,40 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - # the variable "demo_SRCS" contains all .cpp files of this project - FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GraspRrtDemo.cpp ${PROJECT_SOURCE_DIR}/GraspRrtWindow.cpp) - FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GraspRrtWindow.h) - + # the variable "demo_SRCS" contains all .cpp files of this project + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GraspRrtDemo.cpp ${PROJECT_SOURCE_DIR}/GraspRrtWindow.cpp) + FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GraspRrtWindow.h) - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/GraspRrtWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/GraspRrt.ui - ) + + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/GraspRrtWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/GraspRrt.ui + ) + + SimoxQtApplication("${PROJECT_NAME}" "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - SimoxQtApplication("${PROJECT_NAME}" "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SABA_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${Simox_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SABA_INSTALL_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) - ENDIF() diff --git a/MotionPlanning/examples/IKRRT/CMakeLists.txt b/MotionPlanning/examples/IKRRT/CMakeLists.txt index e1d001e69..efd35d0d5 100644 --- a/MotionPlanning/examples/IKRRT/CMakeLists.txt +++ b/MotionPlanning/examples/IKRRT/CMakeLists.txt @@ -4,11 +4,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - LINK_DIRECTORIES(${Simox_LIB_DIR}) - - - # the variable "demo_SRCS" contains all .cpp files of this project + + # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/IKRRTDemo.cpp ${PROJECT_SOURCE_DIR}/IKRRTWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/IKRRTWindow.h) @@ -22,28 +22,25 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) ${PROJECT_SOURCE_DIR}/IKRRT.ui ) - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - list(APPEND demo_INCS ${UI_HEADER}) - include_directories(${UI_HEADER_DIR}) + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + TARGET_LINK_LIBRARIES(${PROJECT_NAME} Saba) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot Saba ${Simox_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${Simox_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${Simox_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SABA_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${Simox_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SABA_INSTALL_BIN_DIR}) ENDIF() diff --git a/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt b/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt index dd8f216b9..ac61f1289 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt +++ b/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt @@ -4,6 +4,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -21,19 +22,24 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) ${PROJECT_SOURCE_DIR}/MTPlanning.ui ) - SimoxQtApplication("${PROJECT_NAME}" "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + TARGET_LINK_LIBRARIES(${PROJECT_NAME} Saba) + + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SABA_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${Simox_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SABA_INSTALL_BIN_DIR}) + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp index 50e2bbf12..f4c0404b5 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp +++ b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp @@ -11,9 +11,9 @@ #include "VirtualRobot/RobotNodeSet.h" #include "VirtualRobot/RuntimeEnvironment.h" #include "VirtualRobot/Obstacle.h" -#include <Planner/Rrt.h> -#include <Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.h> -#include <PostProcessing/ShortcutProcessor.h> +#include <MotionPlanning/Planner/Rrt.h> +#include <MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.h> +#include <MotionPlanning/PostProcessing/ShortcutProcessor.h> #include <VirtualRobot/CollisionDetection/CDManager.h> #include <Inventor/sensors/SoTimerSensor.h> diff --git a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.h b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.h index 65fed0f32..a39c4f64a 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.h +++ b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.h @@ -5,13 +5,13 @@ #include <string.h> #include <time.h> -#include <Planner/PlanningThread.h> -#include <PostProcessing/PathProcessingThread.h> +#include <MotionPlanning/Planner/PlanningThread.h> +#include <MotionPlanning/PostProcessing/PathProcessingThread.h> -#include <CSpace/CSpaceSampled.h> -#include <CSpace/CSpaceNode.h> -#include <Planner/MotionPlanner.h> -#include <Planner/BiRrt.h> +#include <MotionPlanning/CSpace/CSpaceSampled.h> +#include <MotionPlanning/CSpace/CSpaceNode.h> +#include <MotionPlanning/Planner/MotionPlanner.h> +#include <MotionPlanning/Planner/BiRrt.h> #include <Inventor/Qt/viewers/SoQtExaminerViewer.h> #define ROBOT_DIM 3 diff --git a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.h b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.h index ef21d9e62..012be62dd 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.h +++ b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.h @@ -2,7 +2,7 @@ #ifndef __MTPlanning_WINDOW_H_ #define __MTPlanning_WINDOW_H_ -#include "Saba.h" +#include "MotionPlanning/Saba.h" #include "MTPlanningScenery.h" #include <VirtualRobot/Robot.h> diff --git a/MotionPlanning/examples/RRT/CMakeLists.txt b/MotionPlanning/examples/RRT/CMakeLists.txt index 541f2dff2..a7c0ef0e5 100644 --- a/MotionPlanning/examples/RRT/CMakeLists.txt +++ b/MotionPlanning/examples/RRT/CMakeLists.txt @@ -4,31 +4,33 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -INCLUDE_DIRECTORIES(${SABA_DIR}) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) + + # the variable "demo_SRCS" contains all .cpp files of this project + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RRTdemo.cpp) + + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + TARGET_LINK_LIBRARIES(${PROJECT_NAME} Saba) + + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - LINK_DIRECTORIES(${Simox_LIB_DIR}) - # the variable "demo_SRCS" contains all .cpp files of this project - FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RRTdemo.cpp) - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot Saba ${Simox_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${Simox_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${Simox_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SABA_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${Simox_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SABA_INSTALL_BIN_DIR}) + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) + ELSE() MESSAGE (STATUS "Simox_USE_COIN_VISUALIZATION not defined: Skipping ${PROJECT_NAME}") ENDIF() diff --git a/MotionPlanning/examples/RRT/RRTdemo.cpp b/MotionPlanning/examples/RRT/RRTdemo.cpp index a57d4dc10..1c5edcf30 100644 --- a/MotionPlanning/examples/RRT/RRTdemo.cpp +++ b/MotionPlanning/examples/RRT/RRTdemo.cpp @@ -7,10 +7,10 @@ #include <VirtualRobot/XML/RobotIO.h> #include <VirtualRobot/Visualization/VisualizationFactory.h> #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualization.h> -#include <Saba.h> -#include <Planner/Rrt.h> -#include <Planner/BiRrt.h> -#include <Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.h> +#include <MotionPlanning/Saba.h> +#include <MotionPlanning/Planner/Rrt.h> +#include <MotionPlanning/Planner/BiRrt.h> +#include <MotionPlanning/Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.h> #include <Inventor/Qt/viewers/SoQtExaminerViewer.h> #include <Inventor/nodes/SoSeparator.h> #include <Inventor/Qt/SoQt.h> diff --git a/MotionPlanning/examples/RrtGui/CMakeLists.txt b/MotionPlanning/examples/RrtGui/CMakeLists.txt index 1b0c4eb28..cd02ab910 100644 --- a/MotionPlanning/examples/RrtGui/CMakeLists.txt +++ b/MotionPlanning/examples/RrtGui/CMakeLists.txt @@ -4,34 +4,39 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) - -INCLUDE(${SABA_SimoxDir}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - # the variable "demo_SRCS" contains all .cpp files of this project - FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RrtGui.cpp ${PROJECT_SOURCE_DIR}/RrtGuiWindow.cpp) - FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/RrtGuiWindow.h) - - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/RrtGuiWindow.h - ) - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/RrtGui.ui - ) + # the variable "demo_SRCS" contains all .cpp files of this project + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RrtGui.cpp ${PROJECT_SOURCE_DIR}/RrtGuiWindow.cpp) + FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/RrtGuiWindow.h) + + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/RrtGuiWindow.h + ) + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/RrtGui.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + TARGET_LINK_LIBRARIES(${PROJECT_NAME} Saba) + + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) - # create the executable - SimoxQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SABA_BIN_DIR}) - - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SABA_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${SABA_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SABA_INSTALL_BIN_DIR}) ENDIF() diff --git a/SimDynamics/CMakeLists.txt b/SimDynamics/CMakeLists.txt index c1a023973..0f7c71413 100644 --- a/SimDynamics/CMakeLists.txt +++ b/SimDynamics/CMakeLists.txt @@ -3,30 +3,133 @@ PROJECT ( SimDynamics ) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) CMAKE_POLICY(VERSION 2.6) -MESSAGE (STATUS "\n ***** CONFIGURING Simox project SimDynamics *****") -INCLUDE (config.cmake) +MESSAGE (STATUS "***** CONFIGURING Simox project SimDynamics *****") + + +GET_FILENAME_COMPONENT (CurrentSimDynamicsPath ${CMAKE_CURRENT_LIST_FILE} PATH) +SET(SimDynamics_DIR ${CurrentSimDynamicsPath}) +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SimDynamics_DIR}/CMakeModules) + +############################# SETUP PHYSICS ENGINE ############################# +OPTION(SimDynamics_USE_BULLET "Use Bullet Physics Engine" ON) +SET (SimDynamics_DYNAMICSENGINE FALSE) +SET (SimDynamics_PHYSICS_LIBRARIES "") + +if (SimDynamics_USE_BULLET) + + IF(NOT "$ENV{BULLET_ROOT}" STREQUAL "") + MESSAGE (STATUS " ** USING BULLET_ROOT-PATH from environment variable BULLET_ROOT: $ENV{BULLET_ROOT}") + file(TO_CMAKE_PATH "$ENV{BULLET_ROOT}" BULLET_ROOT) + ENDIF() + #SET (SimDynamics_BULLET_ROOT ${Simox_BULLET_ROOT} CACHE PATH "Path to Bullet used by SimDynamics") + SET (BULLET_ROOT ${BULLET_ROOT} CACHE PATH "Bullet Path") + Find_Package(Bullet) + if (BULLET_FOUND) + MESSAGE (STATUS " ** Found Bullet at ${BULLET_INCLUDE_DIR}") + #MESSAGE (STATUS "BULLET_LIBRARIES: ${BULLET_LIBRARIES}") + #MESSAGE (STATUS "BULLET_OPENGL_INCLUDE_DIR: ${BULLET_OPENGL_INCLUDE_DIR}") + #MESSAGE (STATUS "BULLET_OpenGLSupport_LIBRARY_debug: ${BULLET_OpenGLSupport_LIBRARY_debug}") + SET(SIMDYNAMICS_INCLUDE_DIRS "${BULLET_INCLUDE_DIR}" "${BULLET_INCLUDE_DIR}/bullet" "${BULLET_DEMOS_INCLUDE_DIR}" "${BULLET_OPENGL_INCLUDE_DIR}")# PARENT_SCOPE) + + INCLUDE_DIRECTORIES( + ${BULLET_INCLUDE_DIR} + ${BULLET_INCLUDE_DIR}/bullet + ${BULLET_DEMOS_INCLUDE_DIR} + ${BULLET_OPENGL_INCLUDE_DIR} + ) + OPTION( SimDynamics_USE_BULLET_DOUBLE_PRECISION "Use Bullet Engine built with double precision" OFF ) + OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" ON) + IF( SimDynamics_USE_BULLET_DOUBLE_PRECISION ) + ADD_DEFINITIONS( -DBT_USE_DOUBLE_PRECISION) + SET(SIMDYNAMICS_COMPILE_FLAGS "${SIMDYNAMICS_COMPILE_FLAGS}" "-DBT_USE_DOUBLE_PRECISION" PARENT_SCOPE) + ENDIF( SimDynamics_USE_BULLET_DOUBLE_PRECISION ) + SET (SimDynamics_PHYSICS_LIBRARIES "${BULLET_LIBRARIES}") + SET (SimDynamics_DYNAMICSENGINE TRUE) + + IF (SimDynamics_USE_BULLET_USE_GLUT) + FIND_PACKAGE(OpenGL) + IF (OPENGL_FOUND) + MESSAGE (STATUS " ** OPENGL FOUND lib:${OPENGL_gl_LIBRARY}") + ENDIF() + IF (OPENGL_GLU_FOUND) + MESSAGE (STATUS " ** OPENGL_GLU FOUND lib:${OPENGL_glu_LIBRARY}") + ENDIF() + + FIND_PACKAGE(GLUT) + IF (GLUT_FOUND) + MESSAGE(STATUS " ** GLUT FOUND: ${GLUT_glut_LIBRARY}") + SET(SimDynamics_PHYSICS_LIBRARIES ${SimDynamics_PHYSICS_LIBRARIES} ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) + ELSE (GLUT_FOUND) + SET( GLUT_glut_LIBRARY "" CACHE PATH "Glut library." ) + ENDIF (GLUT_FOUND) + + IF (WIN32) + INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) + SET(SIMDYNAMICS_INCLUDE_DIRS "${SIMDYNAMICS_INCLUDE_DIRS}" "${GLUT_INCLUDE_DIR}")# PARENT_SCOPE) + ELSE (WIN32) + # This is the lines for linux. This should always work if everything is installed and working fine. + INCLUDE_DIRECTORIES(/usr/include /usr/local/include ${GLUT_INCLUDE_DIR}) + SET(SIMDYNAMICS_INCLUDE_DIRS "${SIMDYNAMICS_INCLUDE_DIRS}" "/usr/include" "/usr/local/include" "${GLUT_INCLUDE_DIR}") + ENDIF (WIN32) + + ENDIF(SimDynamics_USE_BULLET_USE_GLUT) + MESSAGE (STATUS " ** BULLET_OpenGLSupport_LIBRARY: ${BULLET_OpenGLSupport_LIBRARY}") + if (SimDynamics_USE_BULLET_USE_GLUT AND GLUT_glut_LIBRARY AND BULLET_OpenGLSupport_LIBRARY) + MESSAGE (STATUS " ** Enabling OpenGL / Glut support") + SET (SimDynamics_BULLET_OpenGL TRUE) + else() + MESSAGE (STATUS " ** Disabling OpenGL / Glut support") + SET (SimDynamics_BULLET_OpenGL FALSE) + endif() + + else() + MESSAGE (STATUS " ** Could not find Bullet") + endif() + +else() + MESSAGE ("No Physics engine selected...") +endif() + + +MESSAGE (STATUS " ** SIMDYNAMICS_INCLUDE_DIRS: ${SIMDYNAMICS_INCLUDE_DIRS}") +MESSAGE (STATUS " ** SimDynamics_PHYSICS_LIBRARIES: ${SimDynamics_PHYSICS_LIBRARIES}") + + +####################################################################### +# Setup for testing +####################################################################### + +MACRO(ADD_SIMDYNAMICS_TEST TEST_NAME) + ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) + TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot Saba GraspStudio SimDynamics ${Simox_EXTERNAL_LIBRARIES} ${SimDynamics_PHYSICS_LIBRARIES}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_TEST_DIR}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "SimDynamics Tests") + ADD_TEST(NAME SimDynamics_${TEST_NAME} + COMMAND ${Simox_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) +ENDMACRO(ADD_SIMDYNAMICS_TEST) + if (SimDynamics_DYNAMICSENGINE) - SET(SOURCES + SET(SOURCES DynamicsWorld.cpp - DynamicsEngine/DynamicsObject.cpp - DynamicsEngine/DynamicsEngine.cpp - DynamicsEngine/DynamicsRobot.cpp - ) + DynamicsEngine/DynamicsObject.cpp + DynamicsEngine/DynamicsEngine.cpp + DynamicsEngine/DynamicsRobot.cpp + ) - SET(INCLUDES + SET(INCLUDES DynamicsWorld.h SimDynamics.h - DynamicsEngine/DynamicsEngineFactory.h - DynamicsEngine/DynamicsObject.h - DynamicsEngine/DynamicsEngine.h - DynamicsEngine/DynamicsRobot.h - ${SimDynamics_SimoxDir}/VirtualRobot/definesVR.h - ) - - if (SimDynamics_USE_BULLET) - SET(SOURCES + DynamicsEngine/DynamicsEngineFactory.h + DynamicsEngine/DynamicsObject.h + DynamicsEngine/DynamicsEngine.h + DynamicsEngine/DynamicsRobot.h + ) + # ${SimDynamics_SimoxDir}/VirtualRobot/definesVR.h + + if (SimDynamics_USE_BULLET) + SET(SOURCES ${SOURCES} DynamicsEngine/BulletEngine/BulletEngineFactory.cpp DynamicsEngine/BulletEngine/BulletEngine.cpp @@ -34,9 +137,9 @@ if (SimDynamics_DYNAMICSENGINE) DynamicsEngine/BulletEngine/BulletRobot.cpp DynamicsEngine/BulletEngine/SimoxMotionState.cpp DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.cpp - ) - - SET(INCLUDES + ) + + SET(INCLUDES ${INCLUDES} DynamicsEngine/BulletEngine/BulletEngineFactory.h DynamicsEngine/BulletEngine/BulletEngine.h @@ -44,99 +147,97 @@ if (SimDynamics_DYNAMICSENGINE) DynamicsEngine/BulletEngine/BulletRobot.h DynamicsEngine/BulletEngine/SimoxMotionState.h DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.h - ) - - if (SimDynamics_BULLET_OpenGL) - SET(SOURCES + ) + + if (SimDynamics_BULLET_OpenGL) + SET(SOURCES ${SOURCES} DynamicsEngine/BulletEngine/BulletOpenGLViewer.cpp - ) - - SET(INCLUDES + ) + + SET(INCLUDES ${INCLUDES} DynamicsEngine/BulletEngine/BulletOpenGLViewer.h - ) - else() - MESSAGE (STATUS "Bullet's OpenGLSupport library not found: Skipping BulletOpenGLViewer") - endif() - - if (Simox_USE_COIN_VISUALIZATION) - SET(SOURCES + ) + else() + MESSAGE (STATUS " ** Bullet's OpenGLSupport library not found: Skipping BulletOpenGLViewer") + endif() + + if (Simox_USE_COIN_VISUALIZATION) + SET(SOURCES ${SOURCES} DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp - ) - - SET(INCLUDES + ) + + SET(INCLUDES ${INCLUDES} DynamicsEngine/BulletEngine/BulletCoinQtViewer.h - ) - else() - MESSAGE (STATUS "Qt/Coin3D disabled: Skipping BulletCoinQtViewer") - endif() - endif () - - # this var is considered for generating Simox_INCLUDE_DIRS_ - SET(SimDynamics_INCLUDE_DIRS "${SimDynamics_SimoxDir}" "${SimDynamics_DIR}" PARENT_SCOPE) - SET(SimDynamics_EXTERNAL_LIBRARIES "${SimDynamics_PHYSICS_LIBRARIES}" PARENT_SCOPE) - INCLUDE_DIRECTORIES(${SimDynamics_SimoxDir}) - INCLUDE_DIRECTORIES(${SimDynamics_DIR}) - - INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) - + ) + else() + MESSAGE (STATUS " ** Qt/Coin3D disabled: Skipping BulletCoinQtViewer") + endif() + endif () - ADD_LIBRARY (SimDynamics SHARED ${SOURCES} ${INCLUDES}) - TARGET_LINK_LIBRARIES (SimDynamics ${COLLISIONDETECTION_LIB} ${VirtualRobot_EXTERNAL_LIBRARIES} VirtualRobot ${SimDynamics_PHYSICS_LIBRARIES}) - - # include examples - ADD_SUBDIRECTORY(examples/) - - # include unit tests - #ADD_SUBDIRECTORY(tests/) - if (SimDynamics_USE_BULLET) - ADD_SUBDIRECTORY(DynamicsEngine/BulletEngine/tests/) - endif() - IF (NOT DEFINED Simox_VERSION) - set(SimDynamics_MAJOR_VERSION 1) - set(SimDynamics_MINOR_VERSION 0) - set(SimDynamics_PATCH_VERSION ) - ELSE() - set(SimDynamics_MAJOR_VERSION ${Simox_MAJOR_VERSION}) - set(SimDynamics_MINOR_VERSION ${Simox_MINOR_VERSION}) - set(SimDynamics_PATCH_VERSION ${Simox_PATCH_VERSION}) - ENDIF() - set(SimDynamics_VERSION - ${SimDynamics_MAJOR_VERSION}.${SimDynamics_MINOR_VERSION}.${SimDynamics_PATCH_VERSION}) - set_target_properties( SimDynamics PROPERTIES - VERSION ${SimDynamics_VERSION} - SOVERSION ${SimDynamics_MAJOR_VERSION} - ) - MESSAGE(STATUS " * SimDynamics Version: ${SimDynamics_VERSION}") + # this var is considered for generating Simox_INCLUDE_DIRS_ + #SET(SimDynamics_INCLUDE_DIRS "${SimDynamics_SimoxDir}" "${SimDynamics_DIR}" PARENT_SCOPE) + #SET(SimDynamics_EXTERNAL_LIBRARIES "${SimDynamics_PHYSICS_LIBRARIES}" PARENT_SCOPE) + #INCLUDE_DIRECTORIES(${SimDynamics_SimoxDir}) + #INCLUDE_DIRECTORIES(${SimDynamics_DIR}) + + INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) + ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) + + ADD_LIBRARY (SimDynamics SHARED ${SOURCES} ${INCLUDES}) + + TARGET_LINK_LIBRARIES (SimDynamics ${Simox_EXTERNAL_LIBRARIES} VirtualRobot ${SimDynamics_PHYSICS_LIBRARIES}) + + # .DLL path + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + # .so path + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) + # .lib path (this is needed for setting the DLL-import library path on windows) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) + + # include examples + ADD_SUBDIRECTORY(examples/) + + # include unit tests + #ADD_SUBDIRECTORY(tests/) + if (SimDynamics_USE_BULLET) + ADD_SUBDIRECTORY(DynamicsEngine/BulletEngine/tests/) + endif() + - # .DLL path - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SimDynamics_BIN_DIR}) - # .so path - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${SimDynamics_LIB_DIR}) - # .lib path (this is needed for setting the DLL-import library path on windows) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${SimDynamics_LIB_DIR}) - - INSTALL(TARGETS SimDynamics - RUNTIME DESTINATION ${SimDynamics_INSTALL_BIN_DIR} - LIBRARY DESTINATION ${SimDynamics_INSTALL_LIB_DIR} - ARCHIVE DESTINATION ${SimDynamics_INSTALL_LIB_DIR} - ) - INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${SimDynamics_INSTALL_HEADER_DIR} - FILES_MATCHING - PATTERN "*.h" - PATTERN "*.hpp" - PATTERN ".svn" EXCLUDE - PATTERN "CMakeModules" EXCLUDE - PATTERN "tests" EXCLUDE - PATTERN "build*" EXCLUDE - PATTERN "data" EXCLUDE - PATTERN "examples" EXCLUDE) + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + + INSTALL(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) + + INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} + COMPONENT Headers + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hpp" + PATTERN ".svn" EXCLUDE + PATTERN "CMakeModules" EXCLUDE + PATTERN "tests" EXCLUDE + PATTERN "build*" EXCLUDE + PATTERN "data" EXCLUDE + PATTERN "examples" EXCLUDE + ) + else() MESSAGE ("Not building SimDynamics, physics engine not found...") endif() + +MESSAGE (STATUS "***** Finished CONFIGURING Simox project SimDynamics *****") diff --git a/SimDynamics/CMakeModules/FindBullet.cmake b/SimDynamics/CMakeModules/FindBullet.cmake index 9bafd0b39..1f0e645ac 100644 --- a/SimDynamics/CMakeModules/FindBullet.cmake +++ b/SimDynamics/CMakeModules/FindBullet.cmake @@ -57,8 +57,8 @@ IF( BULLET_INCLUDE_DIR ) ${BULLET_INCLUDE_DIR}/OpenGL ${BULLET_INCLUDE_DIR}/../Demos/OpenGL ) - MESSAGE ("BULLET_OPENGL_INCLUDE_DIR: ${BULLET_OPENGL_INCLUDE_DIR}") - MESSAGE ("BULLET_DEMOS_INCLUDE_DIR: ${BULLET_DEMOS_INCLUDE_DIR}") + MESSAGE (STATUS " **** BULLET_OPENGL_INCLUDE_DIR: ${BULLET_OPENGL_INCLUDE_DIR}") + MESSAGE (STATUS " **** BULLET_DEMOS_INCLUDE_DIR: ${BULLET_DEMOS_INCLUDE_DIR}") ENDIF( BULLET_INCLUDE_DIR ) MACRO( FIND_BULLET_LIBRARY_DIRNAME LIBNAME DIRNAME ) diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp index a13694a7d..d4c7dafa9 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp @@ -1405,7 +1405,7 @@ Eigen::VectorXf BulletRobot::getJointForceTorqueGlobal(const BulletRobot::LinkIn Eigen::Vector3f torqueBGlobal = ftB.tail(3); // the lever from Object B CoM to Joint - Eigen::Vector3f leverOnJoint = (comBGlobal-jointGlobal) * 0.001; + Eigen::Vector3f leverOnJoint = (comBGlobal-jointGlobal) * 0.001f; // Calculate the torque in Joint by taking the torque that presses on the CoM of BodyB and the Torque of BodyB on the joint // forceOnBGlobal is inverted in next line because it is the force of A on B to hold it in position // torqueBGlobal is inverted in next line because it is the torque on B from A to compensate torque of other objects (which is the torque we would like) to hold it in place and therefore needs to be inverted as well diff --git a/SimDynamics/README.txt b/SimDynamics/README.txt index c78a71e58..8f78f4bc8 100644 --- a/SimDynamics/README.txt +++ b/SimDynamics/README.txt @@ -7,10 +7,9 @@ Several issues have to be concerned for the current version: But com transformations for VisualiztaionModels are ignored right now. If they are different to the collision models or if there is no collision model but a visu model, the visualization poses in simox will be invalid. - Bullet computes the joint value / angle by determining the rotation of the worldposes of the connected btRigidBodies. There seems to be a bug when the rotation is at +/- PI. Avoid transformations between RobotNodes that include a rotation around 180 degrees. -* Bullet models joints with btHingeConstraints. We found out that these constraints are not hard ones, so there can be situations where the constraints are violated which means that the robot structure looks somehow broken. Usually the contraints solvers of bullet try to re-adjust all limbs according to their constraints but if that is not possible or if the impacting forces/torques are too high the result is not as expected. - - This effect is part of the solver algorithm, so it cannot be totaly elimentated. But we noticed that multiple succeeding joints without displacement/3d models makes this artefact worse. +* Bullet models joints with btHingeConstraints. We found out that these constraints are not hard ones, so there can be situations where the constraints are violated which means that the robot structure looks somehow broken. Usually the constraint solvers of bullet try to re-adjust all limbs according to their constraints but if that is not possible or if the impacting forces/torques are too high the result is not as expected. + - This effect is part of the solver algorithm, so it cannot be totally eleminated. But we noticed that multiple succeeding joints without displacement/3d models makes this artefact worse. The best results can be achieved with modeling the robot the following way: * Avoid succeeding revolute joints without models. Do not use more than one joint between two models. * Always use Visualization and Collision Models (COM issue) -* Try to model rotated 3d models within you 3d model definition (.iv file) instead of rotate the models with postJointTransformation or DH parameters. This might affect the rotation of your coordinate systems but avoids an error in bullet when the rotation flips from/to +/-PI. diff --git a/SimDynamics/config.cmake b/SimDynamics/config.cmake deleted file mode 100644 index e60eec8f2..000000000 --- a/SimDynamics/config.cmake +++ /dev/null @@ -1,155 +0,0 @@ -IF (NOT SimDynamics_CONFIGURED) - - # defines SimDynamics_CONFIGURED variable which indicates that this config file has already been included - SET(SimDynamics_CONFIGURED TRUE) - - - GET_FILENAME_COMPONENT (CurrentSimDynamicsPath ${CMAKE_CURRENT_LIST_FILE} PATH) - SET(SimDynamics_DIR ${CurrentSimDynamicsPath}) - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SimDynamics_DIR}/CMakeModules) - - ############################# SETUP PATHS TO Simox ############################# - SET(SimDynamics_Simox_DIR_STANDARD "${CurrentSimDynamicsPath}/..") - # be sure to have the absolute path - get_filename_component(SimDynamics_Simox_DIR_STANDARD ${SimDynamics_Simox_DIR_STANDARD} ABSOLUTE) - - SET (SimDynamics_SimoxDir ${SimDynamics_Simox_DIR_STANDARD} CACHE STRING "Path to Simox used by SimDynamics") - - INCLUDE(${SimDynamics_SimoxDir}/config.cmake) - - IF(NOT DEFINED Simox_BUILD_DIRECTORY) - SET(Simox_BUILD_DIRECTORY "${SimDynamics_SimoxDir}/build" CACHE STRING "Simox build directory used by SimDynamics") - SET(Simox_LIB_DIR ${Simox_BUILD_DIRECTORY}/lib) - SET(Simox_BIN_DIR ${Simox_BUILD_DIRECTORY}/bin) - ENDIF() - - ############################# SETUP PATHS ############################# - - # Define, where to put the binaries - SET(SimDynamics_LIB_DIR ${Simox_LIB_DIR}) - SET(SimDynamics_BIN_DIR ${Simox_BIN_DIR}) - MESSAGE(STATUS "** SimDynamics_LIB_DIR: ${SimDynamics_LIB_DIR}") - MESSAGE(STATUS "** SimDynamics_BIN_DIR: ${SimDynamics_BIN_DIR}") - - # Define, where to install the binaries - SET(SimDynamics_INSTALL_LIB_DIR ${Simox_INSTALL_LIB_DIR}) - SET(SimDynamics_INSTALL_BIN_DIR ${Simox_INSTALL_BIN_DIR}) - SET(SimDynamics_INSTALL_HEADER_DIR ${Simox_INSTALL_HEADER_DIR}) - - - ############################# SETUP PHYSICS ENGINE ############################# - OPTION(SimDynamics_USE_BULLET "Use Bullet Physics Engine" ON) - SET (SimDynamics_DYNAMICSENGINE FALSE) - SET (SimDynamics_PHYSICS_LIBRARIES "") - - if (SimDynamics_USE_BULLET) - - IF(NOT "$ENV{BULLET_ROOT}" STREQUAL "") - MESSAGE (STATUS "USING BULLET_ROOT-PATH from environment variable BULLET_ROOT: $ENV{BULLET_ROOT}") - file(TO_CMAKE_PATH "$ENV{BULLET_ROOT}" BULLET_ROOT) - ENDIF() - #SET (SimDynamics_BULLET_ROOT ${Simox_BULLET_ROOT} CACHE PATH "Path to Bullet used by SimDynamics") - SET (BULLET_ROOT ${BULLET_ROOT} CACHE PATH "Bullet Path") - Find_Package(Bullet) - if (BULLET_FOUND) - MESSAGE (STATUS "Found Bullet at ${BULLET_INCLUDE_DIR}") - #MESSAGE (STATUS "BULLET_LIBRARIES: ${BULLET_LIBRARIES}") - #MESSAGE (STATUS "BULLET_OPENGL_INCLUDE_DIR: ${BULLET_OPENGL_INCLUDE_DIR}") - #MESSAGE (STATUS "BULLET_OpenGLSupport_LIBRARY_debug: ${BULLET_OpenGLSupport_LIBRARY_debug}") - SET(SIMDYNAMICS_INCLUDE_DIRS "${BULLET_INCLUDE_DIR}" "${BULLET_INCLUDE_DIR}/bullet" "${BULLET_DEMOS_INCLUDE_DIR}" "${BULLET_OPENGL_INCLUDE_DIR}" PARENT_SCOPE) - - - INCLUDE_DIRECTORIES( - ${BULLET_INCLUDE_DIR} - ${BULLET_INCLUDE_DIR}/bullet - ${BULLET_DEMOS_INCLUDE_DIR} - ${BULLET_OPENGL_INCLUDE_DIR} - ) - OPTION( SimDynamics_USE_BULLET_DOUBLE_PRECISION "Use Bullet Engine built with double precision" OFF ) - OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" ON) - IF( SimDynamics_USE_BULLET_DOUBLE_PRECISION ) - ADD_DEFINITIONS( -DBT_USE_DOUBLE_PRECISION) - SET(SIMDYNAMICS_COMPILE_FLAGS "${SIMDYNAMICS_COMPILE_FLAGS}" "-DBT_USE_DOUBLE_PRECISION" PARENT_SCOPE) - ENDIF( SimDynamics_USE_BULLET_DOUBLE_PRECISION ) - SET (SimDynamics_PHYSICS_LIBRARIES "${BULLET_LIBRARIES}") - SET (SimDynamics_DYNAMICSENGINE TRUE) - - IF (SimDynamics_USE_BULLET_USE_GLUT) - FIND_PACKAGE(OpenGL) - IF (OPENGL_FOUND) - MESSAGE ("OPENGL FOUND lib:${OPENGL_gl_LIBRARY}") - ENDIF() - IF (OPENGL_GLU_FOUND) - MESSAGE ("OPENGL_GLU FOUND lib:${OPENGL_glu_LIBRARY}") - ENDIF() - - FIND_PACKAGE(GLUT) - IF (GLUT_FOUND) - MESSAGE("GLUT FOUND") - MESSAGE(${GLUT_glut_LIBRARY}) - SET(SimDynamics_PHYSICS_LIBRARIES ${SimDynamics_PHYSICS_LIBRARIES} ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) - ELSE (GLUT_FOUND) - SET( GLUT_glut_LIBRARY "" CACHE PATH "Glut library." ) - #IF (MSVC) - #IF (CMAKE_CL_64) - # message("win64 using glut64.lib") - # SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) - #ELSE(CMAKE_CL_64) - # message("win32 using glut32.lib") - # SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib) - #ENDIF (CMAKE_CL_64) - #ENDIF (MSVC) - ENDIF (GLUT_FOUND) - - IF (WIN32) - INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) - SET(SIMDYNAMICS_INCLUDE_DIRS "${SIMDYNAMICS_INCLUDE_DIRS}" "${GLUT_INCLUDE_DIR}" PARENT_SCOPE) - ELSE (WIN32) - # This is the lines for linux. This should always work if everything is installed and working fine. - INCLUDE_DIRECTORIES(/usr/include /usr/local/include ${GLUT_INCLUDE_DIR}) - SET(SIMDYNAMICS_INCLUDE_DIRS "${SIMDYNAMICS_INCLUDE_DIRS}" "/usr/include" "/usr/local/include" "${GLUT_INCLUDE_DIR}") - ENDIF (WIN32) - - ENDIF(SimDynamics_USE_BULLET_USE_GLUT) - MESSAGE ("BULLET_OpenGLSupport_LIBRARY: ${BULLET_OpenGLSupport_LIBRARY}") - if (SimDynamics_USE_BULLET_USE_GLUT AND GLUT_glut_LIBRARY AND BULLET_OpenGLSupport_LIBRARY) - MESSAGE ("Enabling OpenGL / Glut support") - SET (SimDynamics_BULLET_OpenGL TRUE) - else() - MESSAGE ("Disabling OpenGL / Glut support") - SET (SimDynamics_BULLET_OpenGL FALSE) - endif() - - else() - MESSAGE ("Could not find Bullet") - endif() - - else() - MESSAGE ("No Physics engine selected...") - endif() - - - MESSAGE ("**SIMDYNAMICS_INCLUDE_DIRS: ${SIMDYNAMICS_INCLUDE_DIRS}") - MESSAGE ("**SimDynamics_PHYSICS_LIBRARIES: ${SimDynamics_PHYSICS_LIBRARIES}") - - ####################################################################### - # Setup for testing - ####################################################################### - ENABLE_TESTING() - INCLUDE(CTest) - - MACRO(ADD_SIMDYNAMICS_TEST TEST_NAME) - INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) - ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot SimDynamics ${VirtualRobot_LINK_LIBRARIES} ${SimDynamics_PHYSICS_LIBRARIES}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_TEST_DIR}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "VirtualRobot Tests") - #IF(NOT UNIX) - # SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - #ENDIF(NOT UNIX) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "SimDynamics Tests") - ADD_TEST(NAME SimDynamics_${TEST_NAME} - COMMAND ${VirtualRobot_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) - ENDMACRO(ADD_SIMDYNAMICS_TEST) -ENDIF(NOT SimDynamics_CONFIGURED) diff --git a/SimDynamics/examples/BulletDebugViewerGlut/BulletDebugViewerGlut.cpp b/SimDynamics/examples/BulletDebugViewerGlut/BulletDebugViewerGlut.cpp index 621d32fc3..fb49af7f4 100644 --- a/SimDynamics/examples/BulletDebugViewerGlut/BulletDebugViewerGlut.cpp +++ b/SimDynamics/examples/BulletDebugViewerGlut/BulletDebugViewerGlut.cpp @@ -1,5 +1,5 @@ -#include "DynamicsEngine/BulletEngine/BulletOpenGLViewer.h" +#include <SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGLViewer.h> #include <SimDynamics/DynamicsWorld.h> #include <SimDynamics/DynamicsEngine/BulletEngine/BulletEngineFactory.h> diff --git a/SimDynamics/examples/BulletDebugViewerGlut/CMakeLists.txt b/SimDynamics/examples/BulletDebugViewerGlut/CMakeLists.txt index 009cfa9b0..af5f49be2 100644 --- a/SimDynamics/examples/BulletDebugViewerGlut/CMakeLists.txt +++ b/SimDynamics/examples/BulletDebugViewerGlut/CMakeLists.txt @@ -4,41 +4,24 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -#LINK_LIBRARIES( -#OpenGLSupport BulletDynamics BulletCollision LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} -#) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) -LINK_DIRECTORIES(${Simox_LIB_DIR}) +# create the executable +SimoxApplication(${PROJECT_NAME} "BulletDebugViewerGlut.cpp" "") +TARGET_LINK_LIBRARIES(${PROJECT_NAME} SimDynamics) -ADD_EXECUTABLE(${PROJECT_NAME} BulletDebugViewerGlut.cpp) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - -TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot Saba ${Simox_VISUALIZATION_LIBS}) -TARGET_LINK_LIBRARIES (${PROJECT_NAME} ${COLLISIONDETECTION_LIB} ${VirtualRobot_EXTERNAL_LIBRARIES} VirtualRobot SimDynamics ${SimDynamics_PHYSICS_LIBRARIES}) - - -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${SimDynamics_INSTALL_BIN_DIR}) - -MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${Simox_BIN_DIR}) -MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SimDynamics_INSTALL_BIN_DIR}) - - - - -#IF (WIN32) -# IF (CMAKE_CL_64) -# ADD_CUSTOM_COMMAND( -# TARGET AppGenericJointDemo -# POST_BUILD -# COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} -# ) -# ELSE(CMAKE_CL_64) -# ADD_CUSTOM_COMMAND( -# TARGET AppGenericJointDemo -# POST_BUILD -# COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} -# ) -# ENDIF(CMAKE_CL_64) -#ENDIF(WIN32) - + +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### + +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) diff --git a/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt b/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt index 9c5d77b01..ddb1fce6a 100644 --- a/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt +++ b/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt @@ -4,12 +4,10 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(Simox_USE_COIN_VISUALIZATION) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) - INCLUDE(${QT_USE_FILE}) - - LINK_DIRECTORIES(${SimDynamics_LIB_DIR}) - +IF(Simox_USE_COIN_VISUALIZATION) + FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/SimDynamicsViewer.cpp ${PROJECT_SOURCE_DIR}/simDynamicsWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/simDynamicsWindow.h) @@ -22,16 +20,21 @@ IF(Simox_USE_COIN_VISUALIZATION) ) SimoxQtApplication("${PROJECT_NAME}" "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - + TARGET_LINK_LIBRARIES(${PROJECT_NAME} SimDynamics) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SimDynamics_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS} SimDynamics ${SimDynamics_PHYSICS_LIBRARIES}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${SimDynamics_INSTALL_BIN_DIR}) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${SimDynamics_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${SimDynamics_INSTALL_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/VirtualRobot/CMakeLists.txt b/VirtualRobot/CMakeLists.txt index 857491b6d..64db0262e 100644 --- a/VirtualRobot/CMakeLists.txt +++ b/VirtualRobot/CMakeLists.txt @@ -1,20 +1,32 @@ PROJECT ( VirtualRobot ) -MESSAGE (STATUS "\n ***** CONFIGURING Simox project VirtualRobot *****") +MESSAGE (STATUS "\n***** CONFIGURING Simox project VirtualRobot *****") CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) CMAKE_POLICY(VERSION 2.6) if(NOT ("${CMAKE_VERSION}" VERSION_LESS 2.8.12)) - cmake_policy(SET CMP0022 OLD) # avoid INTERFACE_LINK_LIBRARIES warninss + cmake_policy(SET CMP0022 OLD) # avoid INTERFACE_LINK_LIBRARIES warnings ENDIF() -INCLUDE(config.cmake) +########################### TESTING ##################################### +MACRO(ADD_VR_TEST TEST_NAME) + INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) + INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/..") + ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) + ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) + ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) + TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_TEST_DIR}) + SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "VirtualRobot Tests") + ADD_TEST(NAME VirtualRobot_${TEST_NAME} + COMMAND ${Simox_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) +ENDMACRO() -MESSAGE (STATUS " * VirtualRobot Binary directory: ${VirtualRobot_BIN_DIR}") -MESSAGE (STATUS " * VirtualRobot Library directory: ${VirtualRobot_LIB_DIR}") +#################################### FILES ################################## SET(SOURCES CollisionDetection/CollisionChecker.cpp CollisionDetection/CollisionModel.cpp @@ -170,7 +182,7 @@ ADD_SUBDIRECTORY(Visualization/tests) ADD_SUBDIRECTORY(Workspace/tests) ADD_SUBDIRECTORY(Compression/tests) -if (VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +if (Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) SET(SOURCES ${SOURCES} @@ -187,7 +199,7 @@ if (VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) ) ADD_SUBDIRECTORY(Visualization/CoinVisualization/tests) -elseif (VirtualRobot_VISUALIZATION AND VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION) +elseif (Simox_VISUALIZATION AND Simox_USE_OPENSCENEGRAPH_VISUALIZATION) SET(SOURCES ${SOURCES} @@ -215,7 +227,7 @@ elseif (VirtualRobot_VISUALIZATION AND VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZA endif () -if (VirtualRobot_USE_COLLADA) +if (Simox_USE_COLLADA) SET(SOURCES ${SOURCES} @@ -232,32 +244,6 @@ if (VirtualRobot_USE_COLLADA) COLLADA/ColladaParser.h ) endif () - -#INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) -#ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - -####################################################################################### -# don't include -> this is meant for external libs -#INCLUDE(CMakeModules/VirtualRobotExternalLibrarySetup.cmake) - -# manually apply the configuration of external libs -MESSAGE(STATUS " * VirtualRobot_EXTERNAL_INCLUDE_DIRS: ${VirtualRobot_EXTERNAL_INCLUDE_DIRS}") -INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) - -MESSAGE(STATUS " * VirtualRobot_EXTERNAL_LIBRARY_FLAGS: ${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}") -ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) - -MESSAGE(STATUS " * VirtualRobot_EXTERNAL_LIBRARY_DIRS: ${VirtualRobot_EXTERNAL_LIBRARY_DIRS}") -LINK_DIRECTORIES( ${VirtualRobot_EXTERNAL_LIBRARY_DIRS} ) - -MESSAGE(STATUS " * VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE: ${VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE}") -FOREACH(f ${VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE}) - MESSAGE(STATUS " ** INCLUDE: ${f}") - INCLUDE(${f}) -ENDFOREACH(f) -####################################################################################### - # include collision detection INCLUDE (CollisionDetection/CMakeLists.txt) @@ -268,153 +254,39 @@ ADD_SUBDIRECTORY(Transformation/tests/) # include examples ADD_SUBDIRECTORY(examples/) -# create configuration file which contains all compile time defines -CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/definesVR.h.cmake ${PROJECT_SOURCE_DIR}/definesVR.h) - -MESSAGE (STATUS " * Setting standard data path to ${CMAKE_INSTALL_PREFIX}/data") -ADD_DEFINITIONS(-DVirtualRobot_DATA_PATH="${CMAKE_INSTALL_PREFIX}/data") -ADD_DEFINITIONS(-DVirtualRobot_SRC_DATA_PATH="${PROJECT_SOURCE_DIR}/data") ADD_LIBRARY (VirtualRobot SHARED ${SOURCES} ${INCLUDES}) +TARGET_LINK_LIBRARIES(VirtualRobot ColCheckerPQP ${Simox_EXTERNAL_LIBRARIES}) -TARGET_LINK_LIBRARIES (VirtualRobot ${COLLISIONDETECTION_LIB} ${VirtualRobot_EXTERNAL_LIBRARIES}) -# need this to let the dependencies show up in VirtualRobotLibraryDepends -TARGET_LINK_LIBRARIES (VirtualRobot LINK_INTERFACE_LIBRARIES ${COLLISIONDETECTION_LIB} ${VirtualRobot_EXTERNAL_LIBRARIES}) # .DLL path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) # .so path -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${VirtualRobot_LIB_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) # .lib path (this is needed for setting the DLL-import library path on windows) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${VirtualRobot_LIB_DIR}) - +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -####################################################################### -# Setup for installation -####################################################################### - -############################################ -MESSAGE(STATUS " * Generating CMake files") - -IF (NOT DEFINED Simox_VERSION) - set(VirtualRobot_MAJOR_VERSION 2) - set(VirtualRobot_MINOR_VERSION 1) - set(VirtualRobot_PATCH_VERSION 12) -ELSE() - set(VirtualRobot_MAJOR_VERSION ${Simox_MAJOR_VERSION}) - set(VirtualRobot_MINOR_VERSION ${Simox_MINOR_VERSION}) - set(VirtualRobot_PATCH_VERSION ${Simox_PATCH_VERSION}) -ENDIF() -set(VirtualRobot_VERSION - ${VirtualRobot_MAJOR_VERSION}.${VirtualRobot_MINOR_VERSION}.${VirtualRobot_PATCH_VERSION}) -set_target_properties( VirtualRobot PROPERTIES - VERSION ${VirtualRobot_VERSION} - SOVERSION ${VirtualRobot_MAJOR_VERSION} - ) -MESSAGE(STATUS " * VirtualRobot Version: ${VirtualRobot_VERSION}") - -set(VirtualRobot_LIBRARIES VirtualRobot) -set(VirtualRobot_EXECUTABLES "") - -# Export the package for use from the build-tree -# (this registers the build-tree with a global CMake-registry) -EXPORT(PACKAGE VirtualRobot) - -#get_property(VirtualRobot_external_INCLUDE_DIRS TARGET VirtualRobot PROPERTY EXTERNAL_INCLUDE_DIRS) -#message(STATUS "VirtualRobot_external_INCLUDE_DIRS: ${VirtualRobot_external_INCLUDE_DIRS}") - -SET (VirtualRobot_CONFIG_INBUILD_DIR ${VirtualRobot_BUILD_DIRECTORY}/share/VirtualRobot/cmake) -SET (VirtualRobot_CONFIG_INBUILD "${VirtualRobot_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake") -SET (VirtualRobot_CONFIG_INSTALL_LOCAL_DIR ${VirtualRobot_BUILD_DIRECTORY}/InstallFiles) -SET (VirtualRobot_CONFIG_INSTALL_LOCAL "${VirtualRobot_CONFIG_INSTALL_LOCAL_DIR}/VirtualRobotConfig.cmake") -SET (VirtualRobot_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/VirtualRobot/cmake) -SET (VirtualRobot_CONFIG_INSTALL "${CMAKE_INSTALL_PREFIX}/VirtualRobotConfig.cmake") - -MESSAGE (STATUS " * VirtualRobot: SETTING UP INSTALL FILES") -MESSAGE (STATUS " ** In-build tree: VirtualRobot_CONFIG_INBUILD = ${VirtualRobot_CONFIG_INBUILD}") -MESSAGE (STATUS " ** Install tree : (local) VirtualRobot_CONFIG_INSTALL_LOCAL = ${VirtualRobot_CONFIG_INSTALL_LOCAL}") -MESSAGE (STATUS " ** Install tree : (install) VirtualRobot_CONFIG_INSTALL = ${VirtualRobot_CONFIG_INSTALL}") - -# Install the export set for use with the install-tree -install( - EXPORT VirtualRobotLibraryDepends - DESTINATION "${VirtualRobot_CONFIG_INSTALL_DIR}") - - -# Create an VirtualRobotConfig.cmake file for the use from the build tree -SET(VirtualRobot_LIBRARIES_ALL "${VirtualRobot_LIBRARIES}" "${VirtualRobot_EXTERNAL_LIBRARIES}") -SET(VirtualRobot_DIR "${PROJECT_SOURCE_DIR}/..") -SET(VirtualRobot_INCLUDE_DIRS "${VirtualRobot_DIR}" "${VirtualRobot_EXTERNAL_INCLUDE_DIRS}") -SET(VirtualRobot_LIB_DIRS "${VirtualRobot_BUILD_DIRECTORY}/${LIB_DIR}" "${VirtualRobot_EXTERNAL_LIBRARY_DIRS}") -SET(VirtualRobot_LIB_FLAGS "${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}") -SET(VirtualRobot_CMAKE_DIR "${VirtualRobot_CONFIG_INBUILD_DIR}") -SET(VirtualRobot_LIBRARY_CMAKE_INCLUDE "${VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE}") -SET(VirtualRobot_DATA_PATH "${PROJECT_SOURCE_DIR}/data") -configure_file( - ${VR_DIR}/CMakeModules/VirtualRobotConfig.cmake.in - "${VirtualRobot_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake" - @ONLY) -configure_file( - ${VR_DIR}/CMakeModules/VirtualRobotConfigVersion.cmake.in - "${VirtualRobot_CONFIG_INBUILD_DIR}/VirtualRobotConfigVersion.cmake" - @ONLY) -configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake" - "${VirtualRobot_CONFIG_INBUILD_DIR}/VirtualRobotExternalLibrarySetup.cmake" COPYONLY) -configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotMacros.cmake" - "${VirtualRobot_CONFIG_INBUILD_DIR}/VirtualRobotMacros.cmake" COPYONLY) -#configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/FindVirtualRobot.cmake" -# "${VirtualRobot_CONFIG_INBUILD_DIR}/FindVirtualRobot.cmake" COPYONLY) - - - -# Create an VirtualRobotConfig.cmake file for the use from the install tree -# and install it -SET(VirtualRobot_LIBRARIES_ALL "${VirtualRobot_LIBRARIES}" "${VirtualRobot_EXTERNAL_LIBRARIES}") -SET(VirtualRobot_DIR "${CMAKE_INSTALL_PREFIX}/include") -SET(VirtualRobot_INCLUDE_DIRS "${VirtualRobot_DIR}" "${VirtualRobot_EXTERNAL_INCLUDE_DIRS}") -SET(VirtualRobot_LIB_DIRS "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}" "${VirtualRobot_EXTERNAL_LIBRARY_DIRS}") -SET(VirtualRobot_CMAKE_DIR "${VirtualRobot_CONFIG_INSTALL_DIR}") -SET(VirtualRobot_LIB_FLAGS "${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}") -SET(VirtualRobot_LIBRARY_CMAKE_INCLUDE "${VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE}") -SET(VirtualRobot_DATA_PATH "${CMAKE_INSTALL_PREFIX}/data") - -configure_file( - ${VR_DIR}/CMakeModules/VirtualRobotConfig.cmake.in - "${VirtualRobot_CONFIG_INSTALL_LOCAL_DIR}/VirtualRobotConfig.cmake" - @ONLY) -configure_file( - ${VR_DIR}/CMakeModules/VirtualRobotConfigVersion.cmake.in - "${VirtualRobot_CONFIG_INSTALL_LOCAL_DIR}/VirtualRobotConfigVersion.cmake" - @ONLY) - -install(FILES - "${VirtualRobot_CONFIG_INSTALL_LOCAL_DIR}/VirtualRobotConfig.cmake" - "${VirtualRobot_CONFIG_INSTALL_LOCAL_DIR}/VirtualRobotConfigVersion.cmake" - DESTINATION "${VirtualRobot_CMAKE_DIR}" - COMPONENT ApplicationData - ) - -install(FILES - "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake" - "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotMacros.cmake" - DESTINATION "${VirtualRobot_CMAKE_DIR}" - COMPONENT ApplicationData) - - -INSTALL(TARGETS VirtualRobot - EXPORT VirtualRobotLibraryDepends - RUNTIME DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - LIBRARY DESTINATION ${VirtualRobot_INSTALL_LIB_DIR} - ARCHIVE DESTINATION ${VirtualRobot_INSTALL_LIB_DIR} - COMPONENT Libraries - ) +#set_target_properties(${PROJECT_NAME} PROPERTIES +# PUBLIC_HEADER "${INCLUDES}") -INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${VirtualRobot_INSTALL_HEADER_DIR} +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) +# PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/VirtualRobot" + +INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION "${Simox_INSTALL_HEADER_DIR}" COMPONENT Headers - FILES_MATCHING + FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp" PATTERN ".svn" EXCLUDE @@ -425,9 +297,9 @@ INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${VirtualRobot_INSTALL_HEADE PATTERN "examples" EXCLUDE ) -INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data DESTINATION ${CMAKE_INSTALL_PREFIX} +INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data DESTINATION ${Simox_INSTALL_DIR} COMPONENT ApplicationData - FILES_MATCHING + FILES_MATCHING PATTERN "*.xml" PATTERN "*.XML" PATTERN "*.iv" @@ -438,4 +310,5 @@ INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data DESTINATION ${CMAKE_INSTALL_PREFIX} PATTERN "*.bin" PATTERN ".svn" EXCLUDE ) - + +MESSAGE (STATUS "***** Finished CONFIGURING Simox project VirtualRobot *****\n") diff --git a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake deleted file mode 100644 index fc4ff3003..000000000 --- a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake +++ /dev/null @@ -1,58 +0,0 @@ -# Find VirtualRobot -# -# This find script searches for VirtualRobot and includes all neccessary config files. -# -# VirtualRobot_FOUND - TRUE on success -# VirtualRobot_INCLUDE_DIR - The include directory -# VirtualRobot_LIBRARIES - The libraries -# -# Search order -## 1. ${Custom_Simox_VR_DIR} -## 2. ${VirtualRobot_DIR} -## 3. $ENV{VirtualRobot_DIR} -## 4. ${Simox_DIR} -## 5. $ENV{Simox_DIR} -## [ The paths should point to either the build or the install directory of Simox/VirtualRobot ] -# -# A CMakeLists.txt file for setting up a VirtualRobot related project could look like this: -# -## PROJECT ( myDemo ) -## SET(VirtualRobot_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to VirtualRobot (install or build).") -## FIND_PACKAGE(VirtualRobot REQUIRED) -## IF(VirtualRobot_USE_COIN_VISUALIZATION) -## FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp) -## FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/myWindow.h) -## set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/myWindow.h) -## set(GUI_UIS ${PROJECT_SOURCE_DIR}/myWindow.ui) -## VirtualRobotQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") -## ENDIF() - - - -#### CMAKE CONFIG -find_path( VirtualRobot_DIR VirtualRobotConfig.cmake - "${Custom_Simox_VR_DIR}" - "${VirtualRobot_DIR}" - "$ENV{VirtualRobot_DIR}" - "${Simox_DIR}" - "$ENV{SImox_DIR}" - ) - - -SET (Simox_VR_CMAKE_CONFIG ${VirtualRobot_DIR}/VirtualRobotConfig.cmake) -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " Including ${Simox_VR_CMAKE_CONFIG}") -endif() -include (${Simox_VR_CMAKE_CONFIG}) - -if( VirtualRobot_LIBRARIES AND VirtualRobot_DIR) - set( VirtualRobot_FOUND TRUE ) - set( VirtualRobot_INCLUDE_DIR ${VirtualRobot_DIR} ) - set( VirtualRobot_LIBRARY ${VirtualRobot_LIBRARIES} ) -endif() - -include( FindPackageHandleStandardArgs ) -find_package_handle_standard_args( VirtualRobot DEFAULT_MSG VirtualRobot_LIBRARIES VirtualRobot_INCLUDE_DIR ) - -mark_as_advanced( VirtualRobot_INCLUDE_DIR VirtualRobot_LIBRARIES ) - diff --git a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in b/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in deleted file mode 100644 index beef66ced..000000000 --- a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in +++ /dev/null @@ -1,57 +0,0 @@ -## Copyright (c) 2011, Karlsruhe Institute of Technology (Manfred Kroehnert) - -# - Config file for the VirtualRobot package -# It defines the following variables -# VirtualRobot_INCLUDE_DIRS - include directories for VirtualRobot -# VirtualRobot_LIBRARY_DIRS - library directories for VirtualRobot (normally not used!) -# VirtualRobot_LIBRARIES - libraries to link against -# VirtualRobot_EXECUTABLES - the VirtualRobot executable -# VirtualRobot_COMPILE_FLAGS - compile flags -# VirtualRobot_CMAKE_INCLUDE - list of includes that may be neccessary for external libraries (e.g. QT_USE_FILE) -# VirtualRobot_DATA_PATH - the standard data path -# VirtualRobot_CMAKE_DIR - Path to VirtualRobot cmake files. -# VirtualRobot_DIR - Path to VirtualRobot - -# Tell the user project where to find VirtualRobot headers and libraries -#get_property(VirtualRobot_external_INCLUDE_DIRS TARGET VirtualRobot PROPERTY EXTERNAL_INCLUDE_DIRS) -#message(STATUS "VirtualRobot_external_INCLUDE_DIRS: ${VirtualRobot_external_INCLUDE_DIRS}") - -SET(VirtualRobot_INCLUDE_DIRS "@VirtualRobot_INCLUDE_DIRS@") -SET(VirtualRobot_LIBRARY_DIRS "@VirtualRobot_LIB_DIRS@") -SET(VirtualRobot_COMPILE_FLAGS "@VirtualRobot_LIB_FLAGS@") -SET(VirtualRobot_CMAKE_INCLUDE "@VirtualRobot_LIBRARY_CMAKE_INCLUDE@") -SET(VirtualRobot_DATA_PATH "@VirtualRobot_DATA_PATH@") -SET(VirtualRobot_CMAKE_DIR "@VirtualRobot_CMAKE_DIR@") -SET(VirtualRobot_DIR "@VirtualRobot_DIR@") - -# VirtualRobot library dependencies (contains definitions for IMPORTED targets) -#include("@VirtualRobot_CMAKE_DIR@/VirtualRobotLibraryDepends.cmake") - -# These are IMPORTED targets created by VirtualRobotLibraryDepends.cmake -#SET(VirtualRobot_LIBRARIES "@VirtualRobot_LIBRARIES@") -SET(VirtualRobot_LIBRARIES "@VirtualRobot_LIBRARIES_ALL@") -SET(VirtualRobot_EXECUTABLES "@VirtualRobot_EXECUTABLES@") - -SET(VirtualRobot_VISUALIZATION "@VirtualRobot_VISUALIZATION@") -SET(VirtualRobot_USE_COIN_VISUALIZATION "@VirtualRobot_USE_COIN_VISUALIZATION@") -SET(VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION "@VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION@") -SET(VirtualRobot_USE_COLLADA "@VirtualRobot_USE_COLLADA@") -SET(VirtualRobot_VISUALIZATION_LIBS "@VirtualRobot_VISUALIZATION_LIBS@") -SET(VirtualRobot_VISUALIZATION_INCLUDE_PATHS "@VirtualRobot_VISUALIZATION_INCLUDE_PATHS@") -SET(VirtualRobot_VISUALIZATION_COMPILE_FLAGS "@VirtualRobot_VISUALIZATION_COMPILE_FLAGS@") - -# Convenient setup: all VirtualRobot-related dependencies are included here. -# If this causes troubles, disable it by steting VirtualRobot_DISABLE_DEPENDENCIES_INCLUDE. -# Then you will need to setup the dependencies on your own, similar to the setup in VirtualRobotExternalLibrarySetup.cmake -IF(NOT VirtualRobot_DISABLE_DEPENDENCIES_INCLUDE) - # include all library dependencies - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE (STATUS " * Including ${VirtualRobot_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake") - endif() - include(${VirtualRobot_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake) - - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE (STATUS " * Including ${VirtualRobot_CMAKE_DIR}/VirtualRobotMacros.cmake") - endif() - include(${VirtualRobot_CMAKE_DIR}/VirtualRobotMacros.cmake) -ENDIF() diff --git a/VirtualRobot/CMakeModules/VirtualRobotConfigDependencies.cmake b/VirtualRobot/CMakeModules/VirtualRobotConfigDependencies.cmake deleted file mode 100644 index 76c26debb..000000000 --- a/VirtualRobot/CMakeModules/VirtualRobotConfigDependencies.cmake +++ /dev/null @@ -1,169 +0,0 @@ - - SET (VirtualRobot_EXTERNAL_INCLUDE_DIRS "") - SET (VirtualRobot_EXTERNAL_LIBRARIES "") - SET (VirtualRobot_EXTERNAL_LIBRARY_DIRS "") - SET (VirtualRobot_EXTERNAL_LIBRARY_FLAGS "") - SET (VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE "") - - ############################# SETUP MODULES ############################# - MESSAGE (STATUS "module path: " ${CMAKE_MODULE_PATH}) - - #### Eigen - FIND_PACKAGE (Eigen3 REQUIRED) - if (Eigen3_FOUND) - SET (VirtualRobot_EXTERNAL_INCLUDE_DIRS ${VirtualRobot_EXTERNAL_INCLUDE_DIRS} ${Eigen3_INCLUDE_DIR}) - endif (Eigen3_FOUND) - - #### BOOST - FIND_PACKAGE(Boost 1.42.0 COMPONENTS filesystem system unit_test_framework program_options thread REQUIRED) - if (Boost_FOUND) - MESSAGE (STATUS "Boost found at: ${Boost_INCLUDE_DIR}") - SET (VirtualRobot_EXTERNAL_INCLUDE_DIRS ${VirtualRobot_EXTERNAL_INCLUDE_DIRS} ${Boost_INCLUDE_DIR}) - SET (VirtualRobot_EXTERNAL_LIBRARY_DIRS ${VirtualRobot_EXTERNAL_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS}) - SET (VirtualRobot_EXTERNAL_LIBRARIES ${VirtualRobot_EXTERNAL_LIBRARIES} ${Boost_LIBRARIES}) - # disable boost auto linking - SET (VirtualRobot_EXTERNAL_LIBRARY_FLAGS "${VirtualRobot_EXTERNAL_LIBRARY_FLAGS} -DBOOST_ALL_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DBOOST_THREAD_DYN_LINK") - else (Boost_FOUND) - MESSAGE ("!! Could not find Boost !!") - endif (Boost_FOUND) - - #### QT - # QT_QMAKE_EXECUTABLE is the only relieable way of setting the qt4 path! - # convert env var to cmake define - IF(NOT "$ENV{QT_QMAKE_EXECUTABLE}" STREQUAL "") - MESSAGE (STATUS "USING QT-PATH from environment variable QT_QMAKE_EXECUTABLE: $ENV{QT_QMAKE_EXECUTABLE}") - file(TO_CMAKE_PATH "$ENV{QT_QMAKE_EXECUTABLE}" QT_QMAKE_EXECUTABLE) - ENDIF() - FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) - - #### VISUALIZATION Coin3D+Qt+SoQt / OSG+Qt - ########################################## - SET (VirtualRobot_VISUALIZATION FALSE) - SET (VirtualRobot_VISUALIZATION_LIBS "") - SET (VirtualRobot_VISUALIZATION_INCLUDE_PATHS "") - SET (VirtualRobot_VISUALIZATION_COMPILE_FLAGS "") - - OPTION(VirtualRobot_USE_COIN_VISUALIZATION "Use Coin3D for visualization" ON) - OPTION(VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION "Use OpenSceneGraph for visualization" OFF) - OPTION(VirtualRobot_USE_COLLADA "Enable the loading of robots from collada files" OFF) - - - if (VirtualRobot_USE_COIN_VISUALIZATION) - MESSAGE(STATUS "Searching Coin3D, Qt and SoQt...") - - ##### Coin3D - FIND_PACKAGE(Coin3D REQUIRED) - if (COIN3D_FOUND) - MESSAGE (STATUS "Found Coin3D: " ${COIN3D_INCLUDE_DIRS}) - ##INCLUDE_DIRECTORIES(${COIN3D_INCLUDE_DIRS}) - ##ADD_DEFINITIONS(-DCOIN_DLL) - endif (COIN3D_FOUND) - - - if ( QT_FOUND ) - MESSAGE (STATUS "Found Qt4: " ${QT_INCLUDE_DIR}) - MESSAGE (STATUS "QT_USE_FILE: " ${QT_USE_FILE}) - include(${QT_USE_FILE}) - SET (VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE ${VirtualRobot_EXTERNAL_LIBRARY_CMAKE_INCLUDE} ${QT_USE_FILE}) - SET (VirtualRobot_EXTERNAL_LIBRARY_DIRS ${VirtualRobot_EXTERNAL_LIBRARY_DIRS} ${QT_LIBRARY_DIR}) - SET (VirtualRobot_EXTERNAL_LIBRARIES ${VirtualRobot_EXTERNAL_LIBRARIES} ${QT_LIBRARIES}) - - #MESSAGE(STATUS "QT_LIBRARIES: " ${QT_LIBRARIES}) - - #### SoQt - # This will set SoQt_INCLUDE_DIRS and SoQt_LIBRARIES - FIND_PACKAGE(SoQt) - if (SOQT_FOUND) - MESSAGE (STATUS "Found SoQt:" ${SoQt_INCLUDE_DIRS}) - ##ADD_DEFINITIONS(-DSOQT_DLL) - else (SOQT_FOUND) - MESSAGE (STATUS "Did not found SoQt. Disabling SoQt support.") - endif (SOQT_FOUND) - else ( QT_FOUND ) - MESSAGE (STATUS "Did not found Qt. Disabling Qt/SoQt support.") - endif ( QT_FOUND ) - - if (QT_FOUND AND SOQT_FOUND AND COIN3D_FOUND) - MESSAGE (STATUS "Enabling Coin3D/Qt/SoQt support") - MESSAGE (STATUS "By using the Coin3D library, the license of Simox is not LGPL any more. The license must be GPL, since Coin3D is a GPL library. If you want to use Simox under LGPL you must disable Coin3D support!") - SET (VirtualRobot_VISUALIZATION TRUE) - SET (VirtualRobot_VISUALIZATION_LIBS ${QT_LIBRARIES} ${COIN3D_LIBRARIES} ${SoQt_LIBRARIES} ) - SET (VirtualRobot_VISUALIZATION_INCLUDE_PATHS ${QT_INCLUDE_DIR} ${SoQt_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ) - SET (VirtualRobot_VISUALIZATION_COMPILE_FLAGS " -DCOIN_DLL -DSOQT_DLL ") - endif() - - elseif (VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION) - - MESSAGE(STATUS "Searching OSG and Qt...") - - FIND_PACKAGE(OpenSceneGraph REQUIRED osgViewer osgUtil osgDB osgGA) - - if (OPENSCENEGRAPH_FOUND) - MESSAGE (STATUS "Found OpenSceneGraph:" ${OPENSCENEGRAPH_INCLUDE_DIRS}) - ##INCLUDE_DIRECTORIES(${OPENSCENEGRAPH_INCLUDE_DIRS}) - endif (OPENSCENEGRAPH_FOUND) - - if ( QT_FOUND ) - MESSAGE (STATUS "Found Qt4: " ${QT_INCLUDE_DIR}) - include(${QT_USE_FILE}) - #MESSAGE(STATUS "QT_LIBRARIES: " ${QT_LIBRARIES}) - else ( QT_FOUND ) - MESSAGE (STATUS "Did not found Qt. Disabling Qt/OSG support.") - endif ( QT_FOUND ) - - if (QT_FOUND AND OPENSCENEGRAPH_FOUND) - MESSAGE (STATUS "Enabling OSG/Qt support") - ### a little hack is needed here since osgQt is not supported in the FindOSG script - MESSAGE("OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") - LIST(GET OPENSCENEGRAPH_LIBRARIES 1 firstOsgLib) - MESSAGE("firstOsgLib: ${firstOsgLib}") - GET_FILENAME_COMPONENT(osgLibPath ${firstOsgLib} PATH) - MESSAGE("osgLibPath: ${osgLibPath}") - if (UNIX) - list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/libosgQt.so) - else() - list(APPEND OPENSCENEGRAPH_LIBRARIES optimized) - list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/osgQt.lib) - list(APPEND OPENSCENEGRAPH_LIBRARIES debug) - list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/osgQtd.lib) - endif() - MESSAGE("OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") - SET (VirtualRobot_VISUALIZATION TRUE) - SET (VirtualRobot_VISUALIZATION_LIBS ${QT_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ) - SET (VirtualRobot_VISUALIZATION_INCLUDE_PATHS ${OPENSCENEGRAPH_INCLUDE_DIRS} ) - SET (VirtualRobot_VISUALIZATION_COMPILE_FLAGS "") - endif() - - else() - MESSAGE(STATUS "Visualization disabled") - endif() - - if (VirtualRobot_USE_COLLADA) - MESSAGE(STATUS "Searching for Collada...") - - FIND_PACKAGE(COLLADA_DOM REQUIRED 2.4) - - IF(COLLADA_DOM_FOUND) - MESSAGE (STATUS "Found Collada") - MESSAGE (STATUS "Collada COLLADA_DOM_ROOT_DIR : ${COLLADA_DOM_ROOT_DIR}") - MESSAGE (STATUS "Collada Include DIRS: ${COLLADA_DOM_INCLUDE_DIRS}") - MESSAGE (STATUS "Collada Libs: ${COLLADA_DOM_LIBRARIES}") - MESSAGE (STATUS "Collada COLLADA_DOM_LIBRARY_DIRS: ${COLLADA_DOM_LIBRARY_DIRS}") - - FIND_LIBRARY(COLLADA_LIBRARY ${COLLADA_DOM_LIBRARIES} ${COLLADA_DOM_LIBRARY_DIRS}) - MESSAGE (STATUS "Collada Full Collada lib: ${COLLADA_LIBRARY}") - - #include_directories(${COLLADA_DOM_INCLUDE_DIRS}) - - SET (VirtualRobot_EXTERNAL_INCLUDE_DIRS ${VirtualRobot_EXTERNAL_INCLUDE_DIRS} ${COLLADA_DOM_INCLUDE_DIRS}) - SET (VirtualRobot_EXTERNAL_LIBRARIES ${VirtualRobot_EXTERNAL_LIBRARIES} ${COLLADA_LIBRARY}) - ENDIF() - endif() - - SET (VirtualRobot_EXTERNAL_INCLUDE_DIRS ${VirtualRobot_EXTERNAL_INCLUDE_DIRS} ${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - SET (VirtualRobot_EXTERNAL_LIBRARIES ${VirtualRobot_EXTERNAL_LIBRARIES} ${VirtualRobot_VISUALIZATION_LIBS}) - SET (VirtualRobot_EXTERNAL_LIBRARY_FLAGS "${VirtualRobot_EXTERNAL_LIBRARY_FLAGS} ${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}") - MESSAGE(STATUS "VirtualRobot_EXTERNAL_INCLUDE_DIRS:${VirtualRobot_EXTERNAL_INCLUDE_DIRS}") - MESSAGE(STATUS "VirtualRobot_EXTERNAL_LIBRARY_DIRS:${VirtualRobot_EXTERNAL_LIBRARY_DIRS}") - MESSAGE(STATUS "VirtualRobot_EXTERNAL_LIBRARIES:${VirtualRobot_EXTERNAL_LIBRARIES}") - MESSAGE(STATUS "VirtualRobot_EXTERNAL_LIBRARY_FLAGS:${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}") diff --git a/VirtualRobot/CMakeModules/VirtualRobotConfigVersion.cmake.in b/VirtualRobot/CMakeModules/VirtualRobotConfigVersion.cmake.in deleted file mode 100644 index 76822934d..000000000 --- a/VirtualRobot/CMakeModules/VirtualRobotConfigVersion.cmake.in +++ /dev/null @@ -1,13 +0,0 @@ -## Copyright (c) 2011, Karlsruhe Institute of Technology (Manfred Kroehnert) - -set(PACKAGE_VERSION "@VirtualRobot_VERSION@") - - # Check whether the requested PACKAGE_FIND_VERSION is compatible - if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) - else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() \ No newline at end of file diff --git a/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake b/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake deleted file mode 100644 index 791ce03ba..000000000 --- a/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake +++ /dev/null @@ -1,43 +0,0 @@ - -# Setup paths, libs and external cmake files to be used for VirtualRobot - - -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS "SETTING LIBRARY DEPENDENCIES FOR VIRTUAL ROBOT") - MESSAGE(STATUS " * VirtualRobot_VISUALIZATION: ${VirtualRobot_VISUALIZATION}") -endif() - -IF (VirtualRobot_VISUALIZATION) - # we need to check for Qt4 - IF(NOT "$ENV{QT_QMAKE_EXECUTABLE}" STREQUAL "") - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE (STATUS "USING QT-PATH from environment variable QT_QMAKE_EXECUTABLE: $ENV{QT_QMAKE_EXECUTABLE}") - endif() - file(TO_CMAKE_PATH "$ENV{QT_QMAKE_EXECUTABLE}" QT_QMAKE_EXECUTABLE) - ENDIF() - FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) -ENDIF() - -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * VirtualRobot_INCLUDE_DIRS: ${VirtualRobot_INCLUDE_DIRS}") -endif() -INCLUDE_DIRECTORIES(${VirtualRobot_INCLUDE_DIRS}) - -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * VirtualRobot_COMPILE_FLAGS: ${VirtualRobot_COMPILE_FLAGS}") -endif() -ADD_DEFINITIONS( ${VirtualRobot_COMPILE_FLAGS} ) - -if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * VirtualRobot_LIBRARY_DIRS: ${VirtualRobot_LIBRARY_DIRS}") -endif() -LINK_DIRECTORIES( ${VirtualRobot_LIBRARY_DIRS} ) - -#MESSAGE(STATUS " * VirtualRobot_CMAKE_INCLUDE: ${VirtualRobot_CMAKE_INCLUDE}") -FOREACH(f ${VirtualRobot_CMAKE_INCLUDE}) - if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY)) - MESSAGE(STATUS " * VirtualRobot_CMAKE_INCLUDE: ${f}") - endif() - INCLUDE(${f}) -ENDFOREACH(f) - diff --git a/VirtualRobot/CMakeModules/VirtualRobotMacros.cmake b/VirtualRobot/CMakeModules/VirtualRobotMacros.cmake deleted file mode 100644 index 6b88d2010..000000000 --- a/VirtualRobot/CMakeModules/VirtualRobotMacros.cmake +++ /dev/null @@ -1,30 +0,0 @@ - -# Build and helper macros - -function(VirtualRobotQtApplication name srcs incs mocFiles uiFiles) - - MESSAGE (STATUS "Qt Moc'ing: ${mocFiles}") - qt4_wrap_cpp(generatedMocFiles ${mocFiles}) - MESSAGE (STATUS "Qt ui files: ${uiFiles}") - qt4_wrap_ui(generatedUiFiles ${uiFiles}) - INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) - - IF(MSVC) - ADD_DEFINITIONS(/MP) - ENDIF(MSVC) - - ################################## EXECUTABLE ############################## - ADD_EXECUTABLE(${name} ${srcs} ${incs} ${generatedUiFiles} ${generatedMocFiles}) - TARGET_LINK_LIBRARIES(${name} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - -endfunction() - - -function(SimoxQtApplication name srcs incs mocFiles uiFiles) - - VirtualRobotQtApplication("${name}" "${srcs}" "${incs}" "${mocFiles}" "${uiFiles}") - - # add Saba and GraspStudio - TARGET_LINK_LIBRARIES(${name} GraspStudio Saba) - -endfunction() diff --git a/VirtualRobot/CollisionDetection/CMakeLists.txt b/VirtualRobot/CollisionDetection/CMakeLists.txt index d790f2794..8f41cbf5e 100644 --- a/VirtualRobot/CollisionDetection/CMakeLists.txt +++ b/VirtualRobot/CollisionDetection/CMakeLists.txt @@ -3,15 +3,15 @@ FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/*.cpp) # check for requested collision detection wrappers -OPTION(VR_COLLISION_CHECKER_PQP "Build and use the PQP Collision Detection library (located in ExternalDependencies)" ON) -IF (VR_COLLISION_CHECKER_PQP) +OPTION(Simox_COLLISION_CHECKER_PQP "Build and use the PQP Collision Detection library (located in ExternalDependencies)" ON) +IF (Simox_COLLISION_CHECKER_PQP) MESSAGE (STATUS " ** COLLISION DETECTION: PQP") SET (COL_CHECKER_WRAPPER_DIR ${PROJECT_SOURCE_DIR}/CollisionDetection/PQP) SET(VR_COLLISION_DETECTION_PQP 1) SET(COLLISIONDETECTION_LIB ColCheckerPQP) SET(COLLISIONDETECTION_DIR ${COL_CHECKER_WRAPPER_DIR}/PQP++) SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR}) - SET(COLLISIONDETECTION_LIB_DIR ${VR_LIB_DIR}) + SET(COLLISIONDETECTION_LIB_DIR ${Simox_LIB_DIR}) # create PQP lib ADD_SUBDIRECTORY(${COLLISIONDETECTION_DIR}) @@ -19,9 +19,9 @@ ELSE() # DUMMY MESSAGE (STATUS "WARNING: NO LIBRARY DEFINED FOR COLLISION DETECTION: COLLISION DETECTION IS DISABLED!") SET (COL_CHECKER_WRAPPER_DIR ${PROJECT_SOURCE_DIR}/CollisionDetection/Dummy) - SET(COLLISIONDETECTION_DIR ${VR_DIR}/VirtualRobot/CollisionDetection/Dummy) + SET(COLLISIONDETECTION_DIR ${Simox_DIR}/VirtualRobot/CollisionDetection/Dummy) SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR}) - SET(COLLISIONDETECTION_LIB_DIR ${VR_LIB_DIR}) + SET(COLLISIONDETECTION_LIB_DIR ${Simox_LIB_DIR}) ENDIF () MESSAGE (STATUS " ** Directory of collision detection wrapper: " ${COL_CHECKER_WRAPPER_DIR}) diff --git a/VirtualRobot/CollisionDetection/CollisionModel.cpp b/VirtualRobot/CollisionDetection/CollisionModel.cpp index f59be1f33..6f6c8ae01 100644 --- a/VirtualRobot/CollisionDetection/CollisionModel.cpp +++ b/VirtualRobot/CollisionDetection/CollisionModel.cpp @@ -37,7 +37,7 @@ CollisionModel::CollisionModel(VisualizationNodePtr visu, const std::string &nam #if defined(VR_COLLISION_DETECTION_PQP) collisionModelImplementation.reset(new CollisionModelPQP(model, colChecker,id)); #else - collisionModelImplementation.reset(new CollisionModelDummy(model, colChecker,id)); + collisionModelImplementation.reset(new CollisionModelDummy(colChecker)); #endif } @@ -258,7 +258,7 @@ void CollisionModel::scale( Eigen::Vector3f &scaleFactor ) #if defined(VR_COLLISION_DETECTION_PQP) collisionModelImplementation.reset(new CollisionModelPQP(modelScaled, colChecker,id)); #else - collisionModelImplementation.reset(new CollisionModelDummy(modelScaled, colChecker,id)); + collisionModelImplementation.reset(new CollisionModelDummy(colChecker)); #endif } if (visualization) diff --git a/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt b/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt index 6127dfc49..775152440 100644 --- a/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt +++ b/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt @@ -2,6 +2,7 @@ PROJECT(ColCheckerPQP) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) CMAKE_POLICY(VERSION 2.6) +MESSAGE (STATUS " **** Configuring PQP") ADD_DEFINITIONS(-DUSE_PQP) @@ -13,24 +14,37 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${VirtualRobot_LIB_DIR}) IF(UNIX) -#MESSAGE("PQP 2: CMAKE_SYSTEM_PROCESSOR:${CMAKE_SYSTEM_PROCESSOR}") # We are on Linux -# IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") -#MESSAGE("PQP 3") - ADD_DEFINITIONS(-fPIC) -# ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + ADD_DEFINITIONS(-fPIC) ENDIF(UNIX) -TARGET_LINK_LIBRARIES(${PROJECT_NAME}) +MESSAGE(STATUS " ** ${PROJECT_NAME} will be placed into " ${Simox_LIB_DIR}) -MESSAGE(STATUS " ** ${PROJECT_NAME} will be placed into " ${VirtualRobot_LIB_DIR}) -MESSAGE(STATUS " ** make install will install " ${PROJECT_NAME} " into " ${VirtualRobot_INSTALL_LIB_DIR}) -INSTALL(TARGETS ${PROJECT_NAME} - EXPORT VirtualRobotLibraryDepends - DESTINATION ${VirtualRobot_INSTALL_LIB_DIR} - COMPONENT Libraries -) +# .DLL path +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) +# .so path +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) +# .lib path (this is needed for setting the DLL-import library path on windows) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simox_LIB_DIR}) + + + +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### + + +#set_target_properties(${PROJECT_NAME} PROPERTIES +# PUBLIC_HEADER "${INCS}") + +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT library + COMPONENT dev) +# PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/VirtualRobot" diff --git a/VirtualRobot/VirtualRobot.h b/VirtualRobot/VirtualRobot.h index 711d3ad01..73b98afa3 100644 --- a/VirtualRobot/VirtualRobot.h +++ b/VirtualRobot/VirtualRobot.h @@ -89,8 +89,9 @@ */ // include compile time defines, generated by cmake -#include "definesVR.h" - +//#include "definesVR.h" +// for now we know that PQP is used- ToDo: Change CollisionChecker implementation, use AbstractFactoryMethods +#define VR_COLLISION_DETECTION_PQP #ifdef WIN32 diff --git a/VirtualRobot/VirtualRobotTest.h b/VirtualRobot/VirtualRobotTest.h index 81d6a06bf..789bfe784 100644 --- a/VirtualRobot/VirtualRobotTest.h +++ b/VirtualRobot/VirtualRobotTest.h @@ -23,9 +23,12 @@ #ifndef _VirtualRobot_Test_h_ #define _VirtualRobot_Test_h_ +#ifndef BOOST_TEST_DYN_LINK #define BOOST_TEST_DYN_LINK +#endif + #include "VirtualRobotImportExport.h" -#include "definesVR.h" +//#include "definesVR.h" #include <boost/test/unit_test.hpp> #include <string> #include <fstream> @@ -34,7 +37,10 @@ struct OutputConfiguration { OutputConfiguration() { - std::string logFileName(VirtualRobot_TEST_DIR); + std::string logFileName; +#ifdef Simox_TEST_DIR + logFileName = std::string(Simox_TEST_DIR); +#endif logFileName.append(boost::unit_test::framework::master_test_suite().p_name); logFileName.append(".xml"); logFile.open(logFileName.c_str()); diff --git a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp index 8e2b5a372..521099d29 100644 --- a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp +++ b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp @@ -142,7 +142,8 @@ void WorkspaceRepresentation::load(const std::string &filename) FileIO::readString(tmpString, file); bool fileTypeOK = false; if (tmpString == "WorkspaceRepresentation Binary File" || - tmpString == "Reachability Binary File" || + tmpString == "Reachability Binary File" || + tmpString == "Reachbaility Binary File" || // typo in old versions tmpString == "Manipulability Binary File" || tmpString == "ReachabilitySpace Binary File" || tmpString == tmpStr2) diff --git a/VirtualRobot/config.cmake b/VirtualRobot/config.cmake deleted file mode 100644 index f42e77476..000000000 --- a/VirtualRobot/config.cmake +++ /dev/null @@ -1,127 +0,0 @@ - -IF (NOT VirtualRobot_CONFIGURED) - - SET(VirtualRobot_CONFIGURED TRUE) - - GET_FILENAME_COMPONENT (CurrentVRPath ${CMAKE_CURRENT_LIST_FILE} PATH) - SET(VR_DIR ${CurrentVRPath}) - MESSAGE (STATUS "** VR_DIR: ${VR_DIR}") - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${VR_DIR}/CMakeModules) - - INCLUDE (${VR_DIR}/CMakeModules/VirtualRobotConfigDependencies.cmake) - - - # use virtual folders for grouping projects in IDEs - set_property(GLOBAL PROPERTY USE_FOLDERS ON) - - ############################# SETUP PATHS ############################# - - # Allow #include <VirtualRobot/*.h> - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR} ${VR_DIR}/..) - - - # Define, where to put the libs and binaries - IF (NOT DEFINED BIN_DIR) - SET(BIN_DIR bin) - ENDIF() - IF (NOT DEFINED LIB_DIR) - SET(LIB_DIR lib) - ENDIF() - - # check if we are enforced to build to some destination - IF(DEFINED VirtualRobot_BUILD_DIRECTORY) - get_filename_component(VirtualRobot_BUILD_DIRECTORY ${VirtualRobot_BUILD_DIRECTORY} ABSOLUTE) - MESSAGE (STATUS "** VirtualRobot Build dir defined: ${VirtualRobot_BUILD_DIRECTORY}") - ELSE() - SET(VirtualRobot_BUILD_DIRECTORY ${CMAKE_BINARY_DIR}) - MESSAGE (STATUS "** VirtualRobot Build dir not defined, using CMAKE_BINARY_DIR: ${VirtualRobot_BUILD_DIRECTORY}") - ENDIF() - - SET(VirtualRobot_LIB_DIR ${VirtualRobot_BUILD_DIRECTORY}/${LIB_DIR}) - SET(VirtualRobot_BIN_DIR ${VirtualRobot_BUILD_DIRECTORY}/${BIN_DIR}) - - MESSAGE (STATUS "** VirtualRobot LIB DIR: ${VirtualRobot_LIB_DIR}") - MESSAGE (STATUS "** VirtualRobot BIN DIR: ${VirtualRobot_BIN_DIR}") - - - # Define, where to install the binaries - IF (NOT DEFINED VirtualRobot_INSTALL_LIB_DIR) - SET(VirtualRobot_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${LIB_DIR}) - ENDIF() - IF (NOT DEFINED VirtualRobot_INSTALL_BIN_DIR) - SET(VirtualRobot_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${BIN_DIR}) - ENDIF() - IF (NOT DEFINED VirtualRobot_INSTALL_HEADER_DIR) - SET(VirtualRobot_INSTALL_HEADER_DIR ${CMAKE_INSTALL_PREFIX}/include) - ENDIF() - - - ############################# Set OS specific options ############################# - IF(UNIX) - # We are on Linux - SET(VirtualRobot_TEST_DIR ${VirtualRobot_BIN_DIR}/tests) - IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") - ADD_DEFINITIONS(-fPIC) - ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") - - IF(${CMAKE_BUILD_TYPE} STREQUAL "Debug") - MESSAGE(STATUS "Configuring Debug build") - ADD_DEFINITIONS(-D_DEBUG) # -Wall -W -Werror -pedantic) - ELSE() - MESSAGE(STATUS "Configuring Release build") - ENDIF() - - # use, i.e. don't skip the full RPATH for the build tree - SET(CMAKE_SKIP_BUILD_RPATH FALSE) - - # when building, don't use the install RPATH already - # (but later on when installing) - SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) - - SET(CMAKE_INSTALL_RPATH "${VirtualRobot_LIB_DIR}") - - # add the automatically determined parts of the RPATH - # which point to directories outside the build tree to the install RPATH - SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - - - # the RPATH to be used when installing, but only if it's not a system directory - LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${VirtualRobot_LIB_DIR}" isSystemDir) - IF("${isSystemDir}" STREQUAL "-1") - SET(CMAKE_INSTALL_RPATH "${VirtualRobot_LIB_DIR}") - ENDIF("${isSystemDir}" STREQUAL "-1") - - - ELSE(UNIX) - # We are on Windows - SET(VirtualRobot_TEST_DIR ${VirtualRobot_BIN_DIR}) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) - - # On MSVC we compile with /MP flag (use multiple threads) - IF(MSVC) - ADD_DEFINITIONS(/MP) - ENDIF(MSVC) - ENDIF(UNIX) - - - ####################################################################### - # Setup for testing - ####################################################################### - ENABLE_TESTING() - INCLUDE(CTest) - - MESSAGE(STATUS "** Test output directory: ${VirtualRobot_TEST_DIR}") - - MACRO(ADD_VR_TEST TEST_NAME) - - INCLUDE_DIRECTORIES(${VirtualRobot_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS(${VirtualRobot_EXTERNAL_LIBRARY_FLAGS}) - ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} VirtualRobot ${VirtualRobot_EXTERNAL_LIBRARIES}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_TEST_DIR}) - SET_TARGET_PROPERTIES(${TEST_NAME} PROPERTIES FOLDER "VirtualRobot Tests") - ADD_TEST(NAME VirtualRobot_${TEST_NAME} - COMMAND ${VirtualRobot_TEST_DIR}/${TEST_NAME} --output_format=XML --log_level=all --report_level=no) - ENDMACRO(ADD_VR_TEST) - -ENDIF (NOT VirtualRobot_CONFIGURED) diff --git a/VirtualRobot/definesVR.h.cmake b/VirtualRobot/definesVR.h.cmake deleted file mode 100644 index 11bb599e2..000000000 --- a/VirtualRobot/definesVR.h.cmake +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _VIRTUAL_ROBOT_DEFINES_H_ -#define _VIRTUAL_ROBOT_DEFINES_H_ - -#cmakedefine VR_COLLISION_DETECTION_PQP @VR_COLLISION_DETECTION_PQP@ -#define VirtualRobot_TEST_DIR "@VirtualRobot_TEST_DIR@/" - - -#endif /* _VIRTUAL_ROBOT_DEFINES_H_ */ diff --git a/VirtualRobot/examples/GenericIK/CMakeLists.txt b/VirtualRobot/examples/GenericIK/CMakeLists.txt index 2c83bef65..1eb71879a 100644 --- a/VirtualRobot/examples/GenericIK/CMakeLists.txt +++ b/VirtualRobot/examples/GenericIK/CMakeLists.txt @@ -4,52 +4,38 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - - # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GenericIKDemo.cpp ${PROJECT_SOURCE_DIR}/GenericIKWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GenericIKWindow.h) - - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/GenericIKWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/GenericIK.ui - ) - - #MESSAGE("GUI_MOC_HDRS: ${GUI_MOC_HDRS}") - #MESSAGE("GUI_UIS: ${GUI_UIS}") - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - #MESSAGE("UI_HEADER: ${UI_HEADER}") - list(APPEND demo_INCS ${UI_HEADER}) - - include_directories(${UI_HEADER_DIR}) - - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - -#MESSAGE("QT_LIBRARIES :" ${QT_LIBRARIES}) - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/GenericIKWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/GenericIK.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/VirtualRobot/examples/GraspEditor/CMakeLists.txt b/VirtualRobot/examples/GraspEditor/CMakeLists.txt index 5b8850799..6efdae635 100644 --- a/VirtualRobot/examples/GraspEditor/CMakeLists.txt +++ b/VirtualRobot/examples/GraspEditor/CMakeLists.txt @@ -4,48 +4,40 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - - # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/GraspEditor.cpp ${PROJECT_SOURCE_DIR}/GraspEditorWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/GraspEditorWindow.h) - - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/GraspEditorWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/GraspEditor.ui - ) - - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - list(APPEND demo_INCS ${UI_HEADER}) - - include_directories(${UI_HEADER_DIR}) - - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/GraspEditorWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/GraspEditor.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) + ENDIF() diff --git a/VirtualRobot/examples/Jacobi/CMakeLists.txt b/VirtualRobot/examples/Jacobi/CMakeLists.txt index 4fc5442da..cf10fe37b 100644 --- a/VirtualRobot/examples/Jacobi/CMakeLists.txt +++ b/VirtualRobot/examples/Jacobi/CMakeLists.txt @@ -4,52 +4,39 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) - - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/JacobiDemo.cpp ${PROJECT_SOURCE_DIR}/JacobiWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/JacobiWindow.h) - - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/JacobiWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/Jacobi.ui - ) - - #MESSAGE("GUI_MOC_HDRS: ${GUI_MOC_HDRS}") - #MESSAGE("GUI_UIS: ${GUI_UIS}") - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - #MESSAGE("UI_HEADER: ${UI_HEADER}") - list(APPEND demo_INCS ${UI_HEADER}) - - include_directories(${UI_HEADER_DIR}) - - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - -#MESSAGE("QT_LIBRARIES :" ${QT_LIBRARIES}) - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/JacobiWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/Jacobi.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) ENDIF() diff --git a/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt b/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt index 6ede54f3f..f21e8d4b5 100644 --- a/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt +++ b/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt @@ -4,7 +4,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -INCLUDE(${VR_DIR}/CMakeModules/VirtualRobotMacros.cmake) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -12,27 +12,30 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/ReachabilityMapScene.cpp ${PROJECT_SOURCE_DIR}/ReachabilityMapWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/ReachabilityMapWindow.h) - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/ReachabilityMapWindow.h - ) - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/ReachabilityMap.ui - ) + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/ReachabilityMapWindow.h + ) + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/ReachabilityMap.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) - - # create the executable - VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - # install - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) ENDIF() diff --git a/VirtualRobot/examples/RobotViewer/CMakeLists.txt b/VirtualRobot/examples/RobotViewer/CMakeLists.txt index 3aaeaed88..a3aad4b73 100644 --- a/VirtualRobot/examples/RobotViewer/CMakeLists.txt +++ b/VirtualRobot/examples/RobotViewer/CMakeLists.txt @@ -4,46 +4,40 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) - - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - - +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) + +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) + # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RobotViewer.cpp ${PROJECT_SOURCE_DIR}/showRobotWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/showRobotWindow.h) - - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/showRobotWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/RobotViewer.ui - ) - - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - list(APPEND demo_INCS ${UI_HEADER}) - - include_directories(${UI_HEADER_DIR}) - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/showRobotWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/RobotViewer.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) + ENDIF() diff --git a/VirtualRobot/examples/SceneViewer/CMakeLists.txt b/VirtualRobot/examples/SceneViewer/CMakeLists.txt index 0223295b7..b888efe1a 100644 --- a/VirtualRobot/examples/SceneViewer/CMakeLists.txt +++ b/VirtualRobot/examples/SceneViewer/CMakeLists.txt @@ -4,47 +4,39 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/SceneViewer.cpp ${PROJECT_SOURCE_DIR}/showSceneWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/showSceneWindow.h) + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/showSceneWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/SceneViewer.ui + ) -################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/showSceneWindow.h - ) - - set(GUI_UIS - ${PROJECT_SOURCE_DIR}/SceneViewer.ui - ) - - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER ${GUI_UIS}) - get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH) - list(APPEND demo_INCS ${UI_HEADER}) - - include_directories(${UI_HEADER_DIR}) - - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) + ENDIF() diff --git a/VirtualRobot/examples/loadRobot/CMakeLists.txt b/VirtualRobot/examples/loadRobot/CMakeLists.txt index 86e4e0f28..237a74726 100644 --- a/VirtualRobot/examples/loadRobot/CMakeLists.txt +++ b/VirtualRobot/examples/loadRobot/CMakeLists.txt @@ -4,19 +4,22 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - ADD_EXECUTABLE(${PROJECT_NAME} loadRobot.cpp) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot) + + +####################################################################################### +############################ Setup for installation ################################### +####################################################################################### -INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) +install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) -MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) -MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) - +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) diff --git a/VirtualRobot/examples/reachability/CMakeLists.txt b/VirtualRobot/examples/reachability/CMakeLists.txt index f21ecf22a..d7d48b9eb 100644 --- a/VirtualRobot/examples/reachability/CMakeLists.txt +++ b/VirtualRobot/examples/reachability/CMakeLists.txt @@ -4,50 +4,40 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/reachabilityScene.cpp ${PROJECT_SOURCE_DIR}/reachabilityWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/reachabilityWindow.h) + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/reachabilityWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/reachabilityScene.ui + ${PROJECT_SOURCE_DIR}/reachabilityCreate.ui + ) + + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) -################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/reachabilityWindow.h - ) - - set(GUI_UI1 - ${PROJECT_SOURCE_DIR}/reachabilityScene.ui - ) - set(GUI_UI2 - ${PROJECT_SOURCE_DIR}/reachabilityCreate.ui - ) - - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER1 ${GUI_UI1}) - qt4_wrap_ui(UI_HEADER2 ${GUI_UI2}) - get_filename_component(UI_HEADER_DIR1 ${UI_HEADER1} PATH) - list(APPEND demo_INCS ${UI_HEADER1} ${UI_HEADER2}) - - include_directories(${UI_HEADER_DIR1}) - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) ENDIF() diff --git a/VirtualRobot/examples/stability/CMakeLists.txt b/VirtualRobot/examples/stability/CMakeLists.txt index 7ab083176..2bf9c80ef 100644 --- a/VirtualRobot/examples/stability/CMakeLists.txt +++ b/VirtualRobot/examples/stability/CMakeLists.txt @@ -4,48 +4,40 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4) CMAKE_POLICY(VERSION 2.6) -IF(VirtualRobot_VISUALIZATION AND VirtualRobot_USE_COIN_VISUALIZATION) +INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) - LINK_DIRECTORIES(${VirtualRobot_LIB_DIR}) - +IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) # the variable "demo_SRCS" contains all .cpp files of this project FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/stabilityDemo.cpp ${PROJECT_SOURCE_DIR}/stabilityWindow.cpp) FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/stabilityWindow.h) + + ################################## moc'ing ############################## + set(GUI_MOC_HDRS + ${PROJECT_SOURCE_DIR}/stabilityWindow.h + ) + + set(GUI_UIS + ${PROJECT_SOURCE_DIR}/stabilityScene.ui + ) - ################################## moc'ing ############################## - set(GUI_MOC_HDRS - ${PROJECT_SOURCE_DIR}/stabilityWindow.h - ) - - set(GUI_UI1 - ${PROJECT_SOURCE_DIR}/stabilityScene.ui - ) - - - qt4_wrap_cpp(demo_SRCS ${GUI_MOC_HDRS}) - qt4_wrap_ui(UI_HEADER1 ${GUI_UI1}) - get_filename_component(UI_HEADER_DIR1 ${UI_HEADER1} PATH) - list(APPEND demo_INCS ${UI_HEADER1}) - - include_directories(${UI_HEADER_DIR1}) - - - ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS}) - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR}) - - TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - INCLUDE(${QT_USE_FILE}) - ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) - - INSTALL(TARGETS ${PROJECT_NAME} - DESTINATION ${VirtualRobot_INSTALL_BIN_DIR} - COMPONENT Applications - ) - - MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR}) - MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR}) + # create the executable + VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + ####################################################################################### + ############################ Setup for installation ################################### + ####################################################################################### + + install(TARGETS ${PROJECT_NAME} + # IMPORTANT: Add the library to the "export-set" + EXPORT SimoxTargets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + COMPONENT dev) + + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR}) + ENDIF() diff --git a/config.cmake b/config.cmake index 972b1f627..ee88f0ef3 100644 --- a/config.cmake +++ b/config.cmake @@ -4,61 +4,328 @@ IF (NOT Simox_CONFIGURED) # defines Simox_CONFIGURED variable which indicates that this config file has already been included SET(Simox_CONFIGURED TRUE) - # Set up for debug build + # Set up build type IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) + GET_FILENAME_COMPONENT (CurrentSimoxPath ${CMAKE_CURRENT_LIST_FILE} PATH) + MESSAGE (STATUS "** Simox_DIR: ${CurrentSimoxPath}") + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CurrentSimoxPath}/CMakeModules) + SET(Simox_BUILD_DIRECTORY ${CMAKE_BINARY_DIR}) + SET(Simox_DIR ${CurrentSimoxPath}) + + # Offer the user the choice of overriding the installation directories + set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries") + set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables") + set(INSTALL_INCLUDE_DIR include CACHE PATH + "Installation directory for header files") + if(WIN32 AND NOT CYGWIN) + set(DEF_INSTALL_CMAKE_DIR CMake) + else() + set(DEF_INSTALL_CMAKE_DIR lib/CMake/MMMTools) + endif() + set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH + "Installation directory for CMake files") + + # Make relative paths absolute (needed later on) + foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() + endforeach() + + # set up include-directories + include_directories( + "${PROJECT_SOURCE_DIR}" # to find headers + "${PROJECT_BINARY_DIR}") # to find config headers + ############################# VERSION ################################# set(Simox_MAJOR_VERSION 2) - set(Simox_MINOR_VERSION 2) - set(Simox_PATCH_VERSION 2) + set(Simox_MINOR_VERSION 3) + set(Simox_PATCH_VERSION 0) set(Simox_VERSION ${Simox_MAJOR_VERSION}.${Simox_MINOR_VERSION}.${Simox_PATCH_VERSION}) - MESSAGE (STATUS " ** Simox version: ${Simox_VERSION}") + MESSAGE (STATUS "** Simox version: ${Simox_VERSION}") ############################# SETUP PATHS ############################# SET(Simox_BUILD_DIRECTORY ${CMAKE_BINARY_DIR}) SET(BIN_DIR bin) SET(LIB_DIR lib) + SET(DATA_DIR data) SET(Simox_LIB_DIR ${Simox_BUILD_DIRECTORY}/${LIB_DIR}) SET(Simox_BIN_DIR ${Simox_BUILD_DIRECTORY}/${BIN_DIR}) + SET(Simox_DATA_DIR ${CurrentSimoxPath}/VirtualRobot/data) MESSAGE (STATUS "** SIMOX LIB DIR: ${Simox_LIB_DIR}") MESSAGE (STATUS "** SIMOX BIN DIR: ${Simox_BIN_DIR}") + MESSAGE (STATUS "** SIMOX DATA DIR: ${Simox_DATA_DIR}") - SET(Simox_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${LIB_DIR}) - SET(Simox_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${BIN_DIR}) - SET(Simox_INSTALL_HEADER_DIR ${CMAKE_INSTALL_PREFIX}/include) + SET(Simox_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) + SET(Simox_INSTALL_LIB_DIR ${Simox_INSTALL_DIR}/${LIB_DIR}) + SET(Simox_INSTALL_BIN_DIR ${Simox_INSTALL_DIR}/${BIN_DIR}) + SET(Simox_INSTALL_DATA_DIR ${Simox_INSTALL_DIR}/${DATA_DIR}) + SET(Simox_INSTALL_HEADER_DIR ${Simox_INSTALL_DIR}/include) + MESSAGE (STATUS "** SIMOX INSTALL LIB DIR: ${Simox_INSTALL_LIB_DIR}") + MESSAGE (STATUS "** SIMOX INSTALL BIN DIR: ${Simox_INSTALL_BIN_DIR}") + MESSAGE (STATUS "** SIMOX INSTALL DATA DIR: ${Simox_INSTALL_DATA_DIR}") + MESSAGE (STATUS "** SIMOX INSTALL HEADER DIR: ${Simox_INSTALL_HEADER_DIR}") + ADD_DEFINITIONS("-DVirtualRobot_SRC_DATA_PATH=\"${Simox_DATA_DIR}\"") + ADD_DEFINITIONS("-DSimox_DATA_PATH=\"${Simox_INSTALL_DATA_DIR}\"") + + ########################### IDE settings ################################ + + # use virtual folders for grouping projects in IDEs + set_property(GLOBAL PROPERTY USE_FOLDERS ON) - ## set library settings - ## SETUP VIRTUAL ROBOT - SET(VirtualRobot_BUILD_DIRECTORY ${Simox_BUILD_DIRECTORY}) - SET(VirtualRobot_INSTALL_LIB_DIR ${Simox_INSTALL_LIB_DIR}) - SET(VirtualRobot_INSTALL_BIN_DIR ${Simox_INSTALL_BIN_DIR}) - SET(VirtualRobot_INSTALL_HEADER_DIR ${Simox_INSTALL_HEADER_DIR}) - #MESSAGE ("CMAKE_CURRENT_LIST_DIR:${CMAKE_CURRENT_LIST_DIR}") - include (VirtualRobot/config.cmake) - # set SIMOX vars according to VirtualRobot config - SET(Simox_VISUALIZATION ${VirtualRobot_VISUALIZATION}) - SET(Simox_USE_COIN_VISUALIZATION ${VirtualRobot_USE_COIN_VISUALIZATION}) - SET(Simox_USE_OPENSCENEGRAPH_VISUALIZATION ${VirtualRobot_USE_OPENSCENEGRAPH_VISUALIZATION}) - SET(Simox_USE_COLLADA ${VirtualRobot_USE_COLLADA}) - SET(Simox_VISUALIZATION_LIBS ${VirtualRobot_VISUALIZATION_LIBS}) - SET(Simox_VISUALIZATION_INCLUDE_PATHS ${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - SET(Simox_VISUALIZATION_COMPILE_FLAGS ${VirtualRobot_VISUALIZATION_COMPILE_FLAGS}) + ############################# Set OS specific options ############################# + IF(UNIX) + # We are on Linux + SET(Simox_TEST_DIR ${Simox_BIN_DIR}/tests) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + ADD_DEFINITIONS(-fPIC) + ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + + IF(${CMAKE_BUILD_TYPE} STREQUAL "Debug") + MESSAGE(STATUS "Configuring Debug build") + ADD_DEFINITIONS(-D_DEBUG) # -Wall -W -Werror -pedantic) + ELSE() + MESSAGE(STATUS "Configuring Release build") + ENDIF() + + # use, i.e. don't skip the full RPATH for the build tree + SET(CMAKE_SKIP_BUILD_RPATH FALSE) + + # when building, don't use the install RPATH already + # (but later on when installing) + SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + + SET(CMAKE_INSTALL_RPATH "${Simox_INSTALL_LIB_DIR}") + + # add the automatically determined parts of the RPATH + # which point to directories outside the build tree to the install RPATH + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + # the RPATH to be used when installing, but only if it's not a system directory + LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${Simox_INSTALL_LIB_DIR}" isSystemDir) + IF("${isSystemDir}" STREQUAL "-1") + SET(CMAKE_INSTALL_RPATH "${Simox_INSTALL_LIB_DIR}") + ENDIF("${isSystemDir}" STREQUAL "-1") + + + ELSE(UNIX) + # We are on Windows + SET(Simox_TEST_DIR ${Simox_BIN_DIR}) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) + + # On MSVC we compile with /MP flag (use multiple threads) + IF(MSVC) + ADD_DEFINITIONS(/MP) + ENDIF(MSVC) + ENDIF(UNIX) - ## SETUP SABA - # nothing to do yet + + ####################################################################### + # Setup for testing + ####################################################################### + ENABLE_TESTING() + INCLUDE(CTest) + + MESSAGE(STATUS "** Test output directory: ${Simox_TEST_DIR}") + + ADD_DEFINITIONS(-DSimox_TEST_DIR=\"${Simox_TEST_DIR}/\") + + ####################################################################### + # Setup dependencies + ####################################################################### + + + SET (Simox_EXTERNAL_INCLUDE_DIRS "") + SET (Simox_EXTERNAL_LIBRARIES "") + SET (Simox_EXTERNAL_LIBRARY_DIRS "") + SET (Simox_EXTERNAL_LIBRARY_FLAGS "") + SET (Simox_EXTERNAL_LIBRARY_CMAKE_INCLUDE "") + + ############################# SETUP MODULES ############################# + MESSAGE (STATUS "** Module path: " ${CMAKE_MODULE_PATH}) + + #### Eigen + FIND_PACKAGE (Eigen3 REQUIRED) + if (Eigen3_FOUND) + SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${Eigen3_INCLUDE_DIR}) + endif (Eigen3_FOUND) + + #### BOOST + FIND_PACKAGE(Boost 1.42.0 COMPONENTS filesystem system unit_test_framework program_options thread REQUIRED) + if (Boost_FOUND) + MESSAGE (STATUS "Boost found at: ${Boost_INCLUDE_DIR}") + SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${Boost_INCLUDE_DIR}) + SET (Simox_EXTERNAL_LIBRARY_DIRS ${Simox_EXTERNAL_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS}) + SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${Boost_LIBRARIES}) + # disable boost auto linking + SET (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} -DBOOST_ALL_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DBOOST_THREAD_DYN_LINK") + else (Boost_FOUND) + MESSAGE ("!! Could not find Boost !!") + endif (Boost_FOUND) + + #### QT + # QT_QMAKE_EXECUTABLE is the only relieable way of setting the qt4 path! + # convert env var to cmake define + IF(NOT "$ENV{QT_QMAKE_EXECUTABLE}" STREQUAL "") + MESSAGE (STATUS "USING QT-PATH from environment variable QT_QMAKE_EXECUTABLE: $ENV{QT_QMAKE_EXECUTABLE}") + file(TO_CMAKE_PATH "$ENV{QT_QMAKE_EXECUTABLE}" QT_QMAKE_EXECUTABLE) + ENDIF() + FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) - ## SETUP GRASP STUDIO - # nothing to do yet + #### VISUALIZATION Coin3D+Qt+SoQt / OSG+Qt + ########################################## + SET (Simox_VISUALIZATION FALSE) + SET (Simox_VISUALIZATION_LIBS "") + SET (Simox_VISUALIZATION_INCLUDE_PATHS "") + SET (Simox_VISUALIZATION_COMPILE_FLAGS "") + + OPTION(Simox_USE_COIN_VISUALIZATION "Use Coin3D for visualization" ON) + OPTION(Simox_USE_OPENSCENEGRAPH_VISUALIZATION "Use OpenSceneGraph for visualization" OFF) + OPTION(Simox_USE_COLLADA "Enable the loading of robots from collada files" OFF) + + if (Simox_USE_COIN_VISUALIZATION) + MESSAGE(STATUS "Searching Coin3D, Qt and SoQt...") + + ##### Coin3D + FIND_PACKAGE(Coin3D REQUIRED) + if (COIN3D_FOUND) + MESSAGE (STATUS "Found Coin3D: " ${COIN3D_INCLUDE_DIRS}) + ##INCLUDE_DIRECTORIES(${COIN3D_INCLUDE_DIRS}) + ##ADD_DEFINITIONS(-DCOIN_DLL) + endif (COIN3D_FOUND) + + if ( QT_FOUND ) + MESSAGE (STATUS "Found Qt4: " ${QT_INCLUDE_DIR}) + MESSAGE (STATUS "QT_USE_FILE: " ${QT_USE_FILE}) + list(APPEND Simox_EXTERNAL_CMAKE_INCLUDE ${QT_USE_FILE}) + include(${QT_USE_FILE}) + SET (Simox_EXTERNAL_LIBRARY_CMAKE_INCLUDE ${Simox_EXTERNAL_LIBRARY_CMAKE_INCLUDE} ${QT_USE_FILE}) + SET (Simox_EXTERNAL_LIBRARY_DIRS ${Simox_EXTERNAL_LIBRARY_DIRS} ${QT_LIBRARY_DIR}) + SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${QT_LIBRARIES}) + + #MESSAGE(STATUS "QT_LIBRARIES: " ${QT_LIBRARIES}) + + #### SoQt + # This will set SoQt_INCLUDE_DIRS and SoQt_LIBRARIES + FIND_PACKAGE(SoQt) + if (SOQT_FOUND) + MESSAGE (STATUS "Found SoQt:" ${SoQt_INCLUDE_DIRS}) + ##ADD_DEFINITIONS(-DSOQT_DLL) + else (SOQT_FOUND) + MESSAGE (STATUS "Did not found SoQt. Disabling SoQt support.") + endif (SOQT_FOUND) + else ( QT_FOUND ) + MESSAGE (STATUS "Did not found Qt. Disabling Qt/SoQt support.") + endif ( QT_FOUND ) + + if (QT_FOUND AND SOQT_FOUND AND COIN3D_FOUND) + MESSAGE (STATUS "Enabling Coin3D/Qt/SoQt support") + MESSAGE (STATUS "By using the Coin3D library, the license of Simox is GPL, since Coin3D is a GPL library. If you want to use Simox under LGPL you must disable Coin3D support!") + SET (Simox_VISUALIZATION TRUE) + SET (Simox_VISUALIZATION_LIBS ${QT_LIBRARIES} ${COIN3D_LIBRARIES} ${SoQt_LIBRARIES} ) + SET (Simox_VISUALIZATION_INCLUDE_PATHS ${QT_INCLUDE_DIR} ${SoQt_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ) + SET (Simox_VISUALIZATION_COMPILE_FLAGS " -DCOIN_DLL -DSOQT_DLL ") + endif() + + elseif (Simox_USE_OPENSCENEGRAPH_VISUALIZATION) + + MESSAGE(STATUS "Searching OSG and Qt...") + + FIND_PACKAGE(OpenSceneGraph REQUIRED osgViewer osgUtil osgDB osgGA) + + if (OPENSCENEGRAPH_FOUND) + MESSAGE (STATUS "Found OpenSceneGraph:" ${OPENSCENEGRAPH_INCLUDE_DIRS}) + ##INCLUDE_DIRECTORIES(${OPENSCENEGRAPH_INCLUDE_DIRS}) + endif (OPENSCENEGRAPH_FOUND) + + if ( QT_FOUND ) + MESSAGE (STATUS "Found Qt4: " ${QT_INCLUDE_DIR}) + list(APPEND Simox_EXTERNAL_CMAKE_INCLUDE ${QT_USE_FILE}) + include(${QT_USE_FILE}) + #MESSAGE(STATUS "QT_LIBRARIES: " ${QT_LIBRARIES}) + else ( QT_FOUND ) + MESSAGE (STATUS "Did not found Qt. Disabling Qt/OSG support.") + endif ( QT_FOUND ) + + if (QT_FOUND AND OPENSCENEGRAPH_FOUND) + MESSAGE (STATUS "Enabling OSG/Qt support") + ### a little hack is needed here since osgQt is not supported in the FindOSG script + MESSAGE("OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") + LIST(GET OPENSCENEGRAPH_LIBRARIES 1 firstOsgLib) + MESSAGE("firstOsgLib: ${firstOsgLib}") + GET_FILENAME_COMPONENT(osgLibPath ${firstOsgLib} PATH) + MESSAGE("osgLibPath: ${osgLibPath}") + if (UNIX) + list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/libosgQt.so) + else() + list(APPEND OPENSCENEGRAPH_LIBRARIES optimized) + list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/osgQt.lib) + list(APPEND OPENSCENEGRAPH_LIBRARIES debug) + list(APPEND OPENSCENEGRAPH_LIBRARIES ${osgLibPath}/osgQtd.lib) + endif() + MESSAGE("OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") + SET (Simox_VISUALIZATION TRUE) + SET (Simox_VISUALIZATION_LIBS ${QT_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} ) + SET (Simox_VISUALIZATION_INCLUDE_PATHS ${OPENSCENEGRAPH_INCLUDE_DIRS} ) + SET (Simox_VISUALIZATION_COMPILE_FLAGS "") + endif() + + else() + MESSAGE(STATUS "Visualization disabled") + endif() + + if (Simox_USE_COLLADA) + MESSAGE(STATUS "Searching for Collada...") + + FIND_PACKAGE(COLLADA_DOM REQUIRED 2.4) + + IF(COLLADA_DOM_FOUND) + MESSAGE (STATUS "Found Collada") + MESSAGE (STATUS "* Collada COLLADA_DOM_ROOT_DIR : ${COLLADA_DOM_ROOT_DIR}") + MESSAGE (STATUS "* Collada Include DIRS: ${COLLADA_DOM_INCLUDE_DIRS}") + MESSAGE (STATUS "* Collada Libs: ${COLLADA_DOM_LIBRARIES}") + MESSAGE (STATUS "* Collada COLLADA_DOM_LIBRARY_DIRS: ${COLLADA_DOM_LIBRARY_DIRS}") + + FIND_LIBRARY(COLLADA_LIBRARY ${COLLADA_DOM_LIBRARIES} ${COLLADA_DOM_LIBRARY_DIRS}) + MESSAGE (STATUS "Collada Full Collada lib: ${COLLADA_LIBRARY}") + + #include_directories(${COLLADA_DOM_INCLUDE_DIRS}) + + SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${COLLADA_DOM_INCLUDE_DIRS}) + SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${COLLADA_LIBRARY}) + ENDIF() + endif() + + SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${Simox_VISUALIZATION_INCLUDE_PATHS}) + SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${Simox_VISUALIZATION_LIBS}) + SET (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} ${Simox_VISUALIZATION_COMPILE_FLAGS}") + MESSAGE(STATUS "** Simox_EXTERNAL_INCLUDE_DIRS:${Simox_EXTERNAL_INCLUDE_DIRS}") + MESSAGE(STATUS "** Simox_EXTERNAL_LIBRARY_DIRS:${Simox_EXTERNAL_LIBRARY_DIRS}") + MESSAGE(STATUS "** Simox_EXTERNAL_LIBRARIES:${Simox_EXTERNAL_LIBRARIES}") + MESSAGE(STATUS "** Simox_EXTERNAL_LIBRARY_FLAGS:${Simox_EXTERNAL_LIBRARY_FLAGS}") + MESSAGE(STATUS "** Simox_EXTERNAL_CMAKE_INCLUDE:${Simox_EXTERNAL_CMAKE_INCLUDE}") + + ## for historical reasons: set VirtualRobot flags to Simox flags + SET (VirtualRobot_VISUALIZATION ${Simox_VISUALIZATION}) + SET (VirtualRobot_VISUALIZATION_LIBS ${Simox_VISUALIZATION_LIBS}) + SET (VirtualRobot_VISUALIZATION_INCLUDE_PATHS ${Simox_VISUALIZATION_INCLUDE_PATHS}) + SET (VirtualRobot_VISUALIZATION_COMPILE_FLAGS ${Simox_VISUALIZATION_COMPILE_FLAGS}) + + + INCLUDE_DIRECTORIES(${Simox_EXTERNAL_INCLUDE_DIRS}) + ADD_DEFINITIONS( ${Simox_EXTERNAL_LIBRARY_FLAGS} ) ENDIF(NOT Simox_CONFIGURED) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 160183c71..9462feac8 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -5,7 +5,7 @@ find_package(Doxygen) IF(DOXYGEN_FOUND) - MESSAGE (STATUS "\n **** Setting up doxygen documetation") + MESSAGE (STATUS "** Setting up doxygen documetation") # set all paths SET (CMAKE_DOXYGEN_INPUT_LIST "${CMAKE_CURRENT_SOURCE_DIR}/.." "${CMAKE_CURRENT_SOURCE_DIR}/../GraspPlanning" -- GitLab