[Cmake-commits] [cmake-commits] lowman committed FindPerlLibs.cmake 1.9 1.10

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Jul 17 23:31:19 EDT 2009


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv27555

Modified Files:
	FindPerlLibs.cmake 
Log Message:
ENH: Improve detection of perl.h/libperl, issue #7898


Index: FindPerlLibs.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindPerlLibs.cmake,v
retrieving revision 1.9
retrieving revision 1.10
diff -C 2 -d -r1.9 -r1.10
*** FindPerlLibs.cmake	1 Oct 2008 20:10:45 -0000	1.9
--- FindPerlLibs.cmake	18 Jul 2009 03:31:17 -0000	1.10
***************
*** 4,56 ****
  # code sets the following variables:
  #
  #  PERL_INCLUDE_PATH = path to where perl.h is found
  #  PERL_EXECUTABLE   = full path to the perl binary
  #
  
! SET(PERL_POSSIBLE_INCLUDE_PATHS
!   /usr/lib/perl/5.8.3/CORE
!   /usr/lib/perl/5.8.2/CORE
!   /usr/lib/perl/5.8.1/CORE
!   /usr/lib/perl/5.8.0/CORE
!   /usr/lib/perl/5.8/CORE
    )
  
! SET(PERL_POSSIBLE_LIB_PATHS
!   /usr/lib
    )
  
! FIND_PATH(PERL_INCLUDE_PATH perl.h
!   ${PERL_POSSIBLE_INCLUDE_PATHS})
  
- # find the perl executable
- INCLUDE(FindPerl)
  
  
! IF(PERL_EXECUTABLE)
!   EXEC_PROGRAM(${PERL_EXECUTABLE}
!     ARGS -e "'use Config; print \$Config{libperl}, \"\\n\"'"
!     OUTPUT_VARIABLE PERL_LIBRARY_OUTPUT_VARIABLE
!     RETURN_VALUE PERL_LIBRARY_RETURN_VALUE
      )
!   IF(NOT PERL_LIBRARY_RETURN_VALUE)
!     FOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
!       SET(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
!     ENDFOREACH(path ${PERL_POSSIBLE_LIB_PATHS})
!   ENDIF(NOT PERL_LIBRARY_RETURN_VALUE)
!   EXEC_PROGRAM(${PERL_EXECUTABLE}
!     ARGS -e "'use Config; print \$Config{cppflags}, \"\\n\"'"
!     OUTPUT_VARIABLE PERL_CPPFLAGS_OUTPUT_VARIABLE
!     RETURN_VALUE PERL_CPPFLAGS_RETURN_VALUE
      )
!   IF(NOT PERL_CPPFLAGS_RETURN_VALUE)
!     SET(PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
!   ENDIF(NOT PERL_CPPFLAGS_RETURN_VALUE)
! ENDIF(PERL_EXECUTABLE)
  
! FIND_LIBRARY(PERL_LIBRARY
!   NAMES ${PERL_POSSIBLE_LIBRARY_NAME} perl5.8.0
!   PATHS ${PERL_POSSIBLE_LIB_PATHS}
    )
  
  # handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if 
  # all listed variables are TRUE
--- 4,215 ----
  # code sets the following variables:
  #
+ #  PERLLIBS_FOUND    = True if perl.h & libperl were found
  #  PERL_INCLUDE_PATH = path to where perl.h is found
+ #  PERL_LIBRARY      = path to libperl
  #  PERL_EXECUTABLE   = full path to the perl binary
  #
+ #  The following variables are also available if needed
+ #  (introduced after CMake 2.6.4)
+ #
+ #  PERL_SITESEARCH    = path to the sitesearch install dir
+ #  PERL_SITELIB       = path to the sitelib install directory
+ #  PERL_VENDORARCH    = path to the vendor arch install directory
+ #  PERL_VENDORLIB     = path to the vendor lib install directory
+ #  PERL_ARCHLIB       = path to the arch lib install directory
+ #  PERL_PRIVLIB       = path to the priv lib install directory
+ #  PERL_EXTRA_C_FLAGS = Compilation flags used to build perl
+ #
  
! # find the perl executable
! include(FindPerl)
! 
! if (PERL_EXECUTABLE)
!   ### PERL_PREFIX
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:prefix
!       OUTPUT_VARIABLE
!         PERL_PREFIX_OUTPUT_VARIABLE
!       RESULT_VARIABLE
!         PERL_PREFIX_RESULT_VARIABLE
    )
  
!   if (NOT PERL_PREFIX_RESULT_VARIABLE)
!     string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
!   endif (NOT PERL_PREFIX_RESULT_VARIABLE)
! 
!   ### PERL_VERSION
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:version
!       OUTPUT_VARIABLE
!         PERL_VERSION_OUTPUT_VARIABLE
!       RESULT_VARIABLE
!         PERL_VERSION_RESULT_VARIABLE
    )
+   if (NOT PERL_VERSION_RESULT_VARIABLE)
+     string(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION ${PERL_VERSION_OUTPUT_VARIABLE})
+   endif (NOT PERL_VERSION_RESULT_VARIABLE)
  
!   ### PERL_ARCHNAME
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:archname
!       OUTPUT_VARIABLE
!         PERL_ARCHNAME_OUTPUT_VARIABLE
!       RESULT_VARIABLE
!         PERL_ARCHNAME_RESULT_VARIABLE
!   )
!   if (NOT PERL_ARCHNAME_RESULT_VARIABLE)
!     string(REGEX REPLACE "archname='([^']+)'.*" "\\1" PERL_ARCHNAME ${PERL_ARCHNAME_OUTPUT_VARIABLE})
!   endif (NOT PERL_ARCHNAME_RESULT_VARIABLE)
  
  
  
!   ### PERL_EXTRA_C_FLAGS
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:cppflags
!     OUTPUT_VARIABLE
!       PERL_CPPFLAGS_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_CPPFLAGS_RESULT_VARIABLE
      )
!   if (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
!     string(REGEX REPLACE "cppflags='([^']+)'.*" "\\1" PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
!   endif (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
! 
!   ### PERL_SITESEARCH
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installsitesearch
!     OUTPUT_VARIABLE
!       PERL_SITESEARCH_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_SITESEARCH_RESULT_VARIABLE
!   )
!   if (NOT PERL_SITESEARCH_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITESEARCH ${PERL_SITESEARCH_OUTPUT_VARIABLE})
!   endif (NOT PERL_SITESEARCH_RESULT_VARIABLE)
! 
!   ### PERL_SITELIB
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installsitelib
!     OUTPUT_VARIABLE
!       PERL_SITELIB_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_SITELIB_RESULT_VARIABLE
!   )
!   if (NOT PERL_SITELIB_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITELIB ${PERL_SITELIB_OUTPUT_VARIABLE})
!   endif (NOT PERL_SITELIB_RESULT_VARIABLE)
! 
!   ### PERL_VENDORARCH
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installvendorarch
!     OUTPUT_VARIABLE
!       PERL_VENDORARCH_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_VENDORARCH_RESULT_VARIABLE
      )
!   if (NOT PERL_VENDORARCH_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORARCH ${PERL_VENDORARCH_OUTPUT_VARIABLE})
!   endif (NOT PERL_VENDORARCH_RESULT_VARIABLE)
  
!   ### PERL_VENDORLIB
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installvendorlib
!     OUTPUT_VARIABLE
!       PERL_VENDORLIB_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_VENDORLIB_RESULT_VARIABLE
!   )
!   if (NOT PERL_VENDORLIB_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORLIB ${PERL_VENDORLIB_OUTPUT_VARIABLE})
!   endif (NOT PERL_VENDORLIB_RESULT_VARIABLE)
! 
!   ### PERL_ARCHLIB
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installarchlib
!       OUTPUT_VARIABLE
!         PERL_ARCHLIB_OUTPUT_VARIABLE
!       RESULT_VARIABLE
!         PERL_ARCHLIB_RESULT_VARIABLE
!   )
!   if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
!   endif (NOT PERL_ARCHLIB_RESULT_VARIABLE)
! 
!   ### PERL_PRIVLIB
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:installprivlib
!     OUTPUT_VARIABLE
!       PERL_PRIVLIB_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_PRIVLIB_RESULT_VARIABLE
!   )
!   if (NOT PERL_PRIVLIB_RESULT_VARIABLE)
!     string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_PRIVLIB ${PERL_PRIVLIB_OUTPUT_VARIABLE})
!   endif (NOT PERL_PRIVLIB_RESULT_VARIABLE)
! 
! 
!   ### PERL_POSSIBLE_INCLUDE_PATHS
!   set(PERL_POSSIBLE_INCLUDE_PATHS
!     /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
!     /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
!     /usr/lib/perl5/${PERL_VERSION}/CORE
!     /usr/lib/perl/${PERL_VERSION}/CORE
!     )
! 
!   ### PERL_POSSIBLE_LIB_PATHS
!   set(PERL_POSSIBLE_LIB_PATHS
!     ${PERL_ARCHLIB}/CORE
!     /usr/lib/perl5/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
!     /usr/lib/perl/${PERL_VERSION}/${PERL_ARCHNAME}/CORE
!     /usr/lib/perl5/${PERL_VERSION}/CORE
!     /usr/lib/perl/${PERL_VERSION}/CORE
!   )
! 
!   ### PERL_POSSIBLE_LIBRARY_NAME
!   execute_process(
!     COMMAND
!       ${PERL_EXECUTABLE} -V:libperl
!     OUTPUT_VARIABLE
!       PERL_LIBRARY_OUTPUT_VARIABLE
!     RESULT_VARIABLE
!       PERL_LIBRARY_RESULT_VARIABLE
!   )
!   if (NOT PERL_LIBRARY_RESULT_VARIABLE)
!     foreach(_perl_lib_path ${PERL_POSSIBLE_LIB_PATHS})
!       string(REGEX REPLACE "libperl='([^']+)'" "\\1" PERL_LIBRARY_OUTPUT_VARIABLE ${PERL_LIBRARY_OUTPUT_VARIABLE})
!       set(PERL_POSSIBLE_LIBRARY_NAME ${PERL_POSSIBLE_LIBRARY_NAME} "${_perl_lib_path}/${PERL_LIBRARY_OUTPUT_VARIABLE}")
!     endforeach(_perl_lib_path ${PERL_POSSIBLE_LIB_PATHS})
!   endif (NOT PERL_LIBRARY_RESULT_VARIABLE)
! 
!   ### PERL_INCLUDE_PATH
!   find_path(PERL_INCLUDE_PATH
!     NAMES
!       perl.h
!     PATHS
!       ${PERL_POSSIBLE_INCLUDE_PATHS}
!   )
!   
!   ### PERL_LIBRARY
!   find_library(PERL_LIBRARY
!     NAMES
!       ${PERL_POSSIBLE_LIBRARY_NAME}
!       perl${PERL_VERSION}
!       perl
!     PATHS
!       ${PERL_POSSIBLE_LIB_PATHS}
    )
  
+ endif (PERL_EXECUTABLE)
+ 
  # handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if 
  # all listed variables are TRUE
***************
*** 58,65 ****
  FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH)
  
  
! MARK_AS_ADVANCED(
    PERL_INCLUDE_PATH
    PERL_EXECUTABLE
    PERL_LIBRARY
!   )
--- 217,228 ----
  FIND_PACKAGE_HANDLE_STANDARD_ARGS(PerlLibs DEFAULT_MSG PERL_LIBRARY PERL_INCLUDE_PATH)
  
+ # Introduced after CMake 2.6.4 to bring module into compliance
+ set(PERL_INCLUDE_DIR  ${PERL_INCLUDE_PATH})
+ set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH})
+ set(PERL_LIBRARIES    ${PERL_LIBRARY})
  
! mark_as_advanced(
    PERL_INCLUDE_PATH
    PERL_EXECUTABLE
    PERL_LIBRARY
! )



More information about the Cmake-commits mailing list