3
3
# and libraries are. It also determines what the name of the library is. This
4
4
# code sets the following variables:
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
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
18
SET(PERL_POSSIBLE_LIB_PATHS
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)
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
23
#=============================================================================
24
# Copyright 2004-2009 Kitware, Inc.
26
# Distributed under the OSI-approved BSD License (the "License");
27
# see accompanying file Copyright.txt for details.
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.)
25
36
# find the 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
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
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)
50
FIND_LIBRARY(PERL_LIBRARY
51
NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
52
PATHS ${PERL_POSSIBLE_LIB_PATHS}
43
${PERL_EXECUTABLE} -V:prefix
45
PERL_PREFIX_OUTPUT_VARIABLE
47
PERL_PREFIX_RESULT_VARIABLE
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)
57
${PERL_EXECUTABLE} -V:version
59
PERL_VERSION_OUTPUT_VARIABLE
61
PERL_VERSION_RESULT_VARIABLE
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)
70
${PERL_EXECUTABLE} -V:archname
72
PERL_ARCHNAME_OUTPUT_VARIABLE
74
PERL_ARCHNAME_RESULT_VARIABLE
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)
82
### PERL_EXTRA_C_FLAGS
85
${PERL_EXECUTABLE} -V:cppflags
87
PERL_CPPFLAGS_OUTPUT_VARIABLE
89
PERL_CPPFLAGS_RESULT_VARIABLE
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)
98
${PERL_EXECUTABLE} -V:installsitesearch
100
PERL_SITESEARCH_OUTPUT_VARIABLE
102
PERL_SITESEARCH_RESULT_VARIABLE
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)
111
${PERL_EXECUTABLE} -V:installsitelib
113
PERL_SITELIB_OUTPUT_VARIABLE
115
PERL_SITELIB_RESULT_VARIABLE
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)
124
${PERL_EXECUTABLE} -V:installvendorarch
126
PERL_VENDORARCH_OUTPUT_VARIABLE
128
PERL_VENDORARCH_RESULT_VARIABLE
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)
137
${PERL_EXECUTABLE} -V:installvendorlib
139
PERL_VENDORLIB_OUTPUT_VARIABLE
141
PERL_VENDORLIB_RESULT_VARIABLE
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)
150
${PERL_EXECUTABLE} -V:installarchlib
152
PERL_ARCHLIB_OUTPUT_VARIABLE
154
PERL_ARCHLIB_RESULT_VARIABLE
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)
163
${PERL_EXECUTABLE} -V:installprivlib
165
PERL_PRIVLIB_OUTPUT_VARIABLE
167
PERL_PRIVLIB_RESULT_VARIABLE
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)
174
### PERL_POSSIBLE_INCLUDE_PATHS
175
set(PERL_POSSIBLE_INCLUDE_PATHS
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
183
### PERL_POSSIBLE_LIB_PATHS
184
set(PERL_POSSIBLE_LIB_PATHS
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
192
### PERL_POSSIBLE_LIBRARY_NAME
195
${PERL_EXECUTABLE} -V:libperl
197
PERL_LIBRARY_OUTPUT_VARIABLE
199
PERL_LIBRARY_RESULT_VARIABLE
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)
208
### PERL_INCLUDE_PATH
209
find_path(PERL_INCLUDE_PATH
213
${PERL_POSSIBLE_INCLUDE_PATHS}
217
find_library(PERL_LIBRARY
219
${PERL_POSSIBLE_LIBRARY_NAME}
223
${PERL_POSSIBLE_LIB_PATHS}
226
endif (PERL_EXECUTABLE)
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)
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})