You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

160 lines
5.3 KiB

# Find the FreeImage library.
#
# This module defines
# FREEIMAGE_FOUND - True if FREEIMAGE was found.
# FREEIMAGE_INCLUDE_DIRS - Include directories for FREEIMAGE headers.
# FREEIMAGE_LIBRARIES - Libraries for FREEIMAGE.
#
# To specify an additional directory to search, set FREEIMAGE_ROOT.
#
# Copyright (c) 2010, Ewen Cheslack-Postava
# Based on FindSQLite3.cmake by:
# Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl>
# Extended by Siddhartha Chaudhuri, 2008.
#
# Redistribution and use is allowed according to the terms of the BSD license.
#
SET(FREEIMAGE_FOUND FALSE)
SET(FREEIMAGE_INCLUDE_DIRS)
SET(FREEIMAGE_LIBRARIES)
SET(SEARCH_PATHS
$ENV{ProgramFiles}/freeimage/include
$ENV{SystemDrive}/freeimage/include
$ENV{ProgramFiles}/freeimage
$ENV{SystemDrive}/freeimage
)
IF(FREEIMAGE_ROOT)
SET(SEARCH_PATHS
${FREEIMAGE_ROOT}
${FREEIMAGE_ROOT}/include
${SEARCH_PATHS}
)
ENDIF()
IF(ANDROID)
set(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include")
ELSE()
message("123 ${FREEIMAGE_INCLUDE_DIRS} ${SEARCH_PATHS}")
FIND_PATH(FREEIMAGE_INCLUDE_DIRS
NAMES FreeImage.h
PATHS ${SEARCH_PATHS}
NO_DEFAULT_PATH)
message("123 ${FREEIMAGE_INCLUDE_DIRS}")
ENDIF()
IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations
set(FREEIMAGE_ROOT CACHE PATH "Path to FreeImage lib and header")
FIND_PATH(FREEIMAGE_INCLUDE_DIRS
NAMES FreeImage.h
PATHS ${FREEIMAGE_ROOT}
NO_DEFAULT_PATH)
ENDIF(NOT FREEIMAGE_INCLUDE_DIRS)
SET(FREEIMAGE_LIBRARY_DIRS)
IF(FREEIMAGE_ROOT)
SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT})
IF(ANDROID)
SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI})
ELSE()
IF(EXISTS "${FREEIMAGE_ROOT}/lib")
SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib)
ENDIF()
IF(EXISTS "${FREEIMAGE_ROOT}/lib/static")
SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib/static)
ENDIF()
ENDIF()
ENDIF()
# FREEIMAGE
# Without system dirs
IF(ANDROID)
SET(FREEIMAGE_LIBRARY ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI}/libFreeImage.a)
ELSE()
FIND_LIBRARY(FREEIMAGE_LIBRARY
NAMES FreeImage
PATHS ${FREEIMAGE_LIBRARY_DIRS}
NO_DEFAULT_PATH
)
ENDIF()
IF(NOT FREEIMAGE_LIBRARY) # now look in system locations
FIND_LIBRARY(FREEIMAGE_LIBRARY NAMES freeimage)
ENDIF(NOT FREEIMAGE_LIBRARY)
IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations
FIND_PATH(FREEIMAGE_INCLUDE_DIRS NAMES FreeImage.h)
ENDIF(NOT FREEIMAGE_INCLUDE_DIRS)
SET(FREEIMAGE_LIBRARIES)
IF(FREEIMAGE_LIBRARY)
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY})
# now find dependencies
if(MSVC)
SET(FREEIMAGE_DEPENDENCIES FreeImageToolkit jpeg LibTIFF4 Metadata libpng16 zlibstatic)
else()
SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4)
endif()
FOREACH(FREEIMAGE_DEP IN LISTS FREEIMAGE_DEPENDENCIES)
IF(ANDROID)
SET(FREEIMAGE_DEP_${FREEIMAGE_DEP} ${FREEIMAGE_LIBRARY_DIRS}/lib${FREEIMAGE_DEP}.a)
ELSE()
SET(FREEIMAGE_DEP_${FREEIMAGE_DEP})
FIND_LIBRARY(FREEIMAGE_DEP_${FREEIMAGE_DEP}
NAMES ${FREEIMAGE_DEP}
PATHS ${FREEIMAGE_LIBRARY_DIRS}
NO_DEFAULT_PATH
)
ENDIF()
if(FREEIMAGE_DEP_${FREEIMAGE_DEP})
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} ${FREEIMAGE_DEP_${FREEIMAGE_DEP}})
endif()
endforeach()
ENDIF()
#-----------------------------------------------------------------------
#emscripten *.bc-files with cmake:
if(EMSCRIPTEN)
if(EXISTS "${FREEIMAGE_ROOT}/include/FreeImage.h")
message("emscripten: ${FREEIMAGE_ROOT}/include/FreeImage.h exists.")
SET(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include/")
endif()
message("FREEIMAGE_INCLUDE_DIRS:${FREEIMAGE_INCLUDE_DIRS}")
if(EXISTS "${FREEIMAGE_ROOT}/lib/libFreeImage.bc")
message("emscripten: ${FREEIMAGE_ROOT}/lib/libFreeImage.bc exists.")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImage.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libjpeg.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libMetadata.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libpng16.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libz.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImageToolkit.bc")
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libLibTIFF4.bc")
SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4)
else()
message(ERROR "emscripten: ${FREEIMAGE_ROOT}/lib/libflower.bc NOT exists.")
endif()
endif()
#-----------------------------------------------------------------------
IF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
SET(FREEIMAGE_FOUND TRUE)
IF(NOT FREEIMAGE_FIND_QUIETLY)
MESSAGE(STATUS "Found FreeImage: headers at ${FREEIMAGE_INCLUDE_DIRS}, libraries at ${FREEIMAGE_LIBRARY_DIRS} :: ${FREEIMAGE_LIBRARIES}")
ENDIF(NOT FREEIMAGE_FIND_QUIETLY)
ELSE(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
SET(FREEIMAGE_FOUND FALSE)
IF(FREEIMAGE_FIND_REQUIRED)
MESSAGE(STATUS "FreeImage not found")
ENDIF(FREEIMAGE_FIND_REQUIRED)
ENDIF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
MARK_AS_ADVANCED(FREEIMAGE_INCLUDE_DIRS FREEIMAGE_LIBRARIES)