~csiro-asl/csiro-asl-ros-drivers/trunk

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
)