Menu

[r868]: / trunk-v1 / config.cmake  Maximize  Restore  History

Download this file

147 lines (124 with data), 4.9 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# defines SIMOX_CONFIGURED variable which indicates that this config file has already been included
SET(SIMOX_CONFIGURED TRUE)
# Set up for debug build
#SET(CMAKE_BUILD_TYPE Debug)
GET_FILENAME_COMPONENT (CurrentPath ${CMAKE_CURRENT_LIST_FILE} PATH)
#MESSAGE ("module path: " ${CurrentPath}/cmake-modules)
SET(CMAKE_MODULE_PATH ${CurrentPath}/cmake-modules)
# Check for Qt
FIND_PACKAGE(Qt REQUIRED)
IF ( NOT DESIRED_QT_VERSION EQUAL 3 )
# Use Qt4
SET(QT_USE_XML TRUE)
SET(QT_USE_QTXMLPATTERNS TRUE)
SET(QT_USE_QTOPENGL TRUE)
SET(QT_USE_QT3SUPPORT TRUE)
ADD_DEFINITIONS(-DQT3_SUPPORT)
INCLUDE(${QT_USE_FILE})
SET(USE_QT_4 1)
SET(USE_QT_3 0)
ELSE(NOT DESIRED_QT_VERSION EQUAL 3)
# Use Qt3
ADD_DEFINITIONS(${QT_DEFINITIONS})
SET(USE_QT_4 0)
SET(USE_QT_3 1)
ENDIF(NOT DESIRED_QT_VERSION EQUAL 3)
# Check for Coin library
# This will set the variables COIN3D_FOUND, COIN3D_INCLUDE_DIRS, COIN3D_LIBRARIES
FIND_PACKAGE(Coin3D)
ADD_DEFINITIONS(-DCOIN_DLL)
# Check for SoQt
# This will set SoQt_INCLUDE_DIRS and SoQt_LIBRARIES
FIND_PACKAGE(SoQt REQUIRED)
ADD_DEFINITIONS(-DSOQT_DLL)
if (SoQt_FOUND)
INCLUDE_DIRECTORIES(${SoQt_INCLUDE_DIRS})
SET(USE_SOQT TRUE)
endif (SoQt_FOUND)
IF(BUILD_EXTERNAL)
SET(USE_NEWMAT 1)
SET(USE_QHULL 1)
ENDIF(BUILD_EXTERNAL)
SET(SIMOX_DIR ${CurrentPath})
ADD_DEFINITIONS(-DSIMOX_BASE_DIR="${SIMOX_DIR}")
# Set OS specific options
IF(UNIX)
# We are on Linux
SET(BIN_DIR bin/linux)
SET(LIB_DIR lib/linux)
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
ADD_DEFINITIONS(-fPIC)
ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
ELSE(UNIX)
# We are on Windows
SET(BIN_DIR bin/win32)
SET(LIB_DIR lib/win32)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -DCONFIGURED_BY_CMAKE)
# On MSVC we compile with /MP flag (use multiple threads)
IF(MSVC)
ADD_DEFINITIONS(/MP)
ENDIF(MSVC)
ENDIF(UNIX)
# Define, where to put the binaries
SET(SIMOX_LIB_DIR ${SIMOX_DIR}/${LIB_DIR})
SET(SIMOX_BIN_DIR ${SIMOX_DIR}/${BIN_DIR})
# Define, where to install the binaries
SET(SIMOX_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib)
SET(SIMOX_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
## Collision Detection
OPTION(CollisionDetectionLibrary_PQP "Build and use the PQP Collision Detection library (located in ExternalDependencies)" ON)
OPTION(CollisionDetectionLibrary_C2A "Build and use the C2A Continuous Collision Detection library (located in ExternalDependencies)" OFF)
IF(CollisionDetectionLibrary_PQP)
SET(USE_PQP 1)
SET(COLLISIONDETECTION_LIB ColCheckerPQP)
SET(COLLISIONDETECTION_DIR ${SIMOX_DIR}/ExternalDependencies/CollisionCheckerPQP)
SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR})
SET(COLLISIONDETECTION_LIB_DIR ${SIMOX_LIB_DIR})
ELSEIF(CollisionDetectionLibrary_C2A)
SET(USE_C2A 1)
SET(COLLISIONDETECTION_LIB ColCheckerC2A)
SET(COLLISIONDETECTION_DIR ${SIMOX_DIR}/ExternalDependencies/C2A)
SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR})
INCLUDE_DIRECTORIES(${COLLISIONDETECTION_INC_DIR}/PQP_1.3)
SET(COLLISIONDETECTION_LIB_DIR ${SIMOX_LIB_DIR})
ELSE()
# DUMMY
SET(COLLISIONDETECTION_DIR ${SIMOX_DIR}/VirtualRobot/CollisionDetection/Dummy)
SET(COLLISIONDETECTION_INC_DIR ${COLLISIONDETECTION_DIR})
SET(COLLISIONDETECTION_LIB_DIR ${SIMOX_LIB_DIR})
ENDIF()
SET(VIRTUALROBOT_LIB VirtualRobot)
SET(SABA_LIB SaBa)
SET(GRASPSTUDIO_LIB GraspStudioLib)
SET(VIRTUALROBOT_LIB VirtualRobot)
SET(ROBOT_LIB RobotLibArmarIII)
SET(NEWMAT_LIB newmat)
SET(QHULL_LIB qhull)
# Set base directory variables
SET(EXTERNALS_DIR ${SIMOX_DIR}/ExternalDependencies)
SET(NEWMAT_DIR ${EXTERNALS_DIR}/newmat)
SET(QHULL_DIR ${EXTERNALS_DIR}/qhull-2003.1)
SET(VIRTUALROBOT_DIR ${SIMOX_DIR}/VirtualRobot)
SET(SABA_DIR ${SIMOX_DIR}/SaBa)
SET(GRASPSTUDIO_DIR ${SIMOX_DIR}/GraspStudio)
# Set include directory variables
SET(NEWMAT_INC_DIR ${NEWMAT_DIR}/include)
SET(QHULL_INC_DIR ${QHULL_DIR}/include)
SET(VIRTUALROBOT_INC_DIR ${VIRTUALROBOT_DIR})
SET(SABA_INC_DIR ${SABA_DIR}/include)
SET(GRASPSTUDIO_INC_DIR ${GRASPSTUDIO_DIR}/include)
# Set link directory variables
SET(NEWMAT_LIB_DIR ${SIMOX_LIB_DIR})
SET(QHULL_LIB_DIR ${SIMOX_LIB_DIR})
SET(VIRTUALROBOT_LIB_DIR ${SIMOX_LIB_DIR})
SET(SABA_LIB_DIR ${SIMOX_LIB_DIR})
SET(GRASPSTUDIO_LIB_DIR ${SIMOX_LIB_DIR})
# The CDT Error Parser cannot handle error messages that span more than one line,
# which is the default gcc behavior. In order to force gcc to generate single line
# error messages with no line wrapping, add to your CMakeLists.txt:
IF(CMAKE_COMPILER_IS_GNUCC)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
ENDIF(CMAKE_COMPILER_IS_GNUCC)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)