FindPerlLibs.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. SEPARATE_ARGUMENTS(PERL_EXTRA_C_FLAGS)
  41. ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE)
  42. ENDIF(PERL_EXECUTABLE)
  43. FIND_LIBRARY(PERL_LIBRARY
  44. NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
  45. PATHS ${PERL_POSSIBLE_LIB_PATHS}
  46. )
  47. # handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if
  48. # all listed variables are TRUE
  49. INCLUDE(FindPackageHandleStandardArgs)
  50. FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH)
  51. MARK_AS_ADVANCED(
  52. PERL_INCLUDE_PATH
  53. PERL_EXECUTABLE
  54. PERL_LIBRARY
  55. )