Go to the documentation of this file.00001 ##############################################################################
00002 # @file FindPerlLibs.cmake
00003 # @brief Find Perl libraries. Fixes issue with CMake's default FindPerlLibs.
00004 #
00005 # @sa http://www.cmake.org/pipermail/cmake/2008-July/022638.html
00006 #
00007 # Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br />
00008 # See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file.
00009 #
00010 # Contact: SBIA Group <sbia-software at uphs.upenn.edu>
00011 #
00012 # @ingroup CMakeFindModules
00013 ##############################################################################
00014
00015 # ----------------------------------------------------------------------------
00016 # use CMake's FindPerlLibs.cmake module
00017 set (CMAKE_MODULE_PATH_BACKUP "${CMAKE_MODULE_PATH}")
00018 set (PerlLIbs_FIND_REQUIRED_BACKUP "${PerlLibs_FIND_REQUIRED}")
00019 set (PerlLIbs_FIND_QUIETLY_BACKUP "${PerlLibs_FIND_QUIETLY}")
00020 set (CMAKE_MODULE_PATH)
00021 set (PerlLibs_FIND_REQUIRED FALSE)
00022 set (PerlLibs_FIND_QUIETLY TRUE)
00023
00024 find_package (PerlLibs)
00025
00026 set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_BACKUP}")
00027 set (PerlLIbs_FIND_REQUIRED "${PerlLibs_FIND_REQUIRED_BACKUP}")
00028 set (PerlLIbs_FIND_QUIETLY "${PerlLibs_FIND_QUIETLY_BACKUP}")
00029 set (PerlLibs_FIND_REQUIRED_BACKUP)
00030 set (PerlLibs_FIND_QUIETLY_BACKUP)
00031 set (CMAKE_MODULE_PATH_BACKUP)
00032
00033 # ----------------------------------------------------------------------------
00034 # try to fix any issues
00035 if (PERL_EXECUTABLE)
00036 execute_process (
00037 COMMAND "${PERL_EXECUTABLE}" -MConfig -e "print \$Config{version}"
00038 OUTPUT_VARIABLE PERL_OUTPUT
00039 RESULT_VARIABLE PERL_RETURN_VALUE
00040 )
00041 if (PERL_RETURN_VALUE EQUAL 0)
00042 set (PERL_VERSION ${PERL_OUTPUT})
00043 endif ()
00044
00045 # try to fix failure in PERL_INCLUDE_PATH
00046 if (PERL_INCLUDE_PATH MATCHES ".*-NOTFOUND")
00047 execute_process (
00048 COMMAND "${PERL_EXECUTABLE}" -MConfig -e "print \$Config{archlibexp}"
00049 OUTPUT_VARIABLE PERL_OUTPUT
00050 RESULT_VARIABLE PERL_RETURN_VALUE
00051 )
00052 if (NOT PERL_RETURN_VALUE)
00053 find_path (PERL_INCLUDE_PATH perl.h "${PERL_OUTPUT}/CORE")
00054 endif ()
00055 endif ()
00056
00057 # try to fix failure in PERL_LIBRARY
00058 IF (PERL_LIBRARY MATCHES ".*-NOTFOUND")
00059 execute_process (
00060 COMMAND "${PERL_EXECUTABLE}" -MConfig -e "print \$Config{libperl}"
00061 OUTPUT_VARIABLE PERL_OUTPUT
00062 RESULT_VARIABLE PERL_RETURN_VALUE
00063 )
00064 if (NOT PERL_RETURN_VALUE)
00065 find_library (PERL_LIBRARY NAMES "${PERL_OUTPUT}" PATHS "${PERL_INCLUDE_PATH}")
00066 endif ()
00067 endif ()
00068 endif ()
00069
00070 # ----------------------------------------------------------------------------
00071 # handle the QUIETLY and REQUIRED arguments and set *_FOUND to TRUE
00072 # if all listed variables are found or TRUE
00073 include (FindPackageHandleStandardArgs)
00074
00075 find_package_handle_standard_args (
00076 PerlLibs
00077 REQUIRED_VARS
00078 PERL_LIBRARY
00079 PERL_INCLUDE_PATH
00080 VERSION_VAR
00081 PERL_VERSION
00082 )
00083
00084 set (PerlLibs_FOUND "${PERLLIBS_FOUND}")