~ubuntu-branches/ubuntu/lucid/cmake/lucid

« back to all changes in this revision

Viewing changes to Modules/FindPerlLibs.cmake

  • Committer: Bazaar Package Importer
  • Author(s): Artur Rona
  • Date: 2009-12-16 11:11:54 UTC
  • mfrom: (3.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20091216111154-6accvv6yq86h2hkc
Tags: 2.8.0-5ubuntu1
* Merge from debian testing (LP: #497349). Remaining changes:
  - Keep the Replaces: on cmake-data to cover the Kubuntu version from
    Jaunty in case someone decides to do an (unsupported) Jaunty->Lucid
    upgrade.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
# and libraries are. It also determines what the name of the library is. This
4
4
# code sets the following variables:
5
5
#
 
6
#  PERLLIBS_FOUND    = True if perl.h & libperl were found
6
7
#  PERL_INCLUDE_PATH = path to where perl.h is found
 
8
#  PERL_LIBRARY      = path to libperl
7
9
#  PERL_EXECUTABLE   = full path to the perl binary
8
10
#
9
 
 
10
 
SET(PERL_POSSIBLE_INCLUDE_PATHS
11
 
  /usr/lib/perl/5.8.3/CORE
12
 
  /usr/lib/perl/5.8.2/CORE
13
 
  /usr/lib/perl/5.8.1/CORE
14
 
  /usr/lib/perl/5.8.0/CORE
15
 
  /usr/lib/perl/5.8/CORE
16
 
  )
17
 
 
18
 
SET(PERL_POSSIBLE_LIB_PATHS
19
 
  /usr/lib
20
 
  )
21
 
 
22
 
FIND_PATH(PERL_INCLUDE_PATH perl.h
23
 
  ${PERL_POSSIBLE_INCLUDE_PATHS})
 
11
#  The following variables are also available if needed
 
12
#  (introduced after CMake 2.6.4)
 
13
#
 
14
#  PERL_SITESEARCH    = path to the sitesearch install dir
 
15
#  PERL_SITELIB       = path to the sitelib install directory
 
16
#  PERL_VENDORARCH    = path to the vendor arch install directory
 
17
#  PERL_VENDORLIB     = path to the vendor lib install directory
 
18
#  PERL_ARCHLIB       = path to the arch lib install directory
 
19
#  PERL_PRIVLIB       = path to the priv lib install directory
 
20
#  PERL_EXTRA_C_FLAGS = Compilation flags used to build perl
 
21
#
 
22
 
 
23
#=============================================================================
 
24
# Copyright 2004-2009 Kitware, Inc.
 
25
#
 
26
# Distributed under the OSI-approved BSD License (the "License");
 
27
# see accompanying file Copyright.txt for details.
 
28
#
 
29
# This software is distributed WITHOUT ANY WARRANTY; without even the
 
30
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
31
# See the License for more information.
 
32
#=============================================================================
 
33
# (To distributed this file outside of CMake, substitute the full
 
34
#  License text for the above reference.)
24
35
 
25
36
# find the perl executable
26
 
INCLUDE(FindPerl)
27
 
 
28
 
 
29
 
IF(PERL_EXECUTABLE)
30
 
  EXEC_PROGRAM(${PERL_EXECUTABLE}
31
 
    ARGS -e "'use Config; print \$Config{libperl}, \"\\n\"'"
32
 
    OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT_VARIABLE
33
 
    RETURN_VALUE PERL_LIBRARY_RETURN_VALUE
34
 
    )
35
 
  IF(NOT PERL_LIBRARY_RETURN_VALUE)
36
 
    FOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
37
 
      SET(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
38
 
    ENDFOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
39
 
  ENDIF(NOT PERL_LIBRARY_RETURN_VALUE)
40
 
  EXEC_PROGRAM(${PERL_EXECUTABLE}
41
 
    ARGS -e "'use Config; print \$Config{cppflags}, \"\\n\"'"
42
 
    OUTPUT_VARIABLE PERL_CPPFLAGS_OUTPUT_VARIABLE
43
 
    RETURN_VALUE PERL_CPPFLAGS_RETURN_VALUE
44
 
    )
45
 
  IF(NOT PERL_CPPFLAGS_RETURN_VALUE)
46
 
    SET(PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
47
 
  ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE)
48
 
ENDIF(PERL_EXECUTABLE)
49
 
 
50
 
FIND_LIBRARY(PERL_LIBRARY
51
 
  NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
52
 
  PATHS ${PERL_POSSIBLE_LIB_PATHS}
53
 
  )
 
37
include(FindPerl)
 
38
 
 
39
if (PERL_EXECUTABLE)
 
40
  ### PERL_PREFIX
 
41
  execute_process(
 
42
    COMMAND
 
43
      ${PERL_EXECUTABLE} -V:prefix
 
44
      OUTPUT_VARIABLE
 
45
        PERL_PREFIX_OUTPUT_VARIABLE
 
46
      RESULT_VARIABLE
 
47
        PERL_PREFIX_RESULT_VARIABLE
 
48
  )
 
49
 
 
50
  if (NOT PERL_PREFIX_RESULT_VARIABLE)
 
51
    string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
 
52
  endif (NOT PERL_PREFIX_RESULT_VARIABLE)
 
53
 
 
54
  ### PERL_VERSION
 
55
  execute_process(
 
56
    COMMAND
 
57
      ${PERL_EXECUTABLE} -V:version
 
58
      OUTPUT_VARIABLE
 
59
        PERL_VERSION_OUTPUT_VARIABLE
 
60
      RESULT_VARIABLE
 
61
        PERL_VERSION_RESULT_VARIABLE
 
62
  )
 
63
  if (NOT PERL_VERSION_RESULT_VARIABLE)
 
64
    string(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION ${PERL_VERSION_OUTPUT_VARIABLE})
 
65
  endif (NOT PERL_VERSION_RESULT_VARIABLE)
 
66
 
 
67
  ### PERL_ARCHNAME
 
68
  execute_process(
 
69
    COMMAND
 
70
      ${PERL_EXECUTABLE} -V:archname
 
71
      OUTPUT_VARIABLE
 
72
        PERL_ARCHNAME_OUTPUT_VARIABLE
 
73
      RESULT_VARIABLE
 
74
        PERL_ARCHNAME_RESULT_VARIABLE
 
75
  )
 
76
  if (NOT PERL_ARCHNAME_RESULT_VARIABLE)
 
77
    string(REGEX REPLACE "archname='([^']+)'.*" "\\1" PERL_ARCHNAME ${PERL_ARCHNAME_OUTPUT_VARIABLE})
 
78
  endif (NOT PERL_ARCHNAME_RESULT_VARIABLE)
 
79
 
 
80
 
 
81
 
 
82
  ### PERL_EXTRA_C_FLAGS
 
83
  execute_process(
 
84
    COMMAND
 
85
      ${PERL_EXECUTABLE} -V:cppflags
 
86
    OUTPUT_VARIABLE
 
87
      PERL_CPPFLAGS_OUTPUT_VARIABLE
 
88
    RESULT_VARIABLE
 
89
      PERL_CPPFLAGS_RESULT_VARIABLE
 
90
    )
 
91
  if (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
 
92
    string(REGEX REPLACE "cppflags='([^']+)'.*" "\\1" PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
 
93
  endif (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
 
94
 
 
95
  ### PERL_SITESEARCH
 
96
  execute_process(
 
97
    COMMAND
 
98
      ${PERL_EXECUTABLE} -V:installsitesearch
 
99
    OUTPUT_VARIABLE
 
100
      PERL_SITESEARCH_OUTPUT_VARIABLE
 
101
    RESULT_VARIABLE
 
102
      PERL_SITESEARCH_RESULT_VARIABLE
 
103
  )
 
104
  if (NOT PERL_SITESEARCH_RESULT_VARIABLE)
 
105
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITESEARCH ${PERL_SITESEARCH_OUTPUT_VARIABLE})
 
106
  endif (NOT PERL_SITESEARCH_RESULT_VARIABLE)
 
107
 
 
108
  ### PERL_SITELIB
 
109
  execute_process(
 
110
    COMMAND
 
111
      ${PERL_EXECUTABLE} -V:installsitelib
 
112
    OUTPUT_VARIABLE
 
113
      PERL_SITELIB_OUTPUT_VARIABLE
 
114
    RESULT_VARIABLE
 
115
      PERL_SITELIB_RESULT_VARIABLE
 
116
  )
 
117
  if (NOT PERL_SITELIB_RESULT_VARIABLE)
 
118
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITELIB ${PERL_SITELIB_OUTPUT_VARIABLE})
 
119
  endif (NOT PERL_SITELIB_RESULT_VARIABLE)
 
120
 
 
121
  ### PERL_VENDORARCH
 
122
  execute_process(
 
123
    COMMAND
 
124
      ${PERL_EXECUTABLE} -V:installvendorarch
 
125
    OUTPUT_VARIABLE
 
126
      PERL_VENDORARCH_OUTPUT_VARIABLE
 
127
    RESULT_VARIABLE
 
128
      PERL_VENDORARCH_RESULT_VARIABLE
 
129
    )
 
130
  if (NOT PERL_VENDORARCH_RESULT_VARIABLE)
 
131
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORARCH ${PERL_VENDORARCH_OUTPUT_VARIABLE})
 
132
  endif (NOT PERL_VENDORARCH_RESULT_VARIABLE)
 
133
 
 
134
  ### PERL_VENDORLIB
 
135
  execute_process(
 
136
    COMMAND
 
137
      ${PERL_EXECUTABLE} -V:installvendorlib
 
138
    OUTPUT_VARIABLE
 
139
      PERL_VENDORLIB_OUTPUT_VARIABLE
 
140
    RESULT_VARIABLE
 
141
      PERL_VENDORLIB_RESULT_VARIABLE
 
142
  )
 
143
  if (NOT PERL_VENDORLIB_RESULT_VARIABLE)
 
144
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORLIB ${PERL_VENDORLIB_OUTPUT_VARIABLE})
 
145
  endif (NOT PERL_VENDORLIB_RESULT_VARIABLE)
 
146
 
 
147
  ### PERL_ARCHLIB
 
148
  execute_process(
 
149
    COMMAND
 
150
      ${PERL_EXECUTABLE} -V:installarchlib
 
151
      OUTPUT_VARIABLE
 
152
        PERL_ARCHLIB_OUTPUT_VARIABLE
 
153
      RESULT_VARIABLE
 
154
        PERL_ARCHLIB_RESULT_VARIABLE
 
155
  )
 
156
  if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
 
157
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
 
158
  endif (NOT PERL_ARCHLIB_RESULT_VARIABLE)
 
159
 
 
160
  ### PERL_PRIVLIB
 
161
  execute_process(
 
162
    COMMAND
 
163
      ${PERL_EXECUTABLE} -V:installprivlib
 
164
    OUTPUT_VARIABLE
 
165
      PERL_PRIVLIB_OUTPUT_VARIABLE
 
166
    RESULT_VARIABLE
 
167
      PERL_PRIVLIB_RESULT_VARIABLE
 
168
  )
 
169
  if (NOT PERL_PRIVLIB_RESULT_VARIABLE)
 
170
    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_PRIVLIB ${PERL_PRIVLIB_OUTPUT_VARIABLE})
 
171
  endif (NOT PERL_PRIVLIB_RESULT_VARIABLE)
 
172
 
 
173
 
 
174
  ### PERL_POSSIBLE_INCLUDE_PATHS
 
175
  set(PERL_POSSIBLE_INCLUDE_PATHS
 
176
    ${PERL_ARCHLIB}/CORE
 
177
    /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
 
178
    /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
 
179
    /usr/lib/perl5/${PERL_VERSION}/CORE
 
180
    /usr/lib/perl/${PERL_VERSION}/CORE
 
181
    )
 
182
 
 
183
  ### PERL_POSSIBLE_LIB_PATHS
 
184
  set(PERL_POSSIBLE_LIB_PATHS
 
185
    ${PERL_ARCHLIB}/CORE
 
186
    /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
 
187
    /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
 
188
    /usr/lib/perl5/${PERL_VERSION}/CORE
 
189
    /usr/lib/perl/${PERL_VERSION}/CORE
 
190
  )
 
191
 
 
192
  ### PERL_POSSIBLE_LIBRARY_NAME
 
193
  execute_process(
 
194
    COMMAND
 
195
      ${PERL_EXECUTABLE} -V:libperl
 
196
    OUTPUT_VARIABLE
 
197
      PERL_LIBRARY_OUTPUT_VARIABLE
 
198
    RESULT_VARIABLE
 
199
      PERL_LIBRARY_RESULT_VARIABLE
 
200
  )
 
201
  if (NOT PERL_LIBRARY_RESULT_VARIABLE)
 
202
    foreach(_perl_lib_path ${PERL_POSSIBLE_LIB_PATHS})
 
203
      string(REGEX REPLACE "libperl='([^']+)'" "\\1" PERL_LIBRARY_OUTPUT_VARIABLE ${PERL_LIBRARY_OUTPUT_VARIABLE})
 
204
      set(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${_perl_lib_path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
 
205
    endforeach(_perl_lib_path ${PERL_POSSIBLE_LIB_PATHS})
 
206
  endif (NOT PERL_LIBRARY_RESULT_VARIABLE)
 
207
 
 
208
  ### PERL_INCLUDE_PATH
 
209
  find_path(PERL_INCLUDE_PATH
 
210
    NAMES
 
211
      perl.h
 
212
    PATHS
 
213
      ${PERL_POSSIBLE_INCLUDE_PATHS}
 
214
  )
 
215
  
 
216
  ### PERL_LIBRARY
 
217
  find_library(PERL_LIBRARY
 
218
    NAMES
 
219
      ${PERL_POSSIBLE_LIBRARY_NAME}
 
220
      perl${PERL_VERSION}
 
221
      perl
 
222
    PATHS
 
223
      ${PERL_POSSIBLE_LIB_PATHS}
 
224
  )
 
225
 
 
226
endif (PERL_EXECUTABLE)
54
227
 
55
228
# handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if 
56
229
# all listed variables are TRUE
57
230
INCLUDE(FindPackageHandleStandardArgs)
58
231
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH)
59
232
 
 
233
# Introduced after CMake 2.6.4 to bring module into compliance
 
234
set(PERL_INCLUDE_DIR  ${PERL_INCLUDE_PATH})
 
235
set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH})
 
236
set(PERL_LIBRARIES    ${PERL_LIBRARY})
60
237
 
61
 
MARK_AS_ADVANCED(
 
238
mark_as_advanced(
62
239
  PERL_INCLUDE_PATH
63
240
  PERL_EXECUTABLE
64
241
  PERL_LIBRARY
65
 
  )
 
242
)