Skip to content
Snippets Groups Projects
Commit dcae5db3 authored by mkroehnert's avatar mkroehnert
Browse files

cmake: after 'make install' the package is now relocatable

git-svn-id: http://svn.code.sf.net/p/simox/code/trunk@593 042f3d55-54a8-47e9-b7fb-15903f145c44
parent c9498378
No related branches found
No related tags found
No related merge requests found
......@@ -74,29 +74,37 @@ export(TARGETS ${SIMOX_EXPORT_TARGET_LIST}
export(PACKAGE Simox)
# Create the SimoxConfig.cmake and SimoxVersion files
file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}"
"${INSTALL_INCLUDE_DIR}")
# ... for the build tree
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
set (Simox_DATA_PATH ${Simox_DATA_DIR})
set (Simox_MACROS_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/CMakeModules")
configure_file(CMakeModules/SimoxConfig.cmake.in
"${PROJECT_BINARY_DIR}/SimoxConfig.cmake" @ONLY)
set(Simox_DATA_PATH ${Simox_DATA_DIR})
set(Simox_MACROS_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/CMakeModules")
configure_file(CMakeModules/SimoxBuildTreeSettings.cmake.in
"${PROJECT_BINARY_DIR}/SimoxBuildTreeSettings.cmake" @ONLY)
# ... for the install tree
set(CONF_INCLUDE_DIRS "\${Simox_CMAKE_DIR}/${REL_INCLUDE_DIR}")
set (Simox_DATA_PATH ${Simox_INSTALL_DATA_DIR})
set (Simox_MACROS_INCLUDE_DIR "\${Simox_CMAKE_DIR}")
file(RELATIVE_PATH RELATIVE_INSTALL_DIR
"${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}"
"${CMAKE_INSTALL_PREFIX}")
set(CONF_INCLUDE_DIRS "${INSTALL_INCLUDE_DIR}")
set(Simox_DATA_PATH "${Simox_INSTALL_DATA_DIR}")
set(Simox_MACROS_INCLUDE_DIR "\${Simox_CMAKE_DIR}")
configure_file(CMakeModules/SimoxConfig.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/SimoxConfig.cmake" @ONLY)
"${PROJECT_BINARY_DIR}/SimoxConfig.cmake" @ONLY)
# ... for both
configure_file(CMakeModules/SimoxConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake" @ONLY)
"${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake" @ONLY)
# Install the SimoxConfig.cmake and SimoxConfigVersion.cmake
# Install the SimoxBuildTreeSettings.cmake, SimoxConfig.cmake, and SimoxConfigVersion.cmake
install(FILES
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/SimoxConfig.cmake"
"${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake"
DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
"${PROJECT_BINARY_DIR}/SimoxBuildTreeSettings.cmake"
"${PROJECT_BINARY_DIR}/SimoxConfig.cmake"
"${PROJECT_BINARY_DIR}/SimoxConfigVersion.cmake"
DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
install(FILES
"${PROJECT_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake"
......
## Copyright (c) 2014, Nikolaus Vahrenkamp (Karlsruhe Institute of Technology)
# set the parameters which are different for an in-source build
set(Simox_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
set(Simox_DATA_PATH "@Simox_DATA_PATH@")
set(Simox_MACROS_INCLUDE_DIR "@Simox_MACROS_INCLUDE_DIR@")
......@@ -10,23 +10,37 @@
# Simox_USE_COIN_VISUALIZATION - if Coin3D visualization was selected
if(Simox_FOUND)
return()
return()
endif()
set(Simox_FOUND TRUE)
# Compute paths
get_filename_component(Simox_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
set(Simox_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
# Our library dependencies (contains definitions for IMPORTED targets)
if(NOT TARGET Simox AND NOT Simox_BINARY_DIR)
include("${Simox_CMAKE_DIR}/SimoxTargets.cmake")
endif()
# These are IMPORTED targets created by SimoxTargets.cmake
set(Simox_LIBRARIES "@Simox_LIBRARIES@")
set(Simox_EXECUTABLE "@Simox_EXECUTABLE@")
set(Simox_DATA_PATH "@Simox_DATA_PATH@")
if(EXISTS "${Simox_CMAKE_DIR}/CMakeCache.txt")
# In build tree
message(STATUS "Using Simox Source-Build from: ${Simox_CURRENT_CMAKE_DIR}")
include("${Simox_CMAKE_DIR}/SimoxBuildTreeSettings.cmake")
else()
# Installed project
message(STATUS "Using Simox Binary Package from: ${Simox_CMAKE_DIR}")
set(Simox_INCLUDE_DIRS "")
foreach (INCLUDE_DIR @CONF_INCLUDE_DIRS@)
LIST(APPEND Simox_INCLUDE_DIRS "${Simox_CMAKE_DIR}/@RELATIVE_INSTALL_DIR@/${INCLUDE_DIR}")
endforeach ()
set(Simox_DATA_PATH "${Simox_CMAKE_DIR}/@RELATIVE_INSTALL_DIR@/@Simox_DATA_PATH@")
set(Simox_MACROS_INCLUDE_DIR "${Simox_CMAKE_DIR}")
endif()
SET(Simox_VISUALIZATION "@Simox_VISUALIZATION@")
SET(Simox_USE_COIN_VISUALIZATION "@Simox_USE_COIN_VISUALIZATION@")
......@@ -42,7 +56,7 @@ SET(Simox_EXTERNAL_CMAKE_INCLUDE "@Simox_EXTERNAL_CMAKE_INCLUDE@")
if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY))
if (NOT (Simox_FIND_QUIETLY OR VirtualRobot_FIND_QUIETLY))
MESSAGE(STATUS " * Including ${Simox_CMAKE_DIR}/SimoxMacros.cmake")
endif()
include(@Simox_MACROS_INCLUDE_DIR@/SimoxMacros.cmake)
include(${Simox_MACROS_INCLUDE_DIR}/SimoxMacros.cmake)
......@@ -315,7 +315,7 @@ INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION "${Simox_INSTALL_HEADER_DIR}
PATTERN "examples" EXCLUDE
)
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data DESTINATION ${Simox_INSTALL_DIR}
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data DESTINATION ${CMAKE_INSTALL_PREFIX}
COMPONENT ApplicationData
FILES_MATCHING
PATTERN "*.xml"
......
......@@ -66,11 +66,10 @@ IF (NOT Simox_CONFIGURED)
MESSAGE (STATUS "** SIMOX BIN DIR: ${Simox_BIN_DIR}")
MESSAGE (STATUS "** SIMOX DATA DIR: ${Simox_DATA_DIR}")
SET(Simox_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
SET(Simox_INSTALL_LIB_DIR ${Simox_INSTALL_DIR}/${LIB_DIR})
SET(Simox_INSTALL_BIN_DIR ${Simox_INSTALL_DIR}/${BIN_DIR})
SET(Simox_INSTALL_DATA_DIR ${Simox_INSTALL_DIR}/${DATA_DIR})
SET(Simox_INSTALL_HEADER_DIR ${Simox_INSTALL_DIR}/include)
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}")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment