diff --git a/CMakeLists.txt b/CMakeLists.txt index 0669950223d1f3ae7129bc95cb74ffccf77b614e..be1e0dd060f4c068ff1c3ca79513c39cc863fbb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,30 +1,163 @@ -PROJECT(Simox) - -cmake_minimum_required(VERSION 2.8.12) -if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # qtmain add lib dependency (no effect in our case) -endif() +cmake_minimum_required(VERSION 3.10) + +####################################################################################### +PROJECT(Simox LANGUAGES CXX VERSION 2.3.73.0) +MESSAGE (STATUS "** Simox version: ${Simox_VERSION}") +####################################################################################### +#global config +# Set up build type + +IF(NOT CMAKE_BUILD_TYPE) + SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." + FORCE) +ENDIF() +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CXX_STANDARD 17) + +list(APPEND CMAKE_MODULE_PATH ${Simox_SOURCE_DIR}/CMakeModules) +MESSAGE (STATUS "** Module path: " ${CMAKE_MODULE_PATH}) + +# we want a global automoc +FIND_PACKAGE(Qt5 5.5.0 COMPONENTS OpenGL Core Gui Widgets) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + + +FIND_PACKAGE(Boost COMPONENTS unit_test_framework REQUIRED) + +#flags +add_compile_options(-Wall) +add_compile_options(-Wextra) +add_compile_options(-Wpedantic) +#turn warnings about dangerous stuff into errors +add_compile_options(-Werror=return-type) +add_compile_options(-Werror=maybe-uninitialized) +add_compile_options(-Werror=reorder) +add_compile_options(-Werror=parentheses) +####################################################################################### +#options +OPTION (Simox_USE_RBDL "Use RBDL" OFF) +OPTION (Simox_USE_URDF "Use URDF" OFF) +OPTION (Simox_USE_NLOPT "Use NLOPT" ON) +OPTION(BUILD_qhull "if on builds qhull external library" OFF) +OPTION(SimDynamics_USE_BULLET "Use Bullet Physics Engine" ON) +OPTION(Simox_USE_COIN_VISUALIZATION "Use Coin3D for visualization" ON) +OPTION(Simox_USE_OPENSCENEGRAPH_VISUALIZATION "Use OpenSceneGraph for visualization" OFF) +OPTION(Simox_COLLISION_CHECKER_PQP "Build and use the PQP Collision Detection library (located in ExternalDependencies)" ON) +####################################################################################### MESSAGE(STATUS "******************** Configuring Simox ************************") -set (Simox_BUILD_DIRECTORY ${CMAKE_BINARY_DIR} CACHE STRING "Simox build directory") -#set (Simox_BUILD_VirtualRobot TRUE CACHE BOOL "Build Simox VirtualRobot") set (Simox_BUILD_Saba TRUE CACHE BOOL "Build Motion Planning library") set (Simox_BUILD_GraspStudio TRUE CACHE BOOL "Build Grasp Planning library") set (Simox_BUILD_SimDynamics TRUE CACHE BOOL "Build Dynamic Simulation") -INCLUDE (config.cmake) +MESSAGE (STATUS "** SIMOX BUILD VirtualRobot: TRUE (can't e turned off)") +MESSAGE (STATUS "** SIMOX BUILD Saba : ${Simox_BUILD_Saba}") +MESSAGE (STATUS "** SIMOX BUILD GraspStudio : ${Simox_BUILD_GraspStudio}") +MESSAGE (STATUS "** SIMOX BUILD SimDynamics : ${Simox_BUILD_SimDynamics}") +############################# SETUP PATHS ############################# +if(WIN32 AND NOT CYGWIN) + set(INSTALL_CMAKE_DIR CMake CACHE PATH "Installation directory for CMake files") +else() + set(INSTALL_CMAKE_DIR share/Simox/cmake CACHE PATH "Installation directory for CMake files") +endif() + +SET(Simox_LIB_DIR ${Simox_BINARY_DIR}/lib) +SET(Simox_BIN_DIR ${Simox_BINARY_DIR}/bin) +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 lib) +SET(Simox_INSTALL_BIN_DIR bin) +SET(Simox_INSTALL_DATA_DIR data) +SET(Simox_INSTALL_HEADER_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}") + +MESSAGE(STATUS "** Simox build directory: ${CMAKE_BINARY_DIR}") +########################### IDE settings ################################ +# use virtual folders for grouping projects in IDEs +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +############################# Set OS specific options ############################# +set(Simox_OS_compile_options) +IF(UNIX) + # We are on Linux + SET(Simox_TEST_DIR ${Simox_BIN_DIR}/tests) + IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + set(Simox_OS_compile_options ${Simox_OS_compile_options} -fPIC) + ENDIF() + + IF(${CMAKE_BUILD_TYPE} STREQUAL "Debug") + MESSAGE(STATUS "Configuring Debug build") + set(Simox_OS_compile_options ${Simox_OS_compile_options} -D_DEBUG) + 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() +ELSE() + # We are on Windows + SET(Simox_TEST_DIR ${Simox_BIN_DIR}) + set(Simox_OS_compile_options + -D_CRT_SECURE_NO_WARNINGS + -DWIN32_LEAN_AND_MEAN # avoid errors with winsock / winsock2 includes + ) + + # On MSVC we compile with /MP flag (use multiple threads) + IF(MSVC) + set(Simox_OS_compile_options ${Simox_OS_compile_options} /MP) + ENDIF() +ENDIF() +####################################################################### +# Setup for testing +ENABLE_TESTING() +INCLUDE(CTest) +MESSAGE(STATUS "** Test output directory: ${Simox_TEST_DIR}") +ADD_DEFINITIONS(-DSimox_TEST_DIR=\"${Simox_TEST_DIR}/\") -MESSAGE(STATUS "** Simox build directory: ${Simox_BUILD_DIRECTORY}") +####################################################################################### add_subdirectory(VirtualRobot) + + +####################################################################################### set (SIMOX_EXPORT_TARGET_LIST VirtualRobot) list (APPEND Simox_LIBRARIES VirtualRobot) list(APPEND SIMOX_EXPORT_TARGET_LIST ColCheckerPQP) + + +####################################################################################### if (Simox_BUILD_Saba) add_subdirectory(MotionPlanning) list(APPEND SIMOX_EXPORT_TARGET_LIST Saba) list (APPEND Simox_LIBRARIES Saba) endif() + +####################################################################################### if (Simox_BUILD_GraspStudio) add_subdirectory(GraspPlanning) list(APPEND SIMOX_EXPORT_TARGET_LIST GraspStudio) @@ -33,6 +166,8 @@ if (Simox_BUILD_GraspStudio) endif() list (APPEND Simox_LIBRARIES GraspStudio) endif() + +####################################################################################### if (Simox_BUILD_SimDynamics) find_package(Bullet QUIET) if(BULLET_FOUND) @@ -43,31 +178,16 @@ if (Simox_BUILD_SimDynamics) list(APPEND SIMOX_EXPORT_TARGET_LIST BulletOpenGLSupport) endif() - list (APPEND Simox_EXTERNAL_LIBRARIES ${Simox_SimDynamics_EXTERNAL_LIBRARIES}) - list (APPEND Simox_EXTERNAL_INCLUDE_DIRS ${Simox_SimDynamics_INCLUDE_DIRS}) - #MESSAGE ("Simox_EXTERNAL_LIBRARY_FLAGS::: ${Simox_EXTERNAL_LIBRARY_FLAGS} !!!!!!!!!!!!!!!!") - #MESSAGE ("Simox_SimDynamics_COMPILE_FLAGS::: ${Simox_SimDynamics_COMPILE_FLAGS} !!!!!!!!!!!!!!!!") - #list (APPEND Simox_EXTERNAL_LIBRARY_FLAGS ${Simox_SimDynamics_COMPILE_FLAGS}) - set (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} ${Simox_SimDynamics_COMPILE_FLAGS}") - #MESSAGE ("Simox_EXTERNAL_LIBRARY_FLAGS::: ${Simox_EXTERNAL_LIBRARY_FLAGS} !!!!!!!!!!!!!!!!") else() message("NOT building SimDynamics since bullet was not found") endif() endif() - 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}") - add_subdirectory(doc) -####################################################################### +####################################################################################### # Setup for installation -####################################################################### - -############################################ MESSAGE (STATUS "** Simox: Generating CMake files for build and install setup") # Add all targets to the build-tree export set @@ -94,7 +214,7 @@ file(RELATIVE_PATH RELATIVE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}") -set(CONF_INCLUDE_DIRS "${INSTALL_INCLUDE_DIR}") +set(CONF_INCLUDE_DIRS "include") set(Simox_DATA_PATH "${Simox_INSTALL_DATA_DIR}") set(Simox_MACROS_INCLUDE_DIR "\${Simox_CMAKE_DIR}") @@ -124,7 +244,7 @@ install(EXPORT SimoxTargets DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev) -############################################################# +####################################################################################### # PACKAGING (DEB) # git version not used any more! @@ -185,7 +305,7 @@ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libbullet-dev, libbulletmultithreaded2.82, lib SET(CPACK_COMPONENTS_ALL Applications Headers Libraries ApplicationData) INCLUDE(CPack) -############################################################# +####################################################################################### # STYLE FIND_PACKAGE(AStyle QUIET) diff --git a/CMakeModules/Cxx11Test.cmake b/CMakeModules/Cxx11Test.cmake deleted file mode 100644 index 1bce98012947f9cd272333a61d802d8e5872620e..0000000000000000000000000000000000000000 --- a/CMakeModules/Cxx11Test.cmake +++ /dev/null @@ -1,18 +0,0 @@ -include(TestCXXAcceptsFlag) - -IF (NOT WIN32) - check_cxx_accepts_flag("-std=c++11" CXX_FLAG_CXX11) - check_cxx_accepts_flag("-std=c++0x" CXX_FLAG_CXX0x) - IF (CXX_FLAG_CXX11) - SET (CXX11_FLAG "-std=c++11" CACHE STRING "Flag for enabling c++11") - ELSEIF(CXX_FLAG_CXX0x) - SET (CXX11_FLAG "-std=c++0x" CACHE STRING "Flag for enabling c++11") - ELSE () - message (WARNING "Your compiler does not seem to support C++11!") - ENDIF() -ELSE () - # MSVC: on by default -ENDIF() - - - diff --git a/CMakeModules/SimoxConfig.cmake.in b/CMakeModules/SimoxConfig.cmake.in index cdf6211bb1ad1a5cd3e463b326864b90a32beffe..546544c5d8c22f42067d152d1d40fe46f5738241 100644 --- a/CMakeModules/SimoxConfig.cmake.in +++ b/CMakeModules/SimoxConfig.cmake.in @@ -9,8 +9,6 @@ # Simox_VISUALIZATION - if visualization is enabled # Simox_USE_COIN_VISUALIZATION - if Coin3D visualization was selected # Simox_USE_OPENSCENEGRAPH_VISUALIZATION - if osg visualization was selected -# Simox_USE_QT4 - if qt4 was selected -# Simox_USE_QT5 - if qt5 was selected # Simox_USE_NLOPT - if NLopt was selected # SimDynamics_USE_BULLET - if SimDynamics is build and BULLET is selected as physics engine # SimDynamics_USE_BULLET_DOUBLE_PRECISION - if Bullet is build with double precision support @@ -53,17 +51,13 @@ 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_USE_RBDL "@Simox_USE_RBDL@") -SET(Simox_USE_QT4 "@Simox_USE_QT4@") -SET(Simox_USE_QT5 "@Simox_USE_QT5@") +SET(Simox_USE_QT5 "ON") # this variable legacy support (Qt5 is now required) SET(Simox_USE_NLOPT "@Simox_USE_NLOPT@") SET(SimDynamics_USE_BULLET "@SimDynamics_USE_BULLET@") SET(SimDynamics_USE_BULLET_DOUBLE_PRECISION "@SimDynamics_USE_BULLET_DOUBLE_PRECISION@") -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@") +FIND_PACKAGE(Qt5 5.5.0 COMPONENTS OpenGL Core Gui Widgets QUIET) diff --git a/CMakeModules/SimoxMacros.cmake b/CMakeModules/SimoxMacros.cmake index ed9a74ad832b1c5bd57be3aaced876cce6a3aed2..02c80dd6f8c044b09f877081e7d12896dc728ed8 100644 --- a/CMakeModules/SimoxMacros.cmake +++ b/CMakeModules/SimoxMacros.cmake @@ -1,98 +1,35 @@ - # Build and helper macros -macro(setupSimoxExternalLibraries) - IF (Simox_VISUALIZATION) - # we need to check for Qt - 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() - - if (Simox_USE_QT4) - FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) - include(${QT_USE_FILE}) - else() - FIND_PACKAGE(Qt5 5.5.0 COMPONENTS OpenGL Core Gui Designer) - endif() - ENDIF() - INCLUDE_DIRECTORIES(${Simox_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS( ${Simox_EXTERNAL_LIBRARY_FLAGS} ) - LINK_DIRECTORIES( ${Simox_LIBRARY_DIRS} ) -endmacro() - - function(VirtualRobotApplication name srcs incs) - setupSimoxExternalLibraries() - INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) ################################## EXECUTABLE ############################## ADD_EXECUTABLE(${name} ${srcs} ${incs}) - TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) + target_include_directories(${name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot) endfunction() function(VirtualRobotQtApplication name srcs incs mocFiles uiFiles) - setupSimoxExternalLibraries() - - if (Simox_USE_QT4) - MESSAGE (STATUS "Qt4 Moc'ing: ${mocFiles}") - MESSAGE (STATUS "Qt4 ui files: ${uiFiles}") - # need this option to work around a qt/boost bug - qt4_wrap_cpp(generatedMocFiles ${mocFiles} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - qt4_wrap_ui(generatedUiFiles ${uiFiles}) - else() - if(NOT "${CMAKE_VERSION}" VERSION_GREATER 3.9) - MESSAGE (STATUS "Qt5 Moc'ing: ${mocFiles}") - MESSAGE (STATUS "Qt5 ui files: ${uiFiles}") - # need this option to work around a qt/boost bug - qt5_wrap_cpp(generatedMocFiles ${mocFiles} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - qt5_wrap_ui(generatedUiFiles ${uiFiles}) - else() - set(CMAKE_AUTOMOC "YES") - set(CMAKE_AUTOUIC "YES") - set(generatedUiFiles ${uiFiles}) - set(generatedMocFiles ${mocFiles}) - endif() - endif() - - INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) + set(CMAKE_AUTOMOC "YES") + set(CMAKE_AUTOUIC "YES") + set(generatedUiFiles ${uiFiles}) + set(generatedMocFiles ${mocFiles}) ################################## EXECUTABLE ############################## ADD_EXECUTABLE(${name} ${srcs} ${incs} ${generatedUiFiles} ${generatedMocFiles}) - TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) + target_include_directories(${name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot) endfunction() function(VirtualRobotQtLibrary name srcs incs mocFiles uiFiles) - setupSimoxExternalLibraries() - - if (Simox_USE_QT4) - MESSAGE (STATUS "Qt4 Moc'ing: ${mocFiles}") - MESSAGE (STATUS "Qt4 ui files: ${uiFiles}") - # need this option to work around a qt/boost bug - qt4_wrap_cpp(generatedMocFiles ${mocFiles} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - qt4_wrap_ui(generatedUiFiles ${uiFiles}) - else() - if(NOT "${CMAKE_VERSION}" VERSION_GREATER 3.9) - MESSAGE (STATUS "Qt5 Moc'ing: ${mocFiles}") - MESSAGE (STATUS "Qt5 ui files: ${uiFiles}") - # need this option to work around a qt/boost bug - qt5_wrap_cpp(generatedMocFiles ${mocFiles} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - qt5_wrap_ui(generatedUiFiles ${uiFiles}) - else() - set(generatedUiFiles ${uiFiles}) - set(generatedMocFiles ${mocFiles}) - set(CMAKE_AUTOMOC "YES") - set(CMAKE_AUTOUIC "YES") - endif() - endif() + set(generatedUiFiles ${uiFiles}) + set(generatedMocFiles ${mocFiles}) + set(CMAKE_AUTOMOC "YES") + set(CMAKE_AUTOUIC "YES") - INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ) ################################## LIBRARY ############################## ADD_LIBRARY(${name} SHARED ${srcs} ${incs} ${generatedUiFiles} ${generatedMocFiles}) - TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) + target_include_directories(${name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + TARGET_LINK_LIBRARIES(${name} PUBLIC VirtualRobot) endfunction() diff --git a/GraspPlanning/CMakeLists.txt b/GraspPlanning/CMakeLists.txt index 24f49b501e2fd8f5e9214da9306c1b226fae1b4a..2392cfba3005155e730e2a821a0b7a0d3bbff502 100644 --- a/GraspPlanning/CMakeLists.txt +++ b/GraspPlanning/CMakeLists.txt @@ -1,22 +1,14 @@ PROJECT ( GraspStudio ) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) -CMAKE_POLICY(VERSION 2.6) -if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # qtmain add lib dependency (no effect in our case) -endif() - MESSAGE (STATUS "***** CONFIGURING Simox project GraspStudio *****") -INCLUDE (Cxx11Test) -SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAG}") MACRO(ADD_GRASPSTUDIO_TEST TEST_NAME) - if (NOT Boost_USE_STATIC_LIBS) - ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) - endif (NOT Boost_USE_STATIC_LIBS) ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba GraspStudio ${Simox_EXTERNAL_LIBRARIES}) + if (NOT Boost_USE_STATIC_LIBS) + target_compile_definitions(${TEST_NAME} PRIVATE -DBOOST_TEST_DYN_LINK) + endif () + TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba GraspStudio boost_unit_test_framework) 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} @@ -25,7 +17,6 @@ ENDMACRO(ADD_GRASPSTUDIO_TEST) ########### QHULL ################# -OPTION(BUILD_qhull "if on builds qhull external library" OFF) IF(NOT BUILD_qhull) find_package(QHULL QUIET) IF (NOT QHULL_FOUND) @@ -38,10 +29,8 @@ ENDIF() IF(BUILD_qhull) ADD_SUBDIRECTORY(ExternalDependencies/qhull-2003.1) set(QHULL_LIBRARIES simox-qhull) - include_directories("ExternalDependencies/qhull-2003.1/include/") else() find_package(QHULL REQUIRED) - include_directories(${QHULL_INCLUDE_DIRS}) endif() ########### END QHULL ################# @@ -91,14 +80,15 @@ if (Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) ) endif () - -include_directories(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) -ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) - - ADD_LIBRARY (GraspStudio SHARED ${SOURCES} ${INCLUDES}) -TARGET_LINK_LIBRARIES (GraspStudio PUBLIC Saba VirtualRobot ${Simox_EXTERNAL_LIBRARIES} ${QHULL_LIBRARIES}) +IF(BUILD_qhull) + target_include_directories(GraspStudio PUBLIC "ExternalDependencies/qhull-2003.1/include/") +else() + target_include_directories(GraspStudio PUBLIC ${QHULL_INCLUDE_DIRS}) +endif() + +TARGET_LINK_LIBRARIES (GraspStudio PUBLIC Saba VirtualRobot ${QHULL_LIBRARIES}) # .DLL path SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) @@ -124,9 +114,9 @@ endif() 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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} diff --git a/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt b/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt index d8261631dc3153268530727d76c56ce73ac6e40a..97d07defd103a04613241a24248cf7fa7ecd00d1 100644 --- a/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt +++ b/GraspPlanning/ExternalDependencies/qhull-2003.1/CMakeLists.txt @@ -6,9 +6,9 @@ MESSAGE (STATUS " **** Configuring qhull") FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/src/*.c) FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/src/*.h) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src) ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") # .DLL path diff --git a/GraspPlanning/examples/GraspPlanner/CMakeLists.txt b/GraspPlanning/examples/GraspPlanner/CMakeLists.txt index 3aade73724f39f670c5b95641bb8cc62f991f657..9135c9938c8beb3cb46221a39473d9985ebb1160 100644 --- a/GraspPlanning/examples/GraspPlanner/CMakeLists.txt +++ b/GraspPlanning/examples/GraspPlanner/CMakeLists.txt @@ -1,9 +1,7 @@ PROJECT ( GraspPlanner ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) -INCLUDE (Cxx11Test) -SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAG}") IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -31,9 +29,9 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/GraspPlanning/examples/GraspQuality/CMakeLists.txt b/GraspPlanning/examples/GraspQuality/CMakeLists.txt index a64dd5726179945860239997b5641d4d41ff7897..74b7906efe1e2ff748361d2dab4c2c460e93ad64 100644 --- a/GraspPlanning/examples/GraspQuality/CMakeLists.txt +++ b/GraspPlanning/examples/GraspQuality/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( GraspQuality ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -29,10 +29,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/CMakeLists.txt b/MotionPlanning/CMakeLists.txt index 1948434c7f6f0bfee63954fd9af942c79ec809f4..348489c0233c7349e02d9052d974481059e0ee40 100644 --- a/MotionPlanning/CMakeLists.txt +++ b/MotionPlanning/CMakeLists.txt @@ -1,29 +1,18 @@ PROJECT ( Saba ) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) -CMAKE_POLICY(VERSION 2.6) -if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # qtmain add lib dependency (no effect in our case) -endif() - MESSAGE (STATUS "***** CONFIGURING Simox project Saba *****") -INCLUDE (Cxx11Test) -SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAG}") ########################### TESTING ##################################### MACRO(ADD_SABA_TEST TEST_NAME) - include_directories(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) - INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/..") - if (NOT Boost_USE_STATIC_LIBS) - ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) - endif (NOT Boost_USE_STATIC_LIBS) - ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba ${Simox_EXTERNAL_LIBRARIES} ${Boost_TEST_LIB}) + target_include_directories(${TEST_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/..) + if (NOT Boost_USE_STATIC_LIBS) + target_compile_definitions(${TEST_NAME} PRIVATE -DBOOST_TEST_DYN_LINK) + endif () + TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba boost_unit_test_framework) 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} @@ -88,14 +77,11 @@ if (Simox_USE_COIN_VISUALIZATION) ${INCLUDES} Visualization/CoinVisualization/CoinRrtWorkspaceVisualization.h ) -endif (Simox_USE_COIN_VISUALIZATION) - -include_directories(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) -ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) +endif () ADD_LIBRARY (Saba SHARED ${SOURCES} ${INCLUDES}) #MESSAGE(STATUS "VirtualRobot_ROBOT_LINK_LIBRARIES:" ${VirtualRobot_EXTERNAL_LIBRARIES}) -TARGET_LINK_LIBRARIES (Saba PUBLIC VirtualRobot ${Simox_EXTERNAL_LIBRARIES}) +TARGET_LINK_LIBRARIES (Saba PUBLIC VirtualRobot) # .DLL path SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) @@ -121,9 +107,9 @@ endif() 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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} diff --git a/MotionPlanning/Planner/BiRrt.cpp b/MotionPlanning/Planner/BiRrt.cpp index aa666c2f2ff0e337bab353388caca7e9a892ee20..07f4bde41a9733385519574f2f83acf014ec3b07 100644 --- a/MotionPlanning/Planner/BiRrt.cpp +++ b/MotionPlanning/Planner/BiRrt.cpp @@ -100,8 +100,8 @@ namespace Saba robot->setUpdateVisualization(false); } - ExtensionResult extResultA; - ExtensionResult extResultB; + ExtensionResult extResultA = eError; + ExtensionResult extResultB = eError; bool switched = false; int* lastIDA = &lastAddedID; diff --git a/MotionPlanning/examples/GraspRRT/CMakeLists.txt b/MotionPlanning/examples/GraspRRT/CMakeLists.txt index 3382419a8bdaa2218a9ab50e151c8bd7dc1b5239..e3704cef99569b0a41da7d577b225d24e89585f2 100644 --- a/MotionPlanning/examples/GraspRRT/CMakeLists.txt +++ b/MotionPlanning/examples/GraspRRT/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( GraspRrtDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,10 +30,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/examples/IKRRT/CMakeLists.txt b/MotionPlanning/examples/IKRRT/CMakeLists.txt index ed209afcd4e8770a143738d051de5ba1279e960b..122cc9a2cd75e2245b46f96c4ec966d481366f37 100644 --- a/MotionPlanning/examples/IKRRT/CMakeLists.txt +++ b/MotionPlanning/examples/IKRRT/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( IKRRT ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -33,10 +33,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt b/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt index 778ad0142ad3a5e7553c60bcda394705fcf98b44..97f1993f8d31199e1ac38c9ba381bf0dd7a43017 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt +++ b/MotionPlanning/examples/MultiThreadedPlanning/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( MultiThreadedPlanning ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -31,11 +31,11 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.cpp b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.cpp index d2c6dfdd999549b9633c2791c04ec30a05f6ae87..d7a4d41cfffde5eede13034dfc0db55a3fe3e07e 100644 --- a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.cpp +++ b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningWindow.cpp @@ -1,6 +1,7 @@ #include "MTPlanningWindow.h" +#include "ui_MTPlanning.h" #include <vector> #include <iostream> diff --git a/MotionPlanning/examples/PlatformDemo/CMakeLists.txt b/MotionPlanning/examples/PlatformDemo/CMakeLists.txt index 59a271114863b949a98f3efcb7772131f8dcc706..24ff2268f23fa78ba42f8f7d9b7ccf4bec8d315f 100644 --- a/MotionPlanning/examples/PlatformDemo/CMakeLists.txt +++ b/MotionPlanning/examples/PlatformDemo/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( PlatformDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,10 +30,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/examples/RRT/CMakeLists.txt b/MotionPlanning/examples/RRT/CMakeLists.txt index c6a32aa40e46ad4c2e090258f89677b0dee56df5..467c6d1a8248b59344fcab067df8c3693c61e976 100644 --- a/MotionPlanning/examples/RRT/CMakeLists.txt +++ b/MotionPlanning/examples/RRT/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( RRTdemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -21,11 +21,11 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ELSE() MESSAGE (STATUS "Simox_USE_COIN_VISUALIZATION not defined: Skipping ${PROJECT_NAME}") diff --git a/MotionPlanning/examples/RrtGui/CMakeLists.txt b/MotionPlanning/examples/RrtGui/CMakeLists.txt index 8c7cd969792cb3d1c56f0dfb5a34574b169f23d6..b78376977634aae401ee270d607b17b16cb5f43b 100644 --- a/MotionPlanning/examples/RrtGui/CMakeLists.txt +++ b/MotionPlanning/examples/RrtGui/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( RrtGui ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -29,10 +29,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/MotionPlanning/tests/CMakeLists.txt b/MotionPlanning/tests/CMakeLists.txt index da5087a07816926457b089ec53564f5c90b1345a..745ed89aa1085e591690b8395a0e5d3d15311a4d 100644 --- a/MotionPlanning/tests/CMakeLists.txt +++ b/MotionPlanning/tests/CMakeLists.txt @@ -1,5 +1,5 @@ -if (VirtualRobot_VISUALIZATION) +if (Simox_VISUALIZATION) ADD_SABA_TEST( SabaCSpaceTest ) ADD_SABA_TEST( SabaShortcutProcessorTest ) endif() diff --git a/SimDynamics/CMakeLists.txt b/SimDynamics/CMakeLists.txt index cbb4b54b4c2a06bd47c20216b76de6699ea968a1..934aeca36e298143caf4bbf707320aab96e880ce 100644 --- a/SimDynamics/CMakeLists.txt +++ b/SimDynamics/CMakeLists.txt @@ -1,26 +1,21 @@ PROJECT ( SimDynamics ) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) -CMAKE_POLICY(VERSION 2.6) -if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # qtmain add lib dependency (no effect in our case) -endif() - MESSAGE (STATUS "***** CONFIGURING Simox project SimDynamics *****") +add_library(SimDynamics SHARED SimDynamics.h) # sources will be added later + +target_include_directories(SimDynamics PUBLIC + $<BUILD_INTERFACE:${Simox_SOURCE_DIR}> + $<BUILD_INTERFACE:${Simox_BINARY_DIR}> + $<INSTALL_INTERFACE:include> +) GET_FILENAME_COMPONENT (CurrentSimDynamicsPath ${CMAKE_CURRENT_LIST_FILE} PATH) SET(SimDynamics_DIR ${CurrentSimDynamicsPath}) - -INCLUDE (Cxx11Test) -SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAG}") - ############################# SETUP PHYSICS ENGINE ############################# -OPTION(SimDynamics_USE_BULLET "Use Bullet Physics Engine" ON) SET (SimDynamics_DYNAMICSENGINE FALSE) -SET (SimDynamics_PHYSICS_LIBRARIES "") if (SimDynamics_USE_BULLET) @@ -32,97 +27,78 @@ if (SimDynamics_USE_BULLET) SET (BULLET_ROOT ${BULLET_ROOT} CACHE PATH "Bullet Path") Find_Package(Bullet) if (BULLET_FOUND) - MESSAGE (STATUS " ** Found Bullet at ${BULLET_INCLUDE_DIRS}") - - + MESSAGE (STATUS " ** Found Bullet at ${BULLET_INCLUDE_DIRS}") - #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_DIRS}" "${BULLET_INCLUDE_DIRS}/bullet") # "${BULLET_DEMOS_INCLUDE_DIR}" "${BULLET_OPENGL_INCLUDE_DIR}")# PARENT_SCOPE) - - INCLUDE_DIRECTORIES( - ${BULLET_INCLUDE_DIRS} - ${BULLET_INCLUDE_DIRS}/bullet - ) + target_include_directories(SimDynamics PUBLIC ${BULLET_INCLUDE_DIRS}) + if(EXISTS "${BULLET_INCLUDE_DIRS}/bullet") + target_include_directories(SimDynamics PUBLIC ${BULLET_INCLUDE_DIRS}/bullet) + endif() - IF (WIN32) - OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" OFF) - else() - OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" ON) - endif() + IF (WIN32) + OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" OFF) + else() + OPTION(SimDynamics_USE_BULLET_USE_GLUT "Use Glut" ON) + endif() include(BulletCheckPrecision) message(STATUS "BULLET_INCLUDE_DIRS ${BULLET_INCLUDE_DIRS}") BulletCheckPrecision() - IF( NOT BULLET_USE_SINGLE_PRECISION ) - ADD_DEFINITIONS( -DBT_USE_DOUBLE_PRECISION) - LIST(APPEND SIMDYNAMICS_COMPILE_FLAGS "-DBT_USE_DOUBLE_PRECISION") - ENDIF() - #MESSAGE(STATUS "BULLET_LIBRARIES:${BULLET_LIBRARIES}") - SET (SimDynamics_PHYSICS_LIBRARIES "${BULLET_LIBRARIES}") - SET (SimDynamics_DYNAMICSENGINE TRUE) + target_link_libraries(SimDynamics PUBLIC ${BULLET_LIBRARIES}) + SET (SimDynamics_DYNAMICSENGINE TRUE) - FIND_PACKAGE(OpenGL) - IF (OPENGL_FOUND) - MESSAGE (STATUS " ** OPENGL FOUND lib:${OPENGL_gl_LIBRARY}") - #check if there was a distuingish between optimized and debug libs: - IF (SimDynamics_PHYSICS_LIBRARIES MATCHES "optimized;") - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES optimized ${OPENGL_gl_LIBRARY} debug ${OPENGL_gl_LIBRARY}) - ELSE() - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES ${OPENGL_gl_LIBRARY}) - ENDIF() - ENDIF() - IF (OPENGL_GLU_FOUND) - MESSAGE (STATUS " ** OPENGL_GLU FOUND lib:${OPENGL_glu_LIBRARY}") - #check if there was a distuingish between optimized and debug libs: - IF (SimDynamics_PHYSICS_LIBRARIES MATCHES "optimized;") - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES optimized ${OPENGL_glu_LIBRARY} debug ${OPENGL_glu_LIBRARY}) - ELSE() - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES ${OPENGL_glu_LIBRARY}) - ENDIF() - ENDIF() - - IF (SimDynamics_USE_BULLET_USE_GLUT) + FIND_PACKAGE(OpenGL) + IF (OPENGL_FOUND) + MESSAGE (STATUS " ** OPENGL FOUND lib:${OPENGL_gl_LIBRARY}") + #check if there was a distuingish between optimized and debug libs: + IF (BULLET_LIBRARIES MATCHES "optimized;") + target_link_libraries(SimDynamics PUBLIC optimized ${OPENGL_gl_LIBRARY} debug ${OPENGL_gl_LIBRARY}) + ELSE() + target_link_libraries(SimDynamics PUBLIC ${OPENGL_gl_LIBRARY}) + ENDIF() + ENDIF() + IF (OPENGL_GLU_FOUND) + MESSAGE (STATUS " ** OPENGL_GLU FOUND lib:${OPENGL_glu_LIBRARY}") + #check if there was a distuingish between optimized and debug libs: + IF (BULLET_LIBRARIES MATCHES "optimized;") + target_link_libraries(SimDynamics PUBLIC optimized ${OPENGL_glu_LIBRARY} debug ${OPENGL_glu_LIBRARY}) + ELSE() + target_link_libraries(SimDynamics PUBLIC ${OPENGL_glu_LIBRARY}) + ENDIF() + ENDIF() + + IF (SimDynamics_USE_BULLET_USE_GLUT) FIND_PACKAGE(GLUT) IF (GLUT_FOUND) MESSAGE(STATUS " ** GLUT FOUND: ${GLUT_glut_LIBRARY}") - #check if there was a distuingish between optimized and debug libs: - IF (SimDynamics_PHYSICS_LIBRARIES MATCHES "optimized;") - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES optimized ${GLUT_glut_LIBRARY} debug ${GLUT_glut_LIBRARY}) - ELSE() - LIST(APPEND SimDynamics_PHYSICS_LIBRARIES ${GLUT_glut_LIBRARY} ) - ENDIF() + #check if there was a distuingish between optimized and debug libs: + IF (BULLET_LIBRARIES MATCHES "optimized;") + target_link_libraries(SimDynamics PUBLIC optimized ${GLUT_glut_LIBRARY} debug ${GLUT_glut_LIBRARY}) + ELSE() + target_link_libraries(SimDynamics PUBLIC ${GLUT_glut_LIBRARY} ) + ENDIF() + + IF (WIN32) + target_include_directories(SimDynamics PUBLIC ${GLUT_INCLUDE_DIR}) + ELSE () + # This is the lines for linux. This should always work if everything is installed and working fine. + target_include_directories(SimDynamics PUBLIC /usr/include /usr/local/include ${GLUT_INCLUDE_DIR}) + ENDIF () + ELSE () + SET( GLUT_glut_LIBRARY "" CACHE PATH "Glut library." ) + ENDIF () + ENDIF() + + ADD_SUBDIRECTORY(DynamicsEngine/BulletEngine/BulletOpenGL) - 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) - ELSE (GLUT_FOUND) - SET( GLUT_glut_LIBRARY "" CACHE PATH "Glut library." ) - ENDIF (GLUT_FOUND) - - #SET (SimDynamics_BULLET_OpenGL TRUE) - ENDIF(SimDynamics_USE_BULLET_USE_GLUT) - - ADD_SUBDIRECTORY(DynamicsEngine/BulletEngine/BulletOpenGL) - - else() - MESSAGE (STATUS " ** Could not find Bullet") - 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}") ####################################################################### @@ -130,11 +106,11 @@ MESSAGE (STATUS " ** SimDynamics_PHYSICS_LIBRARIES: ${SimDynamics_PHYSICS_LIBRAR ####################################################################### MACRO(ADD_SIMDYNAMICS_TEST TEST_NAME) - if (NOT Boost_USE_STATIC_LIBS) - ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) - endif (NOT Boost_USE_STATIC_LIBS) ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba GraspStudio SimDynamics ${Simox_EXTERNAL_LIBRARIES} ${SimDynamics_PHYSICS_LIBRARIES} ${Boost_TEST_LIB}) + if (NOT Boost_USE_STATIC_LIBS) + target_compile_definitions(${TEST_NAME} PRIVATE -DBOOST_TEST_DYN_LINK) + endif () + TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot Saba GraspStudio SimDynamics boost_unit_test_framework) 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} @@ -161,7 +137,6 @@ if (SimDynamics_DYNAMICSENGINE) DynamicsEngine/DynamicsRobot.h DynamicsEngine/DynamicsUtils.h ) - # ${SimDynamics_SimoxDir}/VirtualRobot/definesVR.h if (SimDynamics_USE_BULLET) SET(SOURCES @@ -212,28 +187,23 @@ if (SimDynamics_DYNAMICSENGINE) DynamicsEngine/BulletEngine/BulletCoinQtViewer.h ) else() + MESSAGE (STATUS "SOQT_FOUND : ${SOQT_FOUND}") + MESSAGE (STATUS "Simox_USE_COIN_VISUALIZATION: ${Simox_USE_COIN_VISUALIZATION}") MESSAGE (STATUS " ** Qt/Coin3D disabled: Skipping BulletCoinQtViewer") endif() endif () - - # this var is considered for generating Simox_INCLUDE_DIRS_ - SET(Simox_SimDynamics_INCLUDE_DIRS "${SIMDYNAMICS_INCLUDE_DIRS}" PARENT_SCOPE) - SET(Simox_SimDynamics_EXTERNAL_LIBRARIES "${SimDynamics_PHYSICS_LIBRARIES}" PARENT_SCOPE) - SET(Simox_SimDynamics_COMPILE_FLAGS "${SIMDYNAMICS_COMPILE_FLAGS}" PARENT_SCOPE) - #INCLUDE_DIRECTORIES(${SimDynamics_SimoxDir}) - #INCLUDE_DIRECTORIES(${SimDynamics_DIR}) - - include_directories(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) - ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) + set_target_properties(SimDynamics PROPERTIES SOURCES "${SOURCES};${INCLUDES}") - ADD_LIBRARY (SimDynamics SHARED ${SOURCES} ${INCLUDES}) if (SimDynamics_BULLET_OpenGL) TARGET_LINK_LIBRARIES (SimDynamics PUBLIC BulletOpenGLSupport) SET (SimDynamics_BULLET_OpenGL TRUE PARENT_SCOPE) # inform parent scope about BulletOpenGLSupport ENDIF(SimDynamics_BULLET_OpenGL) - TARGET_LINK_LIBRARIES (SimDynamics PUBLIC ${Simox_EXTERNAL_LIBRARIES} VirtualRobot ${SimDynamics_PHYSICS_LIBRARIES}) + TARGET_LINK_LIBRARIES (SimDynamics PUBLIC VirtualRobot) + if (SimDynamics_USE_BULLET AND NOT BULLET_USE_SINGLE_PRECISION ) + target_compile_definitions(SimDynamics PUBLIC -DBT_USE_DOUBLE_PRECISION) + endif() # .DLL path SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) # .so path @@ -262,9 +232,9 @@ if (SimDynamics_DYNAMICSENGINE) 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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION ${Simox_INSTALL_HEADER_DIR} diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp index 5346d5ffc2d6546b6d489e88b5393c6cfa5cdf7d..b5baffd3da865c395d8c2e3727a9a446664d6489 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletCoinQtViewer.cpp @@ -19,7 +19,7 @@ namespace SimDynamics BulletCoinQtViewer::BulletCoinQtViewer(DynamicsWorldPtr world) - : warned_norealtime(false), simModeFixedTimeStep(false) + : simModeFixedTimeStep(false), warned_norealtime(false) { bulletTimeStepMsec = 16; // 60FPS bulletMaxSubSteps = 1; diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/CMakeLists.txt b/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/CMakeLists.txt index 764f5c4864f40940564f9d929971bb493addcc9c..3f192de7e365ac1c19c4341b154dba22914c7727 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/CMakeLists.txt +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/CMakeLists.txt @@ -12,9 +12,13 @@ MESSAGE (STATUS " **** Configuring BulletOpenGLSupport") FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/*.cpp) FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/*.h) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) - ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}) +target_include_directories(${PROJECT_NAME} PUBLIC ${BULLET_INCLUDE_DIRS}) +if(EXISTS "${BULLET_INCLUDE_DIRS}/bullet") + target_include_directories(${PROJECT_NAME} PUBLIC ${BULLET_INCLUDE_DIRS}/bullet) +endif() + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") IF(UNIX) # We are on Linux @@ -42,12 +46,11 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simo 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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) -# PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/VirtualRobot" else() MESSAGE (STATUS " **** Not compiling BulletOpenGL support") -endif() \ No newline at end of file +endif() diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/GL_ShapeDrawer.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/GL_ShapeDrawer.cpp index c8d55bce48264eea8259b9e900cd3f7895d83cca..09a67847edff7f806d50a143debd1139b48ad81d 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/GL_ShapeDrawer.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/GL_ShapeDrawer.cpp @@ -534,7 +534,7 @@ void GL_ShapeDrawer::drawOpenGL(btScalar* m, const btCollisionShape* shape, cons { const int s = x >> 4; const GLubyte b = 180; - GLubyte c = b + ((s + t & 1) & 1) * (255 - b); + GLubyte c = b + (((s + t) & 1) & 1) * (255 - b); pi[0] = pi[1] = pi[2] = c; pi += 3; } diff --git a/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp b/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp index 1e65be5bd56b6947861d98f2ff2af39e6d751526..e93f3af10c8139a0febf873370b36da038c4bc4d 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/BulletRobot.cpp @@ -441,7 +441,13 @@ namespace SimDynamics links.push_back(i); #ifndef DEBUG_FIXED_OBJECTS - if (enableJointMotors && (joint->isRotationalJoint() || (joint->isTranslationalJoint()) && !ignoreTranslationalJoints)) + if ( + enableJointMotors && + ( + joint->isRotationalJoint() || + (joint->isTranslationalJoint() && !ignoreTranslationalJoints) + ) + ) { // start standard actuator actuateNode(joint, joint->getJointValue()); @@ -1092,6 +1098,7 @@ namespace SimDynamics return slider->getTargetLinMotorVelocity() * 1000; // / BulletObject::ScaleFactor; m -> mm } + return 0; } double BulletRobot::getJointSpeed(VirtualRobot::RobotNodePtr rn) diff --git a/SimDynamics/DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.cpp b/SimDynamics/DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.cpp index d18fbf9ef4797b11077f585924f20fe6856c22ec..b40a0e56b07287413aeb2e896cd9bf25e2bd5dce 100644 --- a/SimDynamics/DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.cpp +++ b/SimDynamics/DynamicsEngine/BulletEngine/SimoxCollisionDispatcher.cpp @@ -10,7 +10,7 @@ namespace SimDynamics SimoxCollisionDispatcher::SimoxCollisionDispatcher(BulletEngine* engine, btCollisionConfiguration* collisionConfiguration) - : engine(engine), btCollisionDispatcher(collisionConfiguration) + : btCollisionDispatcher(collisionConfiguration), engine(engine) { } diff --git a/SimDynamics/examples/BulletDebugViewer/CMakeLists.txt b/SimDynamics/examples/BulletDebugViewer/CMakeLists.txt index a5cbe5dfab2907e23a1125a8ad4d97d46524116b..87a98e2c85d6cf2a9b191e229710f67e8190683b 100644 --- a/SimDynamics/examples/BulletDebugViewer/CMakeLists.txt +++ b/SimDynamics/examples/BulletDebugViewer/CMakeLists.txt @@ -1,19 +1,19 @@ PROJECT ( BulletDebugViewer ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF (SimDynamics_USE_BULLET_USE_GLUT) include_directories(${GLUT_INCLUDE_DIR}) message("GLUT_INCLUDE_DIR:${GLUT_INCLUDE_DIR}") # create the executable SimoxApplication(${PROJECT_NAME} "BulletDebugViewerGlut.cpp" "") - TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE SimDynamics BulletOpenGLSupport ${Simox_EXTERNAL_LIBRARIES}) + TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE SimDynamics BulletOpenGLSupport) ELSE(SimDynamics_USE_BULLET_USE_GLUT) IF(WIN32) SET (SRC "BulletDebugViewerWin32.cpp" - "${Simox_DIR}/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/Win32AppMain.cpp" + "${Simox_SOURCE_DIR}/SimDynamics/DynamicsEngine/BulletEngine/BulletOpenGL/Win32AppMain.cpp" ) #"Win32BasicDemo.cpp" SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /subsystem:windows") @@ -34,8 +34,8 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simo install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) diff --git a/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt b/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt index 55140740f352ac5a038b8581592bcec89ffc2cb0..197942b0551a5769b01ec46fe47e54f506bc4f33 100644 --- a/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt +++ b/SimDynamics/examples/SimDynamicsViewer/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( SimDynamicsViewer ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_USE_COIN_VISUALIZATION) @@ -16,7 +16,7 @@ IF(Simox_USE_COIN_VISUALIZATION) ) SimoxQtApplication("${PROJECT_NAME}" "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}") - TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE SimDynamics ${Simox_EXTERNAL_LIBRARIES}) + TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE SimDynamics) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) @@ -28,9 +28,9 @@ IF(Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/CMakeLists.txt b/VirtualRobot/CMakeLists.txt index e3c3b55fca869383dc97b5950e80ae6d5f3bfd34..442082f155235a94b5b24d2f31e5817bb05cb506 100644 --- a/VirtualRobot/CMakeLists.txt +++ b/VirtualRobot/CMakeLists.txt @@ -1,19 +1,172 @@ PROJECT ( VirtualRobot ) -MESSAGE (STATUS "\n***** CONFIGURING Simox project VirtualRobot *****") +add_library(VirtualRobot SHARED VirtualRobot.h) # sources will be added later + +target_include_directories(VirtualRobot PUBLIC + $<BUILD_INTERFACE:${Simox_SOURCE_DIR}> + $<BUILD_INTERFACE:${Simox_BINARY_DIR}> + $<INSTALL_INTERFACE:include> +) + +target_compile_options(VirtualRobot PUBLIC ${Simox_OS_compile_options}) + +####################################################################### +# Setup dependencies +####################################################################### +### RBDL +if (Simox_USE_RBDL) + FIND_PACKAGE (RBDL) + if (RBDL_FOUND) + MESSAGE(STATUS "RBDL found at: ${RBDL_INCLUDE_DIR}") + target_include_directories(VirtualRobot PUBLIC ${RBDL_INCLUDE_DIR}) + target_link_libraries(VirtualRobot PUBLIC ${RBDL_LIBRARIES}) + else () + MESSAGE(STATUS "RBDL not found!") + endif () +endif() + +#### NLOPT +if (Simox_USE_NLOPT) + FIND_PACKAGE(NLOPT) + if (NLOPT_FOUND) + MESSAGE(STATUS "NLOPT found at: ${NLOPT_INCLUDE_DIRS}") + target_include_directories(VirtualRobot PUBLIC ${NLOPT_INCLUDE_DIRS}) + target_link_libraries(VirtualRobot PUBLIC ${NLOPT_LIBRARIES}) + else () + MESSAGE(STATUS "NLOPT not found") + endif () +endif () + +#### Eigen +FIND_PACKAGE (Eigen3 REQUIRED) +target_include_directories(VirtualRobot SYSTEM PUBLIC ${Eigen3_INCLUDE_DIR}) + +#### BOOST +FIND_PACKAGE(Boost COMPONENTS filesystem system program_options thread REQUIRED) +MESSAGE (STATUS "Boost found at: ${Boost_INCLUDE_DIR}") + +target_include_directories(VirtualRobot PUBLIC ${Boost_INCLUDE_DIR}) +target_link_libraries(VirtualRobot PUBLIC ${Boost_LIBRARIES}) +# disable boost auto linking +if (Boost_USE_STATIC_LIBS) + target_compile_definitions(VirtualRobot PUBLIC -DBOOST_ALL_NO_LIB -DBOOST_TEST_MAIN) +else (Boost_USE_STATIC_LIBS) + # enable dynamic linking for specific boost libraries + target_compile_definitions(VirtualRobot PUBLIC + -DBOOST_ALL_NO_LIB + -DBOOST_PROGRAM_OPTIONS_DYN_LINK + -DBOOST_FILESYSTEM_DYN_LINK + -DBOOST_SYSTEM_DYN_LINK + -DBOOST_THREAD_DYN_LINK) +endif () + + +########################################## +#### VISUALIZATION Coin3D+Qt+SoQt / OSG+Qt + + +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}) + set(Simox_VISUALIZATION TRUE CACHE BOOL "") -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) -CMAKE_POLICY(VERSION 2.6) + target_include_directories(VirtualRobot PUBLIC ${COIN3D_INCLUDE_DIRS}) + target_link_libraries(VirtualRobot PUBLIC ${COIN3D_LIBRARIES}) + target_compile_definitions(VirtualRobot PUBLIC -DCOIN_DLL) + endif () -if(NOT ("${CMAKE_VERSION}" VERSION_LESS 2.8.12)) - cmake_policy(SET CMP0022 OLD) # avoid INTERFACE_LINK_LIBRARIES warnings -ENDIF() -if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # qtmain add lib dependency (no effect in our case) + + if ( Qt5_FOUND ) + MESSAGE (STATUS "Found Qt5: " ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ) + target_link_libraries(VirtualRobot PUBLIC Qt5::Core Qt5::Gui Qt5::OpenGL Qt5::Widgets) + else ( ) + MESSAGE (STATUS "Did not find Qt. Disabling Qt/SoQt support.") + endif ( ) + + if (Qt5_FOUND AND COIN3D_FOUND) + #### SoQt + # This will set SoQt_INCLUDE_DIRS and SoQt_LIBRARIES + FIND_PACKAGE(SoQt) + set(SOQT_FOUND ${SOQT_FOUND} CACHE INTERNAL "") + + if (NOT SOQT_FOUND) + MESSAGE (STATUS "Did not find SoQt. Disabling SoQt support.") + else () + MESSAGE (STATUS "Found SoQt:" ${SoQt_INCLUDE_DIRS}) + MESSAGE (STATUS "Enabling Coin3D/Qt/SoQt support") + + set(Simox_VISUALIZATION TRUE CACHE BOOL "") + set(Simox_BUILD_EXAMPLES ON CACHE BOOL "Build example applications") + + target_include_directories(VirtualRobot PUBLIC ${SoQt_INCLUDE_DIRS}) + target_link_libraries(VirtualRobot PUBLIC ${SoQt_LIBRARIES}) + target_compile_definitions(VirtualRobot PUBLIC -DSOQT_DLL -DSIMOX_USE_SOQT) + + if (NOT UNIX) + target_link_libraries(VirtualRobot PUBLIC opengl32) + endif() + endif() + endif() +elseif (Simox_USE_OPENSCENEGRAPH_VISUALIZATION) + MESSAGE(STATUS "Searching OSG and Qt...") + FIND_PACKAGE(OpenSceneGraph REQUIRED osgViewer osgUtil osgDB osgGA) + + if (Qt5_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(STATUS "OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") + LIST(GET OPENSCENEGRAPH_LIBRARIES 1 firstOsgLib) + MESSAGE(STATUS "firstOsgLib: ${firstOsgLib}") + GET_FILENAME_COMPONENT(osgLibPath ${firstOsgLib} PATH) + MESSAGE(STATUS "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(STATUS "OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") + set(Simox_VISUALIZATION TRUE CACHE BOOL "") + + + target_include_directories(VirtualRobot PUBLIC ${OPENSCENEGRAPH_INCLUDE_DIRS}) + target_link_libraries(VirtualRobot PUBLIC ${OPENSCENEGRAPH_LIBRARIES}) + endif() +else() + MESSAGE(STATUS "Visualization disabled") endif() -INCLUDE (Cxx11Test) -SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAG}") +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}") + + target_include_directories(VirtualRobot PUBLIC ${COLLADA_DOM_INCLUDE_DIRS}) + target_link_libraries(VirtualRobot PUBLIC ${COLLADA_LIBRARY}) + target_compile_definitions(VirtualRobot PUBLIC -DDOM_DYNAMIC ) + ENDIF() +endif() + +########################################################################################################## +########################################################################################################## +########################################################################################################## + +MESSAGE (STATUS "\n***** CONFIGURING Simox project VirtualRobot *****") if (Simox_USE_RBDL) FIND_PACKAGE (RBDL) @@ -21,22 +174,16 @@ endif() if (Simox_USE_NLOPT) FIND_PACKAGE (NLOPT) - if (NLOPT_FOUND) - ADD_DEFINITIONS(-DUSE_NLOPT) - endif() endif() ########################### TESTING ##################################### MACRO(ADD_VR_TEST TEST_NAME) - INCLUDE_DIRECTORIES(SYSTEM ${Simox_EXTERNAL_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) - INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/..") - ADD_DEFINITIONS(${Simox_EXTERNAL_LIBRARY_FLAGS}) - if (NOT Boost_USE_STATIC_LIBS) - ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) - endif (NOT Boost_USE_STATIC_LIBS) ADD_EXECUTABLE(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.cpp) - TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot ${Simox_EXTERNAL_LIBRARIES} ${Boost_TEST_LIB}) + TARGET_LINK_LIBRARIES(${TEST_NAME} PRIVATE VirtualRobot boost_unit_test_framework) + target_include_directories(${TEST_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/..) + if (NOT Boost_USE_STATIC_LIBS) + target_compile_definitions(${TEST_NAME} PRIVATE -DBOOST_TEST_DYN_LINK) + endif () 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} @@ -393,8 +540,11 @@ if (Simox_USE_NLOPT AND NLOPT_FOUND) ) endif () -if (Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) - +MESSAGE (STATUS "Simox_VISUALIZATION : ${Simox_VISUALIZATION}") +MESSAGE (STATUS "Simox_USE_COIN_VISUALIZATION : ${Simox_USE_COIN_VISUALIZATION}") +MESSAGE (STATUS "Simox_USE_OPENSCENEGRAPH_VISUALIZATION: ${Simox_USE_OPENSCENEGRAPH_VISUALIZATION}") +if (Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) + MESSAGE (STATUS "adding Coin3d visualzation") SET(SOURCES ${SOURCES} Visualization/CoinVisualization/CoinVisualizationFactory.cpp @@ -444,61 +594,19 @@ elseif (Simox_VISUALIZATION AND Simox_USE_OPENSCENEGRAPH_VISUALIZATION) Visualization/OSGVisualization/osgQtWidget/osgViewerWidget.h ) - set(GUI_MOC_HDRS - Visualization/OSGVisualization/osgQtWidget/osgViewerWidget.h - ) - if (Simox_USE_QT4) - qt4_wrap_cpp(SOURCES ${GUI_MOC_HDRS}) - else() - qt5_wrap_cpp(SOURCES ${GUI_MOC_HDRS}) - endif() - if(BUILD_TESTING) ADD_SUBDIRECTORY(Visualization/OSGVisualization/tests) endif() endif () -#if (Simox_USE_COLLADA) -# -# SET(SOURCES -# ${SOURCES} -# Import/SimoxCOLLADAFactory.cpp -# COLLADA/ColladaIO.cpp -# COLLADA/ColladaParser.cpp -# ) -# -# SET(INCLUDES -# ${INCLUDES} -# Import/SimoxCOLLADAFactory.h -# COLLADA/ColladaIO.h -# COLLADA/ColladaIterators.h -# COLLADA/ColladaParser.h -# ) -#endif () - - #check for URDF if (Simox_USE_URDF) include(SearchForTinyXML) FIND_PACKAGE(urdfdom) - #FIND_PACKAGE(PkgConfig) - #PKG_CHECK_MODULES(URDFDOM REQUIRED urdfdom>=0.2.9) - #PKG_CHECK_MODULES(URDFDOM_HEADERS REQUIRED urdfdom_headers>=0.2.3) if (tinyxml_library AND URDF_FOUND) MESSAGE(STATUS " ** Including URDF importer") - include_directories(SYSTEM ${tinyxml_include_dirs}) - link_directories(${tinyxml_library_dirs}) - add_definitions(${tinyxml_cflags}) - add_definitions(" -DTIXML_USE_STL ") - - INCLUDE_DIRECTORIES (SYSTEM - ${URDFDOM_INCLUDE_DIRS} - ${URDFDOM_PARSER_INCLUDE_DIRS} - ${URDFDOM_HEADERS_INCLUDE_DIRS} - ) - SET(SOURCES ${SOURCES} Import/URDF/SimoxURDFFactory.cpp @@ -508,7 +616,7 @@ if (Simox_USE_URDF) Import/URDF/SimoxURDFFactory.h ) - SET(Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${URDFDOM_LIBRARIES}) + target_link_libraries(VirtualRobot PUBLIC ${URDFDOM_LIBRARIES}) else() MESSAGE(STATUS " *** urdfDom or TinyXML not found: skipping URDF importer...") endif() @@ -532,35 +640,39 @@ endif() # Adding the UI files to the library if (Simox_USE_COIN_VISUALIZATION AND SOQT_FOUND) MESSAGE (STATUS " ** Adding GraspEditor gui") - set(UI - Grasping/GraspEditor/GraspEditor.ui - ) - - if (Simox_USE_QT4) - QT4_WRAP_UI(UI_HEADERS ${UI}) - QT4_WRAP_CPP(MOC_SRC - Grasping/GraspEditor/GraspEditorWindow.h - ) - else() - QT5_WRAP_UI(UI_HEADERS ${UI}) - QT5_WRAP_CPP(MOC_SRC - Grasping/GraspEditor/GraspEditorWindow.h - ) - endif() - - set(INCLUDES ${INCLUDES} ${UI_HEADERS}) - SET(SOURCES ${SOURCES} ${MOC_SRC} "Grasping/GraspEditor/GraspEditorWindow.cpp") - SET(INCLUDES ${INCLUDES} "Grasping/GraspEditor/GraspEditorWindow.h") + SET(SOURCES ${SOURCES} Grasping/GraspEditor/GraspEditorWindow.cpp) + SET(INCLUDES ${INCLUDES} + Grasping/GraspEditor/GraspEditorWindow.h + Grasping/GraspEditor/GraspEditor.ui + ) endif() # Finished adding UI files #----------------------------------------------------------------------------------- +set_target_properties(VirtualRobot PROPERTIES SOURCES "${SOURCES};${INCLUDES}") -ADD_LIBRARY (VirtualRobot SHARED ${SOURCES} ${INCLUDES}) -TARGET_LINK_LIBRARIES(VirtualRobot PUBLIC ColCheckerPQP ${Simox_EXTERNAL_LIBRARIES}) -target_include_directories(VirtualRobot SYSTEM PUBLIC ${Simox_EXTERNAL_INCLUDE_DIRS}) +target_compile_definitions(VirtualRobot PUBLIC + "-DVirtualRobot_SRC_DATA_PATH=\"${Simox_DATA_DIR}\"" + "-DSimox_DATA_PATH=\"${Simox_INSTALL_DATA_DIR}\"" +) +if (Simox_USE_NLOPT AND NLOPT_FOUND) + target_compile_definitions(VirtualRobot PUBLIC -DUSE_NLOPT) +endif() + + +if (Simox_USE_URDF AND tinyxml_library AND URDF_FOUND) + target_include_directories(VirtualRobot SYSTEM PUBLIC ${tinyxml_include_dirs}) + target_compile_options(VirtualRobot PUBLIC ${tinyxml_library_dirs}) + target_compile_definitions(VirtualRobot PUBLIC ${tinyxml_cflags} -DTIXML_USE_STL) + + target_include_directories(VirtualRobot SYSTEM PUBLIC + ${URDFDOM_INCLUDE_DIRS} + ${URDFDOM_PARSER_INCLUDE_DIRS} + ${URDFDOM_HEADERS_INCLUDE_DIRS} + ) +endif() # against undefined reference to boost::filesystem::detail::copy_file # source: https://stackoverflow.com/a/3500721 @@ -581,17 +693,13 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Simo ############################ Setup for installation ################################### ####################################################################################### -#set_target_properties(${PROJECT_NAME} PROPERTIES -# PUBLIC_HEADER "${INCLUDES}") - 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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) - # PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/VirtualRobot" INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} DESTINATION "${Simox_INSTALL_HEADER_DIR}" COMPONENT Headers diff --git a/VirtualRobot/CollisionDetection/CMakeLists.txt b/VirtualRobot/CollisionDetection/CMakeLists.txt index 8f41cbf5e41bbd462c66d8f7cd0714499da4c3a2..3298b79f43778a59c09a350a5694b2529e47f200 100644 --- a/VirtualRobot/CollisionDetection/CMakeLists.txt +++ b/VirtualRobot/CollisionDetection/CMakeLists.txt @@ -3,7 +3,6 @@ FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/*.cpp) # check for requested collision detection wrappers -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) @@ -13,13 +12,14 @@ IF (Simox_COLLISION_CHECKER_PQP) SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR}) SET(COLLISIONDETECTION_LIB_DIR ${Simox_LIB_DIR}) - # create PQP lib - ADD_SUBDIRECTORY(${COLLISIONDETECTION_DIR}) + # create PQP lib + ADD_SUBDIRECTORY(${COLLISIONDETECTION_DIR}) + target_link_libraries(VirtualRobot PUBLIC ColCheckerPQP) 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 ${Simox_DIR}/VirtualRobot/CollisionDetection/Dummy) + SET(COLLISIONDETECTION_DIR ${Simox_SOURCE_DIR}/VirtualRobot/CollisionDetection/Dummy) SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR}) SET(COLLISIONDETECTION_LIB_DIR ${Simox_LIB_DIR}) ENDIF () @@ -31,6 +31,7 @@ FILE (GLOB INCS_COL ${COL_CHECKER_WRAPPER_DIR}/*.h) SET (SOURCES ${SOURCES} ${SRCS_COL}) SET (INCLUDES ${INCLUDES} ${INCS_COL}) -LINK_DIRECTORIES(${COLLISIONDETECTION_LIB_DIR}) -INCLUDE_DIRECTORIES(${COL_CHECKER_WRAPPER_DIR} ${COLLISIONDETECTION_INC_DIR}) +target_include_directories(VirtualRobot PRIVATE ${COL_CHECKER_WRAPPER_DIR} ${COLLISIONDETECTION_INC_DIR}) + + diff --git a/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt b/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt index 74c929302202bde930a21ae2624de2ea6750ee51..e912235271d8eecb9a70d4f38c715830f8f0c4c8 100644 --- a/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt +++ b/VirtualRobot/CollisionDetection/PQP/PQP++/CMakeLists.txt @@ -2,47 +2,36 @@ PROJECT(ColCheckerPQP) MESSAGE (STATUS " **** Configuring PQP") -ADD_DEFINITIONS(-DUSE_PQP) - # Specify headers and sources FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/*.cpp) FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/*.h) -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}) - ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ${INCS}) +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}) + +target_compile_definitions(${PROJECT_NAME} PUBLIC -DUSE_PQP) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "3rd_Party") IF(UNIX) - # We are on Linux - ADD_DEFINITIONS(-fPIC) -ENDIF(UNIX) + # We are on Linux + target_compile_options(${PROJECT_NAME} PUBLIC -fPIC) +ENDIF() MESSAGE(STATUS " ** ${PROJECT_NAME} will be placed into " ${Simox_LIB_DIR}) - # .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 + RUNTIME DESTINATION bin COMPONENT bin + LIBRARY DESTINATION lib COMPONENT shlib + ARCHIVE DESTINATION lib COMPONENT library COMPONENT dev) -# PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/VirtualRobot" diff --git a/VirtualRobot/CollisionDetection/PQP/PQP++/TriDist.cpp b/VirtualRobot/CollisionDetection/PQP/PQP++/TriDist.cpp index c38e066b7b16f6413ade9fd29e3839aaa442bf4d..40182092082d879ab3a58af1779ecfd770021c65 100644 --- a/VirtualRobot/CollisionDetection/PQP/PQP++/TriDist.cpp +++ b/VirtualRobot/CollisionDetection/PQP/PQP++/TriDist.cpp @@ -234,9 +234,11 @@ namespace PQP // Even if these tests fail, it may be helpful to know the closest // points found, and whether the triangles were shown disjoint - PQP_REAL V[3]; - PQP_REAL Z[3]; - PQP_REAL minP[3], minQ[3], mindd; + PQP_REAL V[3] = {0,0,0}; + PQP_REAL Z[3] = {0,0,0}; + PQP_REAL minP[3] = {0,0,0}; + PQP_REAL minQ[3] = {0,0,0}; + PQP_REAL mindd = 0; int shown_disjoint = 0; mindd = pqp_math.VdistV2(S[0], T[0]) + 1; // Set first minimum safely high diff --git a/VirtualRobot/Grasping/GraspEditor/GraspEditorWindow.cpp b/VirtualRobot/Grasping/GraspEditor/GraspEditorWindow.cpp index a3005f9dd79542efca86f045de47cf2b084999fb..43524368baca28c98871a0d39eb242a971cba7bc 100644 --- a/VirtualRobot/Grasping/GraspEditor/GraspEditorWindow.cpp +++ b/VirtualRobot/Grasping/GraspEditor/GraspEditorWindow.cpp @@ -27,7 +27,7 @@ #include <sstream> -#include <VirtualRobot/ui_GraspEditor.h> +#include "ui_GraspEditor.h" using namespace std; diff --git a/VirtualRobot/Import/COLLADA-light/Example/CMakeLists.txt b/VirtualRobot/Import/COLLADA-light/Example/CMakeLists.txt index 7b8deeba7e694046b8eb7ac7f075805335e0628d..0fa202aa44b9c174789d666451990af95ea4e067 100644 --- a/VirtualRobot/Import/COLLADA-light/Example/CMakeLists.txt +++ b/VirtualRobot/Import/COLLADA-light/Example/CMakeLists.txt @@ -1,10 +1,11 @@ cmake_minimum_required (VERSION 2.6) project (collada) -include_directories( "../pugixml" "/usr/include/qt4" "/usr/include/qt4/QT" "/usr/include/qt4/QtCore" "/usr/include/eigen3" ) add_executable(collada ../collada.cpp ../inventor.cpp viewer.cpp ../pugixml/pugixml.cpp) + +TARGET_INCLUDE_DIRECTORIES(collada PUBLIC "../pugixml" "/usr/include/qt4" "/usr/include/qt4/QT" "/usr/include/qt4/QtCore" "/usr/include/eigen3" ) target_link_libraries(collada Coin SoQt boost_system boost_timer) -add_definitions(-DTIMER_DEBUG) +target_compile_definitions(collada PUBLIC -DTIMER_DEBUG) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") find_package(Doxygen) diff --git a/VirtualRobot/Import/URDF/CMakeLists.txt b/VirtualRobot/Import/URDF/CMakeLists.txt index f01dc5cb375b3aa10e093a4a7b5584bea58a5f36..e46f64c1df98ad28a4856c4513988f836d021097 100644 --- a/VirtualRobot/Import/URDF/CMakeLists.txt +++ b/VirtualRobot/Import/URDF/CMakeLists.txt @@ -4,44 +4,39 @@ LIST( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake ) include(SearchForTinyXML) FIND_PACKAGE(urdfdom) -#FIND_PACKAGE(PkgConfig) -#PKG_CHECK_MODULES(URDFDOM REQUIRED urdfdom>=0.2.9) -#PKG_CHECK_MODULES(URDFDOM_HEADERS REQUIRED urdfdom_headers>=0.2.3) if (tinyxml_library AND URDF_FOUND) + SET ( URDFIMPORT_SOURCES + SimoxURDFFactory.cpp + ) + SET ( URDFIMPORT_HEADERS + SimoxURDFFactory.h + ) + + ADD_LIBRARY ( simox_urdfimport SHARED ${URDFIMPORT_SOURCES} ${URDFIMPORT_HEADERS} ) - include_directories(SYSTEM ${tinyxml_include_dirs}) - link_directories(${tinyxml_library_dirs}) - add_definitions(${tinyxml_cflags}) - add_definitions("-DTIXML_USE_STL") + target_include_directories(simox_urdfimport SYSTEM PUBLIC ${tinyxml_include_dirs}) + #arget_link_directories(${tinyxml_library_dirs}) + target_compile_definitions(simox_urdfimport PUBLIC ${tinyxml_cflags}) + target_compile_definitions(simox_urdfimport PUBLIC "-DTIXML_USE_STL") FIND_PACKAGE(simox REQUIRED) - INCLUDE_DIRECTORIES ( + + target_INCLUDE_DIRECTORIES (simox_urdfimport PUBLIC ${URDFDOM_INCLUDE_DIRS} ${URDFDOM_PARSER_INCLUDE_DIRS} ${URDFDOM_HEADERS_INCLUDE_DIRS} ) - setupSimoxExternalLibraries() - SET (CMAKE_SKIP_BUILD_RPATH FALSE) SET (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") SET (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - SET ( URDFIMPORT_SOURCES - SimoxURDFFactory.cpp - ) - SET ( URDFIMPORT_HEADERS - SimoxURDFFactory.h - ) - ADD_LIBRARY ( simox_urdfimport SHARED ${URDFIMPORT_SOURCES} ${URDFIMPORT_HEADERS} ) - - add_definitions("-DDEMO_BASE_PATH=\"${PROJECT_SOURCE_DIR}\"") ADD_EXECUTABLE (loadURDFobot loadURDFobot.cpp) + target_compile_definitions(loadURDFobot PUBLIC "-DDEMO_BASE_PATH=\"${PROJECT_SOURCE_DIR}\"") TARGET_LINK_LIBRARIES (simox_urdfimport VirtualRobot ${URDFDOM_LIBRARIES}) TARGET_LINK_LIBRARIES(loadURDFobot simox_urdfimport VirtualRobot ${URDFDOM_LIBRARIES}) - endif() diff --git a/VirtualRobot/MathTools.h b/VirtualRobot/MathTools.h index 109cb6d450c667df02dc71ff414c59d7e3bc57bf..4880d89c01b580bc9eec04c2873e6296bc4186c5 100644 --- a/VirtualRobot/MathTools.h +++ b/VirtualRobot/MathTools.h @@ -392,9 +392,9 @@ namespace VirtualRobot */ struct ContactPoint { - Eigen::Vector3f p; // point - Eigen::Vector3f n; // normal - float force; + Eigen::Vector3f p = Eigen::Vector3f::Zero(); // point + Eigen::Vector3f n = Eigen::Vector3f::Zero(); // normal + float force = 0; }; struct TriangleFace diff --git a/VirtualRobot/TimeOptimalTrajectory/Path.cpp b/VirtualRobot/TimeOptimalTrajectory/Path.cpp index fe51f30425a256a40943b5cca2baa67f646b50f6..cc792aa93757d13f73d7cd9facc31c5d70711867 100644 --- a/VirtualRobot/TimeOptimalTrajectory/Path.cpp +++ b/VirtualRobot/TimeOptimalTrajectory/Path.cpp @@ -53,9 +53,9 @@ namespace VirtualRobot { public: LinearPathSegment(const Eigen::VectorXd &start, const Eigen::VectorXd &end) : + PathSegment((end-start).norm()), start(start), - end(end), - PathSegment((end-start).norm()) + end(end) { } diff --git a/VirtualRobot/TimeOptimalTrajectory/TimeOptimalTrajectory.cpp b/VirtualRobot/TimeOptimalTrajectory/TimeOptimalTrajectory.cpp index bfbd33daa8691eb7bf731c786faa1d9869047bbe..40226d2d773ecaf69137b03774d2b858da82b025 100644 --- a/VirtualRobot/TimeOptimalTrajectory/TimeOptimalTrajectory.cpp +++ b/VirtualRobot/TimeOptimalTrajectory/TimeOptimalTrajectory.cpp @@ -326,7 +326,7 @@ namespace VirtualRobot list<TimeOptimalTrajectoryStep>::iterator start1 = start2; start1--; list<TimeOptimalTrajectoryStep> trajectory; - double slope; + double slope = 0; assert(start1->pathPos <= pathPos); while(start1 != startTrajectory.begin() || pathPos >= 0.0) diff --git a/VirtualRobot/Workspace/VoxelTreeND.hpp b/VirtualRobot/Workspace/VoxelTreeND.hpp index ab7fd8aeb741e8cf91cfee4a25fc0fb20fae3a53..ea58bfa23d7cbaa2c0d44cd242ecf25813e5d981 100644 --- a/VirtualRobot/Workspace/VoxelTreeND.hpp +++ b/VirtualRobot/Workspace/VoxelTreeND.hpp @@ -76,7 +76,7 @@ namespace VirtualRobot memcpy(this->maxExtend, maxExtend, sizeof(float)*N); memcpy(this->discretization, discretization, sizeof(float)*N); - for (int i = 0; i < N; i++) + for (unsigned int i = 0; i < N; i++) { size[i] = maxExtend[i] - minExtend[i]; THROW_VR_EXCEPTION_IF(size[i] <= 0.0f, "Invalid extend parameters?!"); @@ -85,7 +85,7 @@ namespace VirtualRobot int maxSteps = 0; - for (int i = 0; i < N; i++) + for (unsigned int i = 0; i < N; i++) { int steps = (int)(size[i] / discretization[i] + 0.5f); @@ -105,9 +105,9 @@ namespace VirtualRobot float newExtend[N]; memcpy(newExtend, size, sizeof(float)*N); - for (int a = 0; a < maxLevels; a++) + for (unsigned int a = 0; a < maxLevels; a++) { - for (int b = 0; b < N; b++) + for (unsigned int b = 0; b < N; b++) { elementExtends(a, b) = newExtend[b]; newExtend[b] *= 0.5f; @@ -123,7 +123,7 @@ namespace VirtualRobot VR_INFO << "Extends (min/max/size):" << endl; std::streamsize pr = std::cout.precision(2); - for (int i = 0; i < N; i++) + for (unsigned int i = 0; i < N; i++) { cout << std::fixed << minExtend[i] << "," << maxExtend[i] << " -> " << size[i] << endl; cout << std::fixed << "\tdiscretization:" << discretization[i] << ". Max leafs:" << (int)(size[i] / discretization[i] + 0.5f) << endl; @@ -300,7 +300,7 @@ namespace VirtualRobot int64_t nrElements = FileIO::read<int64_t>(file); // id - int64_t expectedID = FileIO::read<int64_t>(file); + /*int64_t expectedID = */FileIO::read<int64_t>(file); // create dummy elements to be filled afterwards float p[N]; @@ -332,7 +332,7 @@ namespace VirtualRobot size_t dataSize = sizeof(unsigned int); bzip2->read((void*)(&(d.id)), dataSize, n); - if (n != dataSize) + if (static_cast<size_t>(n) != dataSize) { VR_ERROR << "Invalid number of bytes?!" << endl; bzip2->close(); @@ -379,7 +379,7 @@ namespace VirtualRobot dataSize = sizeof(bool); bzip2->read((void*)(&(leaf)), dataSize, n); - if (n != dataSize) + if (static_cast<size_t>(n) != dataSize) { VR_ERROR << "Invalid number of bytes?!" << endl; bzip2->close(); @@ -396,7 +396,7 @@ namespace VirtualRobot dataSize = sizeof(T); bzip2->read((void*)(&(d.entry)), dataSize, n); - if (n != dataSize) + if (static_cast<size_t>(n) != dataSize) { VR_ERROR << "Invalid number of bytes?!" << endl; bzip2->close(); @@ -412,7 +412,7 @@ namespace VirtualRobot bzip2->read((void*)(&(childIDs[0])), dataSize, n); - if (n != dataSize) + if (static_cast<size_t>(n) != dataSize) { VR_ERROR << "Invalid number of bytes?!" << endl; bzip2->close(); @@ -557,7 +557,7 @@ namespace VirtualRobot { // write children ids dataSize = sizeof(unsigned int) * numChildren; - THROW_VR_EXCEPTION_IF(numChildren != d.children.size(), "Internal error, numChildren wrong..."); + THROW_VR_EXCEPTION_IF(static_cast<size_t>(numChildren) != d.children.size(), "Internal error, numChildren wrong..."); for (int j = 0; j < numChildren; j++) { @@ -806,7 +806,7 @@ namespace VirtualRobot */ float getExtends(int level, int dim) { - THROW_VR_EXCEPTION_IF(dim >= N || dim < 0, "Index out of bounds"); + THROW_VR_EXCEPTION_IF(static_cast<size_t>(dim) >= N || dim < 0, "Index out of bounds"); return elementExtends(level, dim); } int getNumChildren() @@ -850,5 +850,4 @@ namespace VirtualRobot -} // namespace - +} diff --git a/VirtualRobot/examples/CameraViewer/CMakeLists.txt b/VirtualRobot/examples/CameraViewer/CMakeLists.txt index cddcb8f3bca1c7cdf0b96f4a18fd99d2f18f8bbe..7f715c375da6fa82f230de3241eb8621580eb360 100644 --- a/VirtualRobot/examples/CameraViewer/CMakeLists.txt +++ b/VirtualRobot/examples/CameraViewer/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( CameraViewer ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -32,7 +32,7 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) find_package(OpenGL REQUIRED) if(OPENGL_FOUND) - include_directories(SYSTEM ${OPENGL_INCLUDE_DIR}) + target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${OPENGL_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE ${OPENGL_LIBRARIES}) endif(OPENGL_FOUND) @@ -46,10 +46,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/ConstrainedIK/CMakeLists.txt b/VirtualRobot/examples/ConstrainedIK/CMakeLists.txt index ec7b407c074944d4c23c697a66fd54204c25eb46..772a3c328af36f6c075f86585d7cdcd30002e8f1 100644 --- a/VirtualRobot/examples/ConstrainedIK/CMakeLists.txt +++ b/VirtualRobot/examples/ConstrainedIK/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( ConstrainedIKDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION AND NLOPT_FOUND) @@ -23,10 +23,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION AND NLOPT_FOUND) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/GenericIK/CMakeLists.txt b/VirtualRobot/examples/GenericIK/CMakeLists.txt index 23ce6bb98a205ff6dd160430d86260dbcb652a2f..ced985e7b93a32e782d174781dfd53b26c849331 100644 --- a/VirtualRobot/examples/GenericIK/CMakeLists.txt +++ b/VirtualRobot/examples/GenericIK/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( GenericIKDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -29,9 +29,9 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/GraspEditor/CMakeLists.txt b/VirtualRobot/examples/GraspEditor/CMakeLists.txt index a2ba102aa21c4f5edbfa142d50bb4b3de502b855..f645bdb9e8626dae2cc5afc5b2b921aca37e9b7f 100644 --- a/VirtualRobot/examples/GraspEditor/CMakeLists.txt +++ b/VirtualRobot/examples/GraspEditor/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( GraspEditor ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -20,11 +20,11 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/Jacobi/CMakeLists.txt b/VirtualRobot/examples/Jacobi/CMakeLists.txt index cf168c3d59288583ccd4eec0998a9f6bc1e5bedf..ac35755d4e1e185bb7d85c4364c57c1635a4be05 100644 --- a/VirtualRobot/examples/Jacobi/CMakeLists.txt +++ b/VirtualRobot/examples/Jacobi/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( JacobiDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,9 +30,9 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/Legacy/ColladaViewer/CMakeLists.txt b/VirtualRobot/examples/Legacy/ColladaViewer/CMakeLists.txt index f1f9f1a669298675dae50b2b186bfdc1cff50b43..df6a46c25077ba3502cf76634803634abd03b5b9 100644 --- a/VirtualRobot/examples/Legacy/ColladaViewer/CMakeLists.txt +++ b/VirtualRobot/examples/Legacy/ColladaViewer/CMakeLists.txt @@ -6,7 +6,6 @@ IF(Simox_USE_COIN_VISUALIZATION AND Simox_USE_COLLADA) GET_FILENAME_COMPONENT (CurrentPath ${CMAKE_CURRENT_LIST_FILE} PATH) SET(DEMO_BASE_DIR ${PROJECT_SOURCE_DIR}) - ADD_DEFINITIONS(-DDEMO_BASE_DIR="${DEMO_BASE_DIR}") FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/RobotViewer.cpp ${PROJECT_SOURCE_DIR}/showRobotWindow.cpp @@ -29,17 +28,16 @@ IF(Simox_USE_COIN_VISUALIZATION AND Simox_USE_COLLADA) ${PROJECT_SOURCE_DIR}/RobotViewer.ui ) - - - - add_definitions( -DDEMO_PATH=\"${PROJECT_SOURCE_DIR}\" ) - add_definitions( " -DDOM_DYNAMIC " ) - # create the executable VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${mocFiles}" "${uiFiles}") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples") - + + TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PUBLIC + -DDEMO_BASE_DIR="${DEMO_BASE_DIR}" + -DDEMO_PATH="${PROJECT_SOURCE_DIR}" + -DDOM_DYNAMIC + ) ####################################################################################### ############################ Setup for installation ################################### ####################################################################################### diff --git a/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt b/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt index 2a88854e0fa5782ba83e627aed8699583226add6..628a3f00a148e6f885b45caddc7ddf71ecd78bbf 100644 --- a/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt +++ b/VirtualRobot/examples/ReachabilityMap/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( ReachabilityMapDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -27,11 +27,11 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/RobotViewer/CMakeLists.txt b/VirtualRobot/examples/RobotViewer/CMakeLists.txt index c1526259d0e8b7d9d4d0cd96efcaf01654b3c3ce..a5d3a4ad1447abdfbb907e2e99c9f3537d5ff02d 100644 --- a/VirtualRobot/examples/RobotViewer/CMakeLists.txt +++ b/VirtualRobot/examples/RobotViewer/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( RobotViewer ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,10 +30,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/RobotViewerOSG/CMakeLists.txt b/VirtualRobot/examples/RobotViewerOSG/CMakeLists.txt index a93207e64687725311e0682da5df412838c3a953..2a3968865f1efd24f3a0d62ebed5bfd47061b95b 100644 --- a/VirtualRobot/examples/RobotViewerOSG/CMakeLists.txt +++ b/VirtualRobot/examples/RobotViewerOSG/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( RobotViewerOSG ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_OPENSCENEGRAPH_VISUALIZATION) @@ -33,35 +33,9 @@ IF(Simox_VISUALIZATION AND Simox_USE_OPENSCENEGRAPH_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) - - #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 ${Simox_BIN_DIR}) - - #TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS}) - #INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS}) - #INCLUDE_DIRECTORIES(${COLLADA_DOM_INCLUDE_DIRS}) - #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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/SceneViewer/CMakeLists.txt b/VirtualRobot/examples/SceneViewer/CMakeLists.txt index b79a97a76382879705142953a5c795c4aebbd67b..c1130e63c9672005554491525362ecf957bc1e98 100644 --- a/VirtualRobot/examples/SceneViewer/CMakeLists.txt +++ b/VirtualRobot/examples/SceneViewer/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( SimoxSceneViewer ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -29,10 +29,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/Simox2Mjcf/CMakeLists.txt b/VirtualRobot/examples/Simox2Mjcf/CMakeLists.txt index c5eced7f21ef61d66ff355252275073d3bec3e1a..744f005d58fac70907d5dd13273df90634181427 100644 --- a/VirtualRobot/examples/Simox2Mjcf/CMakeLists.txt +++ b/VirtualRobot/examples/Simox2Mjcf/CMakeLists.txt @@ -41,10 +41,10 @@ if (Boost_FOUND) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + message( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) endif() diff --git a/VirtualRobot/examples/loadRobot/CMakeLists.txt b/VirtualRobot/examples/loadRobot/CMakeLists.txt index c09c20c43137994325cb51c8537973527bd42c29..714188e4f7f4e3104c8ddf3c1a5667d5dd705924 100644 --- a/VirtualRobot/examples/loadRobot/CMakeLists.txt +++ b/VirtualRobot/examples/loadRobot/CMakeLists.txt @@ -14,8 +14,8 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE VirtualRobot) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) +MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) diff --git a/VirtualRobot/examples/loadURDFRobot/CMakeLists.txt b/VirtualRobot/examples/loadURDFRobot/CMakeLists.txt index d900a34aed9e32f78a65d5356d593e145079ae3b..c6ad82d1811e4fc06dcd0376e548dc78ff1d4f44 100644 --- a/VirtualRobot/examples/loadURDFRobot/CMakeLists.txt +++ b/VirtualRobot/examples/loadURDFRobot/CMakeLists.txt @@ -1,24 +1,12 @@ PROJECT ( loadURDFRobot ) if (tinyxml_library AND URDF_FOUND) - - include_directories(SYSTEM ${tinyxml_include_dirs}) - link_directories(${tinyxml_library_dirs}) - add_definitions(${tinyxml_cflags}) - add_definitions(" -DTIXML_USE_STL ") - - INCLUDE_DIRECTORIES (SYSTEM - ${URDFDOM_INCLUDE_DIRS} - ${URDFDOM_PARSER_INCLUDE_DIRS} - ${URDFDOM_HEADERS_INCLUDE_DIRS} - ) - add_definitions("-DDEMO_BASE_PATH=\"${PROJECT_SOURCE_DIR}\"") ADD_EXECUTABLE(${PROJECT_NAME} loadURDFobot.cpp) 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} PRIVATE VirtualRobot ${URDFDOM_LIBRARIES}) - + target_compile_definitions(${PROJECT_NAME} PRIVATE "-DDEMO_BASE_PATH=\"${PROJECT_SOURCE_DIR}\"") ####################################################################################### ############################ Setup for installation ################################### @@ -27,11 +15,11 @@ if (tinyxml_library AND URDF_FOUND) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) endif() diff --git a/VirtualRobot/examples/reachability/CMakeLists.txt b/VirtualRobot/examples/reachability/CMakeLists.txt index 3331f40d6d42b5fc9fc426eb61003c3be171cb52..e8a71b5d809b26b080d9a66fb06f072fe6a5ddf2 100644 --- a/VirtualRobot/examples/reachability/CMakeLists.txt +++ b/VirtualRobot/examples/reachability/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( ReachabilityDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,10 +30,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/examples/stability/CMakeLists.txt b/VirtualRobot/examples/stability/CMakeLists.txt index 9ea56cff1be08de497d9dad8f1d291d4e99eb74d..6949f7fcfc5b0d457fd52993d760dd3fc824445a 100644 --- a/VirtualRobot/examples/stability/CMakeLists.txt +++ b/VirtualRobot/examples/stability/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT ( StabilityDemo ) -INCLUDE(${Simox_DIR}/CMakeModules/SimoxMacros.cmake) +INCLUDE(${Simox_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake) IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) @@ -30,10 +30,10 @@ IF(Simox_VISUALIZATION AND Simox_USE_COIN_VISUALIZATION) install(TARGETS ${PROJECT_NAME} # IMPORTANT: Add the library to the "export-set" EXPORT SimoxTargets - RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin + RUNTIME DESTINATION bin 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}) + MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " bin) ENDIF() diff --git a/VirtualRobot/tests/CMakeLists.txt b/VirtualRobot/tests/CMakeLists.txt index 36cea17a9ec85b44d1cf7044ec1c479b9c544f20..112052c6fb14f0f5ec8e3b8b5339d37f2507e058 100644 --- a/VirtualRobot/tests/CMakeLists.txt +++ b/VirtualRobot/tests/CMakeLists.txt @@ -5,7 +5,7 @@ ADD_VR_TEST( VirtualRobotRobotTest ) ADD_VR_TEST( VirtualRobotTransformationTest ) -if (VirtualRobot_VISUALIZATION) +if (Simox_VISUALIZATION) ADD_VR_TEST( VirtualRobotCollisionTest ) endif() diff --git a/config.cmake b/config.cmake deleted file mode 100644 index 49608f6fe8fc0cc88cd000c192170355eecb1c3d..0000000000000000000000000000000000000000 --- a/config.cmake +++ /dev/null @@ -1,406 +0,0 @@ - -IF (NOT Simox_CONFIGURED) - - # defines Simox_CONFIGURED variable which indicates that this config file has already been included - SET(Simox_CONFIGURED TRUE) - - # Set up build type - IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING - "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." - FORCE) - ENDIF() - - 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 share/Simox/cmake) - endif() - set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH - "Installation directory for CMake files") - - # Almost all examples require soqt. It will be set to ON if soqt is found. - set(Simox_BUILD_EXAMPLES OFF CACHE BOOL "Build example applications") - - # Make relative paths absolute (needed later on) - # -> disabled this since it produced lots of problems with generation of SimoxCOnfig.cmake - #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 3) - set(Simox_PATCH_VERSION 73) - set(Simox_VERSION - ${Simox_MAJOR_VERSION}.${Simox_MINOR_VERSION}.${Simox_PATCH_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 ${LIB_DIR}) - SET(Simox_INSTALL_BIN_DIR ${BIN_DIR}) - SET(Simox_INSTALL_DATA_DIR ${DATA_DIR}) - SET(Simox_INSTALL_HEADER_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 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 ") - ADD_DEFINITIONS(" -DWIN32_LEAN_AND_MEAN ") # avoid errors with winsock / winsock2 includes - - # 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: ${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}) - - ### RBDL - OPTION (Simox_USE_RBDL "Use RBDL" OFF) - if (Simox_USE_RBDL) - FIND_PACKAGE (RBDL) - if (RBDL_FOUND) - MESSAGE(STATUS "RBDL found at: ${RBDL_INCLUDE_DIR}") - SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${RBDL_INCLUDE_DIR}) - SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${RBDL_LIBRARIES}) - else () - MESSAGE(STATUS "RBDL not found!") - endif () - endif() - - #urdf - OPTION (Simox_USE_URDF "Use URDF" OFF) - - #### NLOPT - OPTION (Simox_USE_NLOPT "Use NLOPT" ON) - if (Simox_USE_NLOPT) - FIND_PACKAGE(NLOPT) - if (NLOPT_FOUND) - MESSAGE(STATUS "NLOPT found at: ${NLOPT_INCLUDE_DIRS}") - SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${NLOPT_INCLUDE_DIRS}) - SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${NLOPT_LIBRARIES}) - else () - MESSAGE(STATUS "NLOPT not found") - endif () - endif () - - #### 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.46.0 COMPONENTS filesystem system 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}) - FIND_PACKAGE(Boost 1.46.0 COMPONENTS unit_test_framework REQUIRED) - SET (Boost_TEST_LIB "${Boost_LIBRARIES}") - # disable boost auto linking - if (Boost_USE_STATIC_LIBS) - SET (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} -DBOOST_ALL_NO_LIB -DBOOST_TEST_MAIN") - else (Boost_USE_STATIC_LIBS) - # enable dynamic linking for specific boost libraries - 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_THREAD_DYN_LINK") - endif (Boost_USE_STATIC_LIBS) - 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() - OPTION (Simox_USE_QT4 "Force Qt4 usage" OFF) - OPTION (Simox_USE_QT5 "Force Qt5 usage" OFF) - if ( (NOT Simox_USE_QT4) AND (NOT Simox_USE_QT5) ) - # first check for qt5 - FIND_PACKAGE(Qt5 5.5.0 QUIET COMPONENTS OpenGL Core Gui) - if (Qt5_FOUND ) - SET(Simox_USE_QT5 ON) - else() - FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) - include(${QT_USE_FILE}) - IF (QT_FOUND) - SET(Simox_USE_QT4 ON) - endif() - endif() - elseif (Simox_USE_QT5) - FIND_PACKAGE(Qt5 5.5.0 COMPONENTS OpenGL Core Gui) - else() - FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui) - include(${QT_USE_FILE}) - endif() - - #### 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}) - SET (Simox_VISUALIZATION TRUE) - SET (Simox_VISUALIZATION_LIBS ${COIN3D_LIBRARIES}) - SET (Simox_VISUALIZATION_INCLUDE_PATHS ${COIN3D_INCLUDE_DIRS} ) - SET (Simox_VISUALIZATION_COMPILE_FLAGS "-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 (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}) - elseif ( Qt5_FOUND ) - MESSAGE (STATUS "Found Qt5: " ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ) - MESSAGE (STATUS "Qt5 compiler flags: " ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} " " ${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS}) - LIST (APPEND Simox_EXTERNAL_LIBRARY_CMAKE_INCLUDE ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS}) - LIST (APPEND Simox_EXTERNAL_LIBRARIES ${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES}) - else ( ) - MESSAGE (STATUS "Did not find Qt. Disabling Qt/SoQt support.") - endif ( ) - - if (QT_FOUND OR Qt5_FOUND) - #### SoQt - # This will set SoQt_INCLUDE_DIRS and SoQt_LIBRARIES - FIND_PACKAGE(SoQt) - if (SOQT_FOUND) - MESSAGE (STATUS "Found SoQt:" ${SoQt_INCLUDE_DIRS}) - else (SOQT_FOUND) - MESSAGE (STATUS "Did not find SoQt. Disabling SoQt support.") - endif (SOQT_FOUND) - - if (SOQT_FOUND AND COIN3D_FOUND) - MESSAGE (STATUS "Enabling Coin3D/Qt/SoQt support") - SET (Simox_VISUALIZATION TRUE) - SET (Simox_VISUALIZATION_LIBS ${Simox_VISUALIZATION_LIBS} ${SoQt_LIBRARIES} ) - SET (Simox_VISUALIZATION_INCLUDE_PATHS ${Simox_VISUALIZATION_INCLUDE_PATHS} ${SoQt_INCLUDE_DIRS}) - SET (Simox_VISUALIZATION_COMPILE_FLAGS "${Simox_VISUALIZATION_COMPILE_FLAGS} -DSOQT_DLL -DSIMOX_USE_SOQT") - set(Simox_BUILD_EXAMPLES ON) - - if (QT_FOUND) - # QT4 - LIST (APPEND Simox_VISUALIZATION_LIBS ${QT_LIBRARIES}) - LIST (APPEND Simox_VISUALIZATION_INCLUDE_PATHS ${QT_INCLUDE_DIR}) - else() - #QT5 - LIST (APPEND Simox_VISUALIZATION_LIBS ${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES}) - LIST (APPEND Simox_VISUALIZATION_INCLUDE_PATHS ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ) - LIST (APPEND Simox_VISUALIZATION_COMPILE_FLAGS " ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS} ") - endif() - if (NOT UNIX) - LIST(APPEND Simox_VISUALIZATION_LIBS opengl32) - endif() - endif() - endif(QT_FOUND OR Qt5_FOUND) - 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}) - include(${QT_USE_FILE}) - #MESSAGE(STATUS "QT_LIBRARIES: " ${QT_LIBRARIES}) - elseif ( Qt5_FOUND ) - MESSAGE (STATUS "Found Qt5: " ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ) - MESSAGE (STATUS "Qt5 compiler flags: " ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} " " ${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS}) - LIST (APPEND Simox_EXTERNAL_LIBRARY_CMAKE_INCLUDE ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS}) - LIST (APPEND Simox_EXTERNAL_LIBRARIES ${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES}) - else () - MESSAGE (STATUS "Did not find Qt. Disabling Qt/OSG support.") - endif () - - if ( (QT_FOUND OR Qt5_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(STATUS "OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") - LIST(GET OPENSCENEGRAPH_LIBRARIES 1 firstOsgLib) - MESSAGE(STATUS "firstOsgLib: ${firstOsgLib}") - GET_FILENAME_COMPONENT(osgLibPath ${firstOsgLib} PATH) - MESSAGE(STATUS "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(STATUS "OPENSCENEGRAPH_LIBRARIES: ${OPENSCENEGRAPH_LIBRARIES}") - SET (Simox_VISUALIZATION TRUE) - - SET (Simox_VISUALIZATION_LIBS ${OPENSCENEGRAPH_LIBRARIES} ) - SET (Simox_VISUALIZATION_INCLUDE_PATHS ${OPENSCENEGRAPH_INCLUDE_DIRS} ) - SET (Simox_VISUALIZATION_COMPILE_FLAGS "") - - if (QT_FOUND) - # QT4 - LIST (APPEND Simox_VISUALIZATION_LIBS ${QT_LIBRARIES}) - LIST (APPEND Simox_VISUALIZATION_INCLUDE_PATHS ${QT_INCLUDE_DIR}) - else() - #QT5 - LIST (APPEND Simox_VISUALIZATION_LIBS ${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES}) - LIST (APPEND Simox_VISUALIZATION_INCLUDE_PATHS ${Qt5Gui_INCLUDE_DIRS} ${Qt5OpenGL_INCLUDE_DIRS} ) - LIST (APPEND Simox_VISUALIZATION_COMPILE_FLAGS " ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS} ") - endif() - 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}) - - SET (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} -DDOM_DYNAMIC ") - 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}") - - - ## 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)