STYLE: Nightly Version update
[cmake.git] / Modules / FindPerlLibs.cmake
blobdfdc47f8c34f5c65c1ce480d52965880c0ef0b08
2 # This module finds if PERL is installed and determines where the include files
3 # and libraries are. It also determines what the name of the library is. This
4 # code sets the following variables:
6 #  PERL_INCLUDE_PATH       = path to where object.h can be found
7 #  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
16   )
18 SET(PERL_POSSIBLE_LIB_PATHS
19   /usr/lib
20   )
22 FIND_PATH(PERL_INCLUDE_PATH perl.h
23   ${PERL_POSSIBLE_INCLUDE_PATHS})
26 FIND_PROGRAM(PERL_EXECUTABLE
27   NAMES perl
28   PATHS
29   /usr/bin
30   /usr/local/bin
31   )
33 IF(PERL_EXECUTABLE)
34   EXEC_PROGRAM(${PERL_EXECUTABLE}
35     ARGS -e "'use Config; print $Config{libperl}, \"\\n\"'"
36     OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT_VARIABLE
37     RETURN_VALUE PERL_LIBRARY_RETURN_VALUE
38     )
39   IF(NOT PERL_LIBRARY_RETURN_VALUE)
40     FOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
41       SET(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
42     ENDFOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
43   ENDIF(NOT PERL_LIBRARY_RETURN_VALUE)
44   EXEC_PROGRAM(${PERL_EXECUTABLE}
45     ARGS -e "'use Config; print $Config{cppflags}, \"\\n\"'"
46     OUTPUT_VARIABLE PERL_CPPFLAGS_OUTPUT_VARIABLE
47     RETURN_VALUE PERL_CPPFLAGS_RETURN_VALUE
48     )
49   IF(NOT PERL_CPPFLAGS_RETURN_VALUE)
50     SET(PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
51     SEPARATE_ARGUMENTS(PERL_EXTRA_C_FLAGS)
52   ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE)
53 ENDIF(PERL_EXECUTABLE)
55 FIND_LIBRARY(PERL_LIBRARY
56   NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
57   PATHS ${PERL_POSSIBLE_LIB_PATHS}
58   )
60 MARK_AS_ADVANCED(
61   PERL_INCLUDE_PATH
62   PERL_EXECUTABLE
63   PERL_LIBRARY
64   )