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
|
# Try to find Ode
# Once done this will define
#
# ODE_LIBRARY_FOUND - if Ode3d is found
# ODE_CXXFLAGS - extra flags
# ODE_INCLUDE_DIRS - include directories
# ODE_LINK_DIRS - link directories
# ODE_LIBRARY_RELEASE - the relase version
# ODE_LIBRARY_DEBUG - the debug version
# ODE_LIBRARY - a default library, with priority debug.
# use ode-config
execute_process(COMMAND rospack find opende OUTPUT_VARIABLE OPENDE_DIR)
set(OPENDE_EXEC_DIR "${OPENDE_DIR}/opende/bin")
string(REGEX REPLACE "[\r\n]" "" OPENDE_EXEC_DIR "${OPENDE_EXEC_DIR}")
message(STATUS "opende ROS package found at ${OPENDE_DIR}, searching path ${OPENDE_EXEC_DIR} for ode-config executable")
find_program(ODE_CONFIG_EXECUTABLE NAMES ode-config DOC "ode-config executable" PATHS ${OPENDE_EXEC_DIR})
message(STATUS "ode-config executable found: ${ODE_CONFIG_EXECUTABLE}")
mark_as_advanced(ODE_CONFIG_EXECUTABLE)
if(ODE_CONFIG_EXECUTABLE)
set(ODE_LIBRARY_FOUND 1)
execute_process(
COMMAND ${ODE_CONFIG_EXECUTABLE} --cflags
OUTPUT_VARIABLE _odeconfig_cflags
RESULT_VARIABLE _odeconfig_failed)
string(REGEX REPLACE "[\r\n]" " " _odeconfig_cflags "${_odeconfig_cflags}")
execute_process(
COMMAND ${ODE_CONFIG_EXECUTABLE} --libs
OUTPUT_VARIABLE _odeconfig_lflags
RESULT_VARIABLE _odeconfig_failed)
string(REGEX REPLACE "[\r\n]" " " _odeconfig_lflags "${_odeconfig_lflags}")
string(REGEX MATCHALL "(^| )-L([./+-_\\a-zA-Z]*)" _odeconfig_ldirs "${_odeconfig_lflags}")
string(REGEX REPLACE "(^| )-L" "" _odeconfig_ldirs "${_odeconfig_ldirs}")
string(REGEX MATCHALL "(^| )-l([./+-_\\a-zA-Z]*)" _odeconfig_libs "${_odeconfig_lflags}")
string(REGEX REPLACE "(^| )-l" "" _odeconfig_libs "${_odeconfig_libs}")
string(REGEX REPLACE "(^| )-l([./+-_\\a-zA-Z]*)" " " _odeconfig_lflags "${_odeconfig_lflags}")
string(REGEX REPLACE "(^| )-L([./+-_\\a-zA-Z]*)" " " _odeconfig_lflags "${_odeconfig_lflags}")
set( ODE_CXXFLAGS "${_odeconfig_cflags} ${_odeconfig_lflags}" )
set( ODE_INCLUDE_DIRS "")
set( ODE_LINK_DIRS ${_odeconfig_ldirs})
set( ODE_LIBRARY ${_odeconfig_libs})
set( ODE_LIBRARY_RELEASE ${ODE_LIBRARY})
set( ODE_LIBRARY_DEBUG ${ODE_LIBRARY})
string(REGEX MATCH "DOUBLE" _odeconfig_double "${_odeconfig_cflags}" )
if( _odeconfig_double )
set( ODE_PRECISION "DOUBLE")
else(_odeconfig_double )
set( ODE_PRECISION "SINGLE")
endif(_odeconfig_double )
else(ODE_CONFIG_EXECUTABLE)
# ode include files in local directory
if( MSVC AND NOT MSVC70 AND NOT MSVC71 AND NOT MSVC80 AND NOT MSVC81 )
# must be MSVC90 or later?
set(ODE_LIBRARY_FOUND 1)
set( ODE_CXXFLAGS "-DdDOUBLE")
set( ODE_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/inc/ode-0.11.1" )
set( ODE_LINK_DIRS "" )
set( ODE_LIBRARY optimized ode-vc90-double debug ode-vc90-double)
set( ODE_LIBRARY_RELEASE "ode-vc90-double")
set( ODE_LIBRARY_DEBUG "ode-vc90-double")
set( ODE_PRECISION "DOUBLE")
elseif( MSVC )
set(ODE_LIBRARY_FOUND 1)
set( ODE_CXXFLAGS "")
set( ODE_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/inc/ode-0.8" )
set( ODE_LINK_DIRS "" )
set( ODE_LIBRARY optimized ode debug oded)
set( ODE_LIBRARY_RELEASE "ode")
set( ODE_LIBRARY_DEBUG "oded")
set( ODE_PRECISION "SINGLE")
else( )
set(ODE_LIBRARY_FOUND 0)
MESSAGE("WARNING: Could not find ODE. Please install ODE (http://www.ode.org)")
endif()
endif(ODE_CONFIG_EXECUTABLE)
MARK_AS_ADVANCED(
ODE_LIBRARY_FOUND
ODE_CXXFLAGS
ODE_INCLUDE_DIRS
ODE_LINK_DIRS
ODE_LIBRARY
ODE_LIBRARY_RELEASE
ODE_LIBRARY_DEBUG
)
|