# 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, # 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)