1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
# - Find VIGRA
# Added to support Windows build but should work anywhere.
# After looking in UNIX standard places, tries wxWidgets build
# tree, which should have this package.
#
#
# reads cache variables
# defines cache variables
# VIGRA_INCLUDE_DIR, where to find headers
# VIGRA_LIBRARIES, list of release link libraries
# VIGRA_FOUND, If != "YES", error out as VIGRA is required
SET( VIGRA_FOUND "NO" )
IF(WIN32)
FIND_PATH(VIGRA_INCLUDE_DIR vigra/gaborfilter.hxx
PATHS ${SOURCE_BASE_DIR}/vigra/include
)
FIND_LIBRARY_WITH_DEBUG(VIGRA_LIBRARIES
WIN32_DEBUG_POSTFIX d
NAMES vigraimpex libvigraimpex
PATHS
${VIGRA_ROOT_PATH}
${VIGRA_ROOT_PATH}/Release
${VIGRA_ROOT_PATH}/lib
${SOURCE_BASE_DIR}/vigra/lib
)
ELSE(WIN32)
FIND_PATH(VIGRA_INCLUDE_DIR vigra/gaborfilter.hxx
/usr/local/include
/usr/include
/opt/local/include
)
FIND_LIBRARY(VIGRA_LIBRARIES
NAMES vigraimpex libvigraimpex
PATHS /usr/lib /usr/local/lib /opt/local/lib
)
ENDIF(WIN32)
IF (VIGRA_INCLUDE_DIR AND VIGRA_LIBRARIES)
SET(VIGRA_FOUND TRUE)
ENDIF (VIGRA_INCLUDE_DIR AND VIGRA_LIBRARIES)
IF (VIGRA_FOUND)
MESSAGE(STATUS "Found VIGRA: ${VIGRA_LIBRARIES}")
FIND_FILE(
VIGRA_CONFIG_VERSION_HXX
NAMES configVersion.hxx config_version.hxx
PATHS "${VIGRA_INCLUDE_DIR}/vigra/"
)
IF(NOT VIGRA_CONFIG_VERSION_HXX)
MESSAGE(FATAL_ERROR "Could not find vigra/configVersion.hxx or vigra/config_version.hxx. Your vigra installation seems to be corrupt.")
ENDIF()
FILE(STRINGS "${VIGRA_CONFIG_VERSION_HXX}" VIGRA_VERSION_HXX REGEX ".*#define +VIGRA_VERSION +\"")
STRING(REGEX REPLACE ".*#define +VIGRA_VERSION +\"([.0-9]+).*" "\\1" VIGRA_VERSION "${VIGRA_VERSION_HXX}")
IF(${VIGRA_VERSION} VERSION_EQUAL VIGRA_FIND_VERSION OR ${VIGRA_VERSION} VERSION_GREATER VIGRA_FIND_VERSION)
SET(VIGRA_VERSION_CHECK TRUE)
MESSAGE(STATUS "VIGRA version: ${VIGRA_VERSION}")
ELSE()
MESSAGE(FATAL_ERROR
"VIGRA lib is too old.\nHugin requires at least version 1.9.0, but found version ${VIGRA_VERSION}."
)
ENDIF()
# check if vigraimpex is linked against OpenEXR
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
FIND_PROGRAM(LDD_EXECUTABLE ldd)
IF(LDD_EXECUTABLE)
EXECUTE_PROCESS(
COMMAND ${LDD_EXECUTABLE} ${VIGRA_LIBRARIES}
OUTPUT_VARIABLE OUTPUT_LDD_VIGRA
OUTPUT_STRIP_TRAILING_WHITESPACE
)
STRING(TOLOWER "${OUTPUT_LDD_VIGRA}" OUTPUT_LDD_VIGRA_LOWER)
IF(NOT "${OUTPUT_LDD_VIGRA_LOWER}" MATCHES "libilmimf")
MESSAGE(FATAL_ERROR "Libvigraimpex found. But vigraimpex seems to compiled without OpenEXR support. OpenEXR support is required for Hugin.")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Could not check libraries on which vigraimpex depends. (ldd is missing)")
ENDIF()
ENDIF()
ELSE (VIGRA_FOUND)
MESSAGE(FATAL_ERROR "Could not find VIGRA")
ENDIF (VIGRA_FOUND)
MARK_AS_ADVANCED(
VIGRA_LIBRARIES
VIGRA_INCLUDE_DIR
)
|