# - Find Perl # This module finds detailed info about how Perl is installed and determines # where the include files and libraries are. This code sets the following # variables: # # PERL_INCLUDE_PATH = path to where perl.h can be found if(PERL_INCLUDE_PATH) # Already in cache, be silent SET(PERL_HEADERS_FOUND TRUE) endif (PERL_INCLUDE_PATH) IF(PERL_EXECUTABLE) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{archlib}" OUTPUT_VARIABLE PERL_ARCH_LIB_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitearch}" OUTPUT_VARIABLE PERL_SITE_ARCH_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitelib}" OUTPUT_VARIABLE PERL_SITE_LIB_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB_DIR) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{version}" OUTPUT_VARIABLE PERL_VERSION) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccflags}" OUTPUT_VARIABLE PERL_CXX_FLAGS) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccdlflags}" OUTPUT_VARIABLE PERL_CCDL_FLAGS) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -MFile::Spec -e "print '-L' . File::Spec->catdir(\$Config{archlibexp}, 'CORE')" OUTPUT_VARIABLE PERL_EXTRA_LIB_PATHS) EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{libs}" OUTPUT_VARIABLE PERL_LIBS) FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h PATHS ${PERL_ARCH_LIB_DIR}/CORE ) if(PERL_INCLUDE_PATH) SET(PERL_HEADERS_FOUND TRUE) endif (PERL_INCLUDE_PATH) MARK_AS_ADVANCED( PERL_INCLUDE_PATH ) ENDIF(PERL_EXECUTABLE) IF(PERL_HEADERS_FOUND) IF(NOT PERL_FIND_QUIETLY) MESSAGE(STATUS "Perl headers found: ${PERL_INCLUDE_PATH}") ENDIF(NOT PERL_FIND_QUIETLY) ELSE(PERL_HEADERS_FOUND) IF(PERL_FIND_HEADERS_REQUIRED) MESSAGE(FATAL_ERROR "Could not find Perl headers") ENDIF(PERL_FIND_HEADERS_REQUIRED) ENDIF(PERL_HEADERS_FOUND) IF ( PERL_LIBRARY MATCHES .*-NOTFOUND ) EXECUTE_PROCESS ( COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{libperl}" OUTPUT_VARIABLE PERL_OUTPUT RESULT_VARIABLE PERL_RETURN_VALUE ) IF ( NOT PERL_RETURN_VALUE ) FIND_LIBRARY ( PERL_LIBRARY NAMES ${PERL_OUTPUT} PATHS ${PERL_INCLUDE_PATH} ) ENDIF ( NOT PERL_RETURN_VALUE ) ENDIF ( PERL_LIBRARY MATCHES .*-NOTFOUND )