2121# ODE::ODE_double - If available, this links against double-precision ODE
2222#
2323
24- if (NOT ODE_INCLUDE_DIR OR NOT ODE_LIBRARY_DIR)
25- # Find the libode include files
26- find_path (ODE_INCLUDE_DIR "ode/ode.h" )
27-
28- # Find the libode library built for release
29- find_library (ODE_RELEASE_LIBRARY
30- NAMES "ode" "libode" )
31-
32- # Find the libode library built for debug
33- find_library (ODE_DEBUG_LIBRARY
34- NAMES "oded" "liboded" )
35-
36- # Find the single-precision library built for release
37- find_library (ODE_SINGLE_RELEASE_LIBRARY
38- NAMES "ode_single" "libode_single" )
39-
40- # Find the single-precision library built for debug
41- find_library (ODE_SINGLE_DEBUG_LIBRARY
42- NAMES "ode_singled" "libode_singled" )
43-
44- # Find the double-precision library built for release
45- find_library (ODE_DOUBLE_RELEASE_LIBRARY
46- NAMES "ode_double" "libode_double" )
47-
48- # Find the double-precision library built for debug
49- find_library (ODE_DOUBLE_DEBUG_LIBRARY
50- NAMES "ode_doubled" "libode_doubled" )
51-
52- unset (_ODE_LIB_PATHS)
53-
54- mark_as_advanced (ODE_INCLUDE_DIR )
55- mark_as_advanced (ODE_RELEASE_LIBRARY )
56- mark_as_advanced (ODE_DEBUG_LIBRARY )
57- mark_as_advanced (ODE_SINGLE_RELEASE_LIBRARY )
58- mark_as_advanced (ODE_SINGLE_DEBUG_LIBRARY )
59- mark_as_advanced (ODE_DOUBLE_RELEASE_LIBRARY )
60- mark_as_advanced (ODE_DOUBLE_DEBUG_LIBRARY )
61- endif ()
24+ # Find the libode include files
25+ find_path (ODE_INCLUDE_DIR "ode/ode.h" )
26+
27+ # Find the libode library built for release
28+ find_library (ODE_RELEASE_LIBRARY
29+ NAMES "ode" "libode" )
30+
31+ # Find the libode library built for debug
32+ find_library (ODE_DEBUG_LIBRARY
33+ NAMES "oded" "liboded" )
34+
35+ # Find the single-precision library built for release
36+ find_library (ODE_SINGLE_RELEASE_LIBRARY
37+ NAMES "ode_single" "libode_single" )
38+
39+ # Find the single-precision library built for debug
40+ find_library (ODE_SINGLE_DEBUG_LIBRARY
41+ NAMES "ode_singled" "libode_singled" )
42+
43+ # Find the double-precision library built for release
44+ find_library (ODE_DOUBLE_RELEASE_LIBRARY
45+ NAMES "ode_double" "libode_double" )
46+
47+ # Find the double-precision library built for debug
48+ find_library (ODE_DOUBLE_DEBUG_LIBRARY
49+ NAMES "ode_doubled" "libode_doubled" )
50+
51+ # Find libccd, which ODE sometimes links against, so we want to let the linker
52+ # know about it if it's present.
53+ find_library (ODE_LIBCCD_LIBRARY
54+ NAMES "ccd" "libccd" )
55+
56+ mark_as_advanced (ODE_INCLUDE_DIR )
57+ mark_as_advanced (ODE_RELEASE_LIBRARY )
58+ mark_as_advanced (ODE_DEBUG_LIBRARY )
59+ mark_as_advanced (ODE_SINGLE_RELEASE_LIBRARY )
60+ mark_as_advanced (ODE_SINGLE_DEBUG_LIBRARY )
61+ mark_as_advanced (ODE_DOUBLE_RELEASE_LIBRARY )
62+ mark_as_advanced (ODE_DOUBLE_DEBUG_LIBRARY )
63+ mark_as_advanced (ODE_LIBCCD_LIBRARY )
6264
6365# Define targets for both precisions (and unspecified)
6466foreach (_precision _single _double "" )
@@ -72,6 +74,11 @@ foreach(_precision _single _double "")
7274 set_target_properties (ODE::ODE${_precision} PROPERTIES
7375 INTERFACE_INCLUDE_DIRECTORIES "${ODE_INCLUDE_DIR} " )
7476
77+ if (ODE_LIBCCD_LIBRARY)
78+ set_target_properties (ODE::ODE${_precision} PROPERTIES
79+ INTERFACE_LINK_LIBRARIES "${ODE_LIBCCD_LIBRARY} " )
80+ endif ()
81+
7582 if (EXISTS "${ODE${_PRECISION} _RELEASE_LIBRARY}" )
7683 set_property (TARGET ODE::ODE${_precision} APPEND PROPERTY
7784 IMPORTED_CONFIGURATIONS RELEASE )
@@ -121,18 +128,20 @@ if(NOT TARGET ODE::ODE)
121128 foreach (_prop
122129 INTERFACE_INCLUDE_DIRECTORIES
123130 INTERFACE_COMPILE_DEFINITIONS
131+ INTERFACE_LINK_LIBRARIES
124132 IMPORTED_CONFIGURATIONS
125133 IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE
126134 IMPORTED_LOCATION_RELEASE
127135 IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG
128136 IMPORTED_LOCATION_DEBUG)
129137
130138 get_target_property (_value "${_copy_from} " "${_prop} " )
131- if (DEFINED _value)
139+ if (_value)
132140 set_target_properties (ODE::ODE PROPERTIES "${_prop} " "${_value} " )
133141 endif ()
134142 unset (_value)
135143 endforeach (_prop )
144+ unset (_prop)
136145 endif ()
137146
138147 unset (_copy_from)
0 commit comments