FindPerlLibs.cmake 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # - Find Perl libraries
  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:
  5. #
  6. # PERL_INCLUDE_PATH = path to where perl.h is found
  7. # PERL_EXECUTABLE = full path to the perl binary
  8. #
  9. SET(PERL_POSSIBLE_INCLUDE_PATHS
  10. /usr/lib/perl/5.8.3/CORE
  11. /usr/lib/perl/5.8.2/CORE
  12. /usr/lib/perl/5.8.1/CORE
  13. /usr/lib/perl/5.8.0/CORE
  14. /usr/lib/perl/5.8/CORE
  15. )
  16. SET(PERL_POSSIBLE_LIB_PATHS
  17. /usr/lib
  18. )
  19. FIND_PATH(PERL_INCLUDE_PATH perl.h
  20. ${PERL_POSSIBLE_INCLUDE_PATHS})
  21. FIND_PROGRAM(PERL_EXECUTABLE perl )
  22. IF(PERL_EXECUTABLE)
  23. EXEC_PROGRAM(${PERL_EXECUTABLE}
  24. ARGS -e "'use Config; print \$Config{libperl}, \"\\n\"'"
  25. OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT_VARIABLE
  26. RETURN_VALUE PERL_LIBRARY_RETURN_VALUE
  27. )
  28. IF(NOT PERL_LIBRARY_RETURN_VALUE)
  29. FOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
  30. SET(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
  31. ENDFOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
  32. ENDIF(NOT PERL_LIBRARY_RETURN_VALUE)
  33. EXEC_PROGRAM(${PERL_EXECUTABLE}
  34. ARGS -e "'use Config; print \$Config{cppflags}, \"\\n\"'"
  35. OUTPUT_VARIABLE PERL_CPPFLAGS_OUTPUT_VARIABLE
  36. RETURN_VALUE PERL_CPPFLAGS_RETURN_VALUE
  37. )
  38. IF(NOT PERL_CPPFLAGS_RETURN_VALUE)
  39. SET(PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
  40. ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE)
  41. ENDIF(PERL_EXECUTABLE)
  42. FIND_LIBRARY(PERL_LIBRARY
  43. NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
  44. PATHS ${PERL_POSSIBLE_LIB_PATHS}
  45. )
  46. # handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if
  47. # all listed variables are TRUE
  48. INCLUDE(FindPackageHandleStandardArgs)
  49. FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH)
  50. MARK_AS_ADVANCED(
  51. PERL_INCLUDE_PATH
  52. PERL_EXECUTABLE
  53. PERL_LIBRARY
  54. )