FindPerlLibs.cmake
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}")