Statistics
| Revision:

root / trunk / extensions / ext3Dgui / buildman / plugins-data / depman / CMakeModules / FindOpenThreads.cmake @ 26254

History | View | Annotate | Download (6.15 KB)

1
# OpenThreads is a C++ based threading library. Its largest userbase 
2
# seems to OpenSceneGraph so you might notice I accept OSGDIR as an
3
# environment path.
4
# I consider this part of the Findosg* suite used to find OpenSceneGraph 
5
# components.
6
# Each component is separate and you must opt in to each module.
7
# 
8
# Locate OpenThreads
9
# This module defines
10
# OPENTHREADS_LIBRARY
11
# OPENTHREADS_FOUND, if false, do not try to link to OpenThreads
12
# OPENTHREADS_INCLUDE_DIR, where to find the headers
13
#
14
# $OPENTHREADS_DIR is an environment variable that would
15
# correspond to the ./configure --prefix=$OPENTHREADS_DIR
16
# used in building osg.
17
#
18
# Created by Eric Wing.
19

    
20
# Header files are presumed to be included like
21
# #include <OpenThreads/Thread>
22

    
23
# To make it easier for one-step automated configuration/builds,
24
# we leverage environmental paths. This is preferable 
25
# to the -DVAR=value switches because it insulates the 
26
# users from changes we may make in this script.
27
# It also offers a little more flexibility than setting
28
# the CMAKE_*_PATH since we can target specific components.
29
# However, the default CMake behavior will search system paths
30
# before anything else. This is problematic in the cases
31
# where you have an older (stable) version installed, but
32
# are trying to build a newer version.
33
# CMake doesn't offer a nice way to globally control this behavior
34
# so we have to do a nasty "double FIND_" in this module.
35
# The first FIND disables the CMAKE_ search paths and only checks
36
# the environmental paths.
37
# If nothing is found, then the second find will search the
38
# standard install paths.
39
# Explicit -DVAR=value arguments should still be able to override everything.
40
# Note: We have added an additional check for ${CMAKE_PREFIX_PATH}.
41
# This is not an official CMake variable, but one we are proposing be
42
# added to CMake. Be warned that this may go away or the variable name
43
# may change.
44

    
45
FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
46
    $ENV{OPENTHREADS_INCLUDE_DIR}
47
    $ENV{OPENTHREADS_DIR}/include
48
    $ENV{OPENTHREADS_DIR}
49
    $ENV{OSG_INCLUDE_DIR}
50
    $ENV{OSG_DIR}/include
51
    $ENV{OSG_DIR}
52
    NO_DEFAULT_PATH
53
)
54

    
55
IF(NOT OPENTHREADS_INCLUDE_DIR)
56
    FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
57
        PATHS ${CMAKE_PREFIX_PATH}
58
        PATH_SUFFIXES include
59
    )
60
ENDIF(NOT OPENTHREADS_INCLUDE_DIR)
61

    
62
IF(NOT OPENTHREADS_INCLUDE_DIR)
63
    FIND_PATH(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
64
        ~/Library/Frameworks
65
        /Library/Frameworks
66
        /usr/local/include
67
        /usr/include
68
        /sw/include # Fink
69
        /opt/local/include # DarwinPorts
70
        /opt/csw/include # Blastwave
71
        /opt/include
72
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/include
73
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/include
74
    )
75
ENDIF(NOT OPENTHREADS_INCLUDE_DIR)
76

    
77
MARK_AS_ADVANCED(OPENTHREADS_INCLUDE_DIR)
78

    
79
FIND_LIBRARY(OPENTHREADS_LIBRARY 
80
    NAMES OpenThreads OpenThreadsWin32 
81
    PATHS
82
    $ENV{OPENTHREADS_LIBRARY_DIR}
83
    $ENV{OPENTHREADS_DIR}/lib64
84
    $ENV{OPENTHREADS_DIR}/lib
85
    $ENV{OPENTHREADS_DIR}
86
    $ENV{OSG_LIBRARY_DIR}
87
    $ENV{OSG_DIR}/lib64
88
    $ENV{OSG_DIR}/lib
89
    $ENV{OSG_DIR}
90
    NO_DEFAULT_PATH
91
)
92

    
93
IF(NOT OPENTHREADS_LIBRARY)
94
    FIND_LIBRARY(OPENTHREADS_LIBRARY 
95
        NAMES OpenThreads OpenThreadsWin32 
96
        PATHS ${CMAKE_PREFIX_PATH}
97
        PATH_SUFFIXES lib64 lib
98
    )
99
ENDIF(NOT OPENTHREADS_LIBRARY)
100

    
101
IF(NOT OPENTHREADS_LIBRARY)
102
    FIND_LIBRARY(OPENTHREADS_LIBRARY 
103
        NAMES OpenThreads OpenThreadsWin32 
104
        PATHS
105
        ~/Library/Frameworks
106
        /Library/Frameworks
107
        /usr/local/lib64
108
        /usr/local/lib
109
        /usr/lib64
110
        /usr/lib
111
        /sw/lib64
112
        /sw/lib
113
        /opt/local/lib64
114
        /opt/local/lib
115
        /opt/csw/lib64
116
        /opt/csw/lib
117
        /opt/lib64
118
        /opt/lib
119
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/lib
120
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib
121
    )
122
ENDIF(NOT OPENTHREADS_LIBRARY)
123

    
124
MARK_AS_ADVANCED(OPENTHREADS_LIBRARY)
125

    
126
FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG 
127
    NAMES OpenThreadsd OpenThreadsWin32d
128
    PATHS
129
    $ENV{OPENTHREADS_DEBUG_LIBRARY_DIR}
130
    $ENV{OPENTHREADS_LIBRARY_DIR}
131
    $ENV{OPENTHREADS_DIR}/lib64
132
    $ENV{OPENTHREADS_DIR}/lib
133
    $ENV{OPENTHREADS_DIR}
134
    $ENV{OSG_LIBRARY_DIR}
135
    $ENV{OSG_DIR}/lib64
136
    $ENV{OSG_DIR}/lib
137
    $ENV{OSG_DIR}
138
    ${CMAKE_PREFIX_PATH}/lib64
139
    ${CMAKE_PREFIX_PATH}/lib
140
    ${CMAKE_PREFIX_PATH}
141
    NO_DEFAULT_PATH
142
)
143

    
144
IF(NOT OPENTHREADS_LIBRARY_DEBUG)
145
    FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG 
146
        NAMES OpenThreadsd OpenThreadsWin32d
147
        PATHS ${CMAKE_PREFIX_PATH}
148
        PATH_SUFFIXES lib64 lib
149
    )
150
ENDIF(NOT OPENTHREADS_LIBRARY_DEBUG)
151

    
152
IF(NOT OPENTHREADS_LIBRARY_DEBUG)
153
    FIND_LIBRARY(OPENTHREADS_LIBRARY_DEBUG 
154
        NAMES OpenThreadsd OpenThreadsWin32d
155
        PATHS
156
        /usr/local/lib64
157
        /usr/local/lib
158
        /usr/lib64
159
        /usr/lib
160
        /sw/lib64
161
        /sw/lib
162
        /opt/local/lib64
163
        /opt/local/lib
164
        /opt/csw/lib64
165
        /opt/csw/lib
166
        /opt/lib64
167
        /opt/lib
168
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OpenThreads_ROOT]/lib
169
        [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib
170
    )
171
ENDIF(NOT OPENTHREADS_LIBRARY_DEBUG)
172

    
173
MARK_AS_ADVANCED(OPENTHREADS_LIBRARY_DEBUG)
174

    
175
IF(OPENTHREADS_LIBRARY)
176
  IF(NOT OPENTHREADS_LIBRARY_DEBUG)
177
      #MESSAGE("-- Warning Debug OpenThreads not found, using: ${OPENTHREADS_LIBRARY}")
178
      #SET(OPENTHREADS_LIBRARY_DEBUG "${OPENTHREADS_LIBRARY}")
179
      SET(OPENTHREADS_LIBRARY_DEBUG "${OPENTHREADS_LIBRARY}" CACHE FILEPATH "Debug version of OpenThreads Library (use regular version if not available)" FORCE)
180
  ENDIF(NOT OPENTHREADS_LIBRARY_DEBUG)
181
ENDIF(OPENTHREADS_LIBRARY)
182
    
183
SET(OPENTHREADS_FOUND "NO")
184
IF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY)
185
  SET(OPENTHREADS_FOUND "YES")
186
  # MESSAGE("-- Found OpenThreads: "${OPENTHREADS_LIBRARY})
187
ENDIF(OPENTHREADS_INCLUDE_DIR AND OPENTHREADS_LIBRARY)
188