diff --git a/CMakeLists.txt b/CMakeLists.txt index 16702d6e2e8c7278810bdd608c0b85701f12a07b..02f858e776d39d0e40224ee1bf4e0537e1d66994 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,9 +20,9 @@ add_subdirectory(GraspPlanning) ############################################ MESSAGE(STATUS "Simox: Generating CMake files") -set(SIMOX_MAJOR_VERSION 0) +set(SIMOX_MAJOR_VERSION 2) set(SIMOX_MINOR_VERSION 1) -set(SIMOX_PATCH_VERSION 0) +set(SIMOX_PATCH_VERSION 2) set(SIMOX_VERSION ${SIMOX_MAJOR_VERSION}.${SIMOX_MINOR_VERSION}.${SIMOX_PATCH_VERSION}) @@ -60,15 +60,16 @@ SET(VIRTUAL_ROBOT_CMAKE_DIR "${SIMOX_BUILD_DIRECTORY}/share/VirtualRobot/cmake") SET(SIMOX_LIBRARY_CMAKE_INCLUDE "${VIRTUAL_ROBOT_CMAKE_INCLUDE}") SET(SIMOX_DATA_PATH "${VIRTUAL_ROBOT_DATA_PATH}") - +# the SimoxConfig.cmake will be used by external porjects to setup Simox via the FindPackage method. +# So it must be located in the Simox_DIR directory (build-tree -> SIMOX_BUILD_DIRECTORY) configure_file( ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfig.cmake.in - "${SIMOX_CMAKE_DIR}/SimoxConfig.cmake" + "${SIMOX_BUILD_DIRECTORY}/SimoxConfig.cmake" @ONLY) configure_file( ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in - "${SIMOX_CMAKE_DIR}/SimoxConfigVersion.cmake" + "${SIMOX_BUILD_DIRECTORY}/SimoxConfigVersion.cmake" @ONLY) configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake" @@ -97,9 +98,16 @@ configure_file( ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake" @ONLY) +# The SimoxConfig.cmake will be used by external porjects to setup Simox via the FindPackage method. +# So it must be located in the Simox_DIR directory (install-tree -> CMAKE_INSTALL_PREFIX) install(FILES "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfig.cmake" "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_PREFIX}") +install(FILES + "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake" + "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake" + "${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake" DESTINATION "${SIMOX_CMAKE_DIR}") install(FILES "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake" @@ -107,6 +115,7 @@ install(FILES "${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake" DESTINATION "${SIMOX_CMAKE_DIR}") + # #INSTALL(TARGETS Simox # EXPORT SimoxLibraryDepends diff --git a/CMakeModules/FindSimox.cmake b/CMakeModules/FindSimox.cmake index e99a63aa3e58fbe49794351b1b30c5bc89bb5076..ffee9e8314fc9d2e7954d4a6c7f79f990a6c07c1 100644 --- a/CMakeModules/FindSimox.cmake +++ b/CMakeModules/FindSimox.cmake @@ -18,7 +18,6 @@ # ## PROJECT ( myDemo ) ## SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).") -## SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake) ## FIND_PACKAGE(Simox REQUIRED) ## IF(SIMOX_USE_COIN_VISUALIZATION) ## FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp) @@ -29,11 +28,16 @@ ## ENDIF() +MESSAGE ("START1") + #### CMAKE CONFIG find_file( Simox_CMAKE_CONFIG SimoxConfig.cmake "${Custom_Simox_DIR}/share/Simox/cmake" "${Simox_DIR}/share/Simox/cmake" - "$ENV{Simox_DIR}/share/Simox/cmake") + "$ENV{Simox_DIR}/share/Simox/cmake" + "${Custom_Simox_DIR}" + "${Simox_DIR}" + "$ENV{Simox_DIR}") MESSAGE(STATUS " * Including ${Simox_CMAKE_CONFIG}") include (${Simox_CMAKE_CONFIG}) @@ -42,13 +46,6 @@ if( SIMOX_LIBRARIES AND SIMOX_BASE_DIR) set( SIMOX_FOUND TRUE ) set( SIMOX_INCLUDE_DIR ${SIMOX_BASE_DIR} ) set( SIMOX_LIBRARY ${SIMOX_LIBRARIES} ) - - # include all library dependencies - MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake") - include(${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake) - MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxMacros.cmake") - include(${SIMOX_CMAKE_DIR}/SimoxMacros.cmake) - endif() include( FindPackageHandleStandardArgs ) diff --git a/CMakeModules/SimoxConfig.cmake.in b/CMakeModules/SimoxConfig.cmake.in index cf4f911b496442082ef8e7c5b86cb14d79155b18..17e1450fbe40123f0097735ea82871a91a546f6c 100644 --- a/CMakeModules/SimoxConfig.cmake.in +++ b/CMakeModules/SimoxConfig.cmake.in @@ -32,3 +32,13 @@ SET(SIMOX_VISUALIZATION_LIBS "@SIMOX_VISUALIZATION_LIBS@") SET(SIMOX_VISUALIZATION_INCLUDE_PATHS "@SIMOX_VISUALIZATION_INCLUDE_PATHS@") SET(SIMOX_VISUALIZATION_COMPILE_FLAGS "@SIMOX_VISUALIZATION_COMPILE_FLAGS@") +# Convenient setup: all simox-related dependencies are included here. +# If this causes troubles, disable it by steting SIMOX_DISABLE_DEPENDENCIES_INCLUDE. +# Then you will need to setup the dependencies on your own, similar to the setup in SimoxExternalLibrarySetup.cmake +IF(NOT SIMOX_DISABLE_DEPENDENCIES_INCLUDE) + # include all library dependencies + MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake") + include(${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake) + MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxMacros.cmake") + include(${SIMOX_CMAKE_DIR}/SimoxMacros.cmake) +ENDIF() diff --git a/VirtualRobot/CMakeLists.txt b/VirtualRobot/CMakeLists.txt index 94512df91a29d20800f6861f51fbc194a36e2dff..b966474fdb8cb08ef3a314043ff389acf8c77f6a 100644 --- a/VirtualRobot/CMakeLists.txt +++ b/VirtualRobot/CMakeLists.txt @@ -240,9 +240,9 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${VIRT ############################################ MESSAGE(STATUS " * Generating CMake files") -set(VIRTUAL_ROBOT_MAJOR_VERSION 0) +set(VIRTUAL_ROBOT_MAJOR_VERSION 2) set(VIRTUAL_ROBOT_MINOR_VERSION 1) -set(VIRTUAL_ROBOT_PATCH_VERSION 0) +set(VIRTUAL_ROBOT_PATCH_VERSION 2) set(VIRTUAL_ROBOT_VERSION ${VIRTUAL_ROBOT_MAJOR_VERSION}.${VIRTUAL_ROBOT_MINOR_VERSION}.${VIRTUAL_ROBOT_PATCH_VERSION}) @@ -258,13 +258,13 @@ EXPORT(PACKAGE VirtualRobot) #message(STATUS "VirtualRobot_external_INCLUDE_DIRS: ${VirtualRobot_external_INCLUDE_DIRS}") SET (VIRTUAL_ROBOT_CONFIG_INBUILD_DIR ${VIRTUAL_ROBOT_BUILD_DIRECTORY}/share/VirtualRobot/cmake) -SET (VIRTUAL_ROBOT_CONFIG_INBUILD "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake") +SET (VIRTUAL_ROBOT_CONFIG_INBUILD "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfig.cmake") SET (VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR ${VIRTUAL_ROBOT_BUILD_DIRECTORY}/InstallFiles) SET (VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfig.cmake") SET (VIRTUAL_ROBOT_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/VirtualRobot/cmake) -SET (VIRTUAL_ROBOT_CONFIG_INSTALL "${VIRTUAL_ROBOT_CONFIG_INSTALL_DIR}/VirtualRobotConfig.cmake") +SET (VIRTUAL_ROBOT_CONFIG_INSTALL "${CMAKE_INSTALL_PREFIX}/VirtualRobotConfig.cmake") -MESSAGE (STATUS " * VirtualRobot: SETTING UP INSATLL FILES") +MESSAGE (STATUS " * VirtualRobot: SETTING UP INSTALL FILES") MESSAGE (STATUS " ** In-build tree: VIRTUAL_ROBOT_CONFIG_INBUILD = ${VIRTUAL_ROBOT_CONFIG_INBUILD}") MESSAGE (STATUS " ** Install tree : (local) VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL = ${VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL}") MESSAGE (STATUS " ** Install tree : (install) VIRTUAL_ROBOT_CONFIG_INSTALL = ${VIRTUAL_ROBOT_CONFIG_INSTALL}") @@ -286,11 +286,11 @@ SET(VIRTUAL_ROBOT_LIBRARY_CMAKE_INCLUDE "${VIRTUAL_ROBOT_EXTERNAL_LIBRARY_CMAKE_ SET(VIRTUAL_ROBOT_DATA_PATH "${PROJECT_SOURCE_DIR}/data") configure_file( ${VR_DIR}/CMakeModules/VirtualRobotConfig.cmake.in - "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake" + "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfig.cmake" @ONLY) configure_file( ${VR_DIR}/CMakeModules/VirtualRobotConfigVersion.cmake.in - "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfigVersion.cmake" + "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfigVersion.cmake" @ONLY) configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake" "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotExternalLibrarySetup.cmake" COPYONLY) @@ -323,7 +323,7 @@ configure_file( install(FILES "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfig.cmake" "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfigVersion.cmake" - DESTINATION "${VIRTUAL_ROBOT_CMAKE_DIR}") + DESTINATION "${CMAKE_INSTALL_PREFIX}") install(FILES "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake" "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotMacros.cmake" diff --git a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake index 5439c577252ee674543b17011da6d23f2958cc22..0c73055689c616c982e64680079d7d408fb1f002 100644 --- a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake +++ b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake @@ -45,13 +45,6 @@ if( VIRTUAL_ROBOT_LIBRARIES AND VIRTUAL_ROBOT_DIR) set( VIRTUAL_ROBOT_FOUND TRUE ) set( VIRTUAL_ROBOT_INCLUDE_DIR ${VIRTUAL_ROBOT_DIR} ) set( VIRTUAL_ROBOT_LIBRARY ${VIRTUAL_ROBOT_LIBRARIES} ) - - # include all library dependencies - MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake") - include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake) - - MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake") - include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake) endif() include( FindPackageHandleStandardArgs ) diff --git a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in b/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in index a41de0438455b9b93e2330a452a2e5e544bf2b8a..61de76678d83825855ff1253a823f011f32d2b59 100644 --- a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in +++ b/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in @@ -39,3 +39,14 @@ SET(VIRTUAL_ROBOT_VISUALIZATION_LIBS "@VIRTUAL_ROBOT_VISUALIZATION_LIBS@") SET(VIRTUAL_ROBOT_VISUALIZATION_INCLUDE_PATHS "@VIRTUAL_ROBOT_VISUALIZATION_INCLUDE_PATHS@") SET(VIRTUAL_ROBOT_VISUALIZATION_COMPILE_FLAGS "@VIRTUAL_ROBOT_VISUALIZATION_COMPILE_FLAGS@") +# Convenient setup: all VirtualRobot-related dependencies are included here. +# If this causes troubles, disable it by steting VIRTUAL_ROBOT_DISABLE_DEPENDENCIES_INCLUDE. +# Then you will need to setup the dependencies on your own, similar to the setup in VirtualRobotExternalLibrarySetup.cmake +IF(NOT VIRTUAL_ROBOT_DISABLE_DEPENDENCIES_INCLUDE) + # include all library dependencies + MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake") + include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake) + + MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake") + include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake) +ENDIF() diff --git a/doc/external_project_setup.txt b/doc/external_project_setup.txt index 83a1fea7a92d710e5ba42a5ebf8983e3d5c38d92..42baaa73256f70bdd31693bc2d066355e13bd0a8 100644 --- a/doc/external_project_setup.txt +++ b/doc/external_project_setup.txt @@ -1,4 +1,5 @@ -When you intend to use Simox with an external project, you can use the following CMakeLists.txt code: +When you intend to use Simox with an external project, you can use the following CMakeLists.txt code. +Set the environment variable Simox_DIR to the (build or install) location of Simox. It will be considered by the FIND_PACKAGE method. <---- snippet -----> @@ -8,12 +9,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) CMAKE_POLICY(VERSION 2.6) ############################# SETUP PATHS TO Simox ############################# - -# the environment variable Simox_DIR is initially used as path to simox. -SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).") -SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake) - -# now search simox (The file ${Simox_DIR}/share/Simox/cmake/FindSimox.cmake is used) FIND_PACKAGE(Simox REQUIRED) # Build only if Simox was created with Coin3D support.