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

1 year ago
  1. # Find the FreeImage library.
  2. #
  3. # This module defines
  4. # FREEIMAGE_FOUND - True if FREEIMAGE was found.
  5. # FREEIMAGE_INCLUDE_DIRS - Include directories for FREEIMAGE headers.
  6. # FREEIMAGE_LIBRARIES - Libraries for FREEIMAGE.
  7. #
  8. # To specify an additional directory to search, set FREEIMAGE_ROOT.
  9. #
  10. # Copyright (c) 2010, Ewen Cheslack-Postava
  11. # Based on FindSQLite3.cmake by:
  12. # Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl>
  13. # Extended by Siddhartha Chaudhuri, 2008.
  14. #
  15. # Redistribution and use is allowed according to the terms of the BSD license.
  16. #
  17. SET(FREEIMAGE_FOUND FALSE)
  18. SET(FREEIMAGE_INCLUDE_DIRS)
  19. SET(FREEIMAGE_LIBRARIES)
  20. SET(SEARCH_PATHS
  21. $ENV{ProgramFiles}/freeimage/include
  22. $ENV{SystemDrive}/freeimage/include
  23. $ENV{ProgramFiles}/freeimage
  24. $ENV{SystemDrive}/freeimage
  25. )
  26. IF(FREEIMAGE_ROOT)
  27. SET(SEARCH_PATHS
  28. ${FREEIMAGE_ROOT}
  29. ${FREEIMAGE_ROOT}/include
  30. ${SEARCH_PATHS}
  31. )
  32. ENDIF()
  33. IF(ANDROID)
  34. set(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include")
  35. ELSE()
  36. message("123 ${FREEIMAGE_INCLUDE_DIRS} ${SEARCH_PATHS}")
  37. FIND_PATH(FREEIMAGE_INCLUDE_DIRS
  38. NAMES FreeImage.h
  39. PATHS ${SEARCH_PATHS}
  40. NO_DEFAULT_PATH)
  41. message("123 ${FREEIMAGE_INCLUDE_DIRS}")
  42. ENDIF()
  43. IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations
  44. set(FREEIMAGE_ROOT CACHE PATH "Path to FreeImage lib and header")
  45. FIND_PATH(FREEIMAGE_INCLUDE_DIRS
  46. NAMES FreeImage.h
  47. PATHS ${FREEIMAGE_ROOT}
  48. NO_DEFAULT_PATH)
  49. ENDIF(NOT FREEIMAGE_INCLUDE_DIRS)
  50. SET(FREEIMAGE_LIBRARY_DIRS)
  51. IF(FREEIMAGE_ROOT)
  52. SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT})
  53. IF(ANDROID)
  54. SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI})
  55. ELSE()
  56. IF(EXISTS "${FREEIMAGE_ROOT}/lib")
  57. SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib)
  58. ENDIF()
  59. IF(EXISTS "${FREEIMAGE_ROOT}/lib/static")
  60. SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib/static)
  61. ENDIF()
  62. ENDIF()
  63. ENDIF()
  64. # FREEIMAGE
  65. # Without system dirs
  66. IF(ANDROID)
  67. SET(FREEIMAGE_LIBRARY ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI}/libFreeImage.a)
  68. ELSE()
  69. FIND_LIBRARY(FREEIMAGE_LIBRARY
  70. NAMES FreeImage
  71. PATHS ${FREEIMAGE_LIBRARY_DIRS}
  72. NO_DEFAULT_PATH
  73. )
  74. ENDIF()
  75. IF(NOT FREEIMAGE_LIBRARY) # now look in system locations
  76. FIND_LIBRARY(FREEIMAGE_LIBRARY NAMES freeimage)
  77. ENDIF(NOT FREEIMAGE_LIBRARY)
  78. IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations
  79. FIND_PATH(FREEIMAGE_INCLUDE_DIRS NAMES FreeImage.h)
  80. ENDIF(NOT FREEIMAGE_INCLUDE_DIRS)
  81. SET(FREEIMAGE_LIBRARIES)
  82. IF(FREEIMAGE_LIBRARY)
  83. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY})
  84. # now find dependencies
  85. if(MSVC)
  86. SET(FREEIMAGE_DEPENDENCIES FreeImageToolkit jpeg LibTIFF4 Metadata libpng16 zlibstatic)
  87. else()
  88. SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4)
  89. endif()
  90. FOREACH(FREEIMAGE_DEP IN LISTS FREEIMAGE_DEPENDENCIES)
  91. IF(ANDROID)
  92. SET(FREEIMAGE_DEP_${FREEIMAGE_DEP} ${FREEIMAGE_LIBRARY_DIRS}/lib${FREEIMAGE_DEP}.a)
  93. ELSE()
  94. SET(FREEIMAGE_DEP_${FREEIMAGE_DEP})
  95. FIND_LIBRARY(FREEIMAGE_DEP_${FREEIMAGE_DEP}
  96. NAMES ${FREEIMAGE_DEP}
  97. PATHS ${FREEIMAGE_LIBRARY_DIRS}
  98. NO_DEFAULT_PATH
  99. )
  100. ENDIF()
  101. if(FREEIMAGE_DEP_${FREEIMAGE_DEP})
  102. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} ${FREEIMAGE_DEP_${FREEIMAGE_DEP}})
  103. endif()
  104. endforeach()
  105. ENDIF()
  106. #-----------------------------------------------------------------------
  107. #emscripten *.bc-files with cmake:
  108. if(EMSCRIPTEN)
  109. if(EXISTS "${FREEIMAGE_ROOT}/include/FreeImage.h")
  110. message("emscripten: ${FREEIMAGE_ROOT}/include/FreeImage.h exists.")
  111. SET(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include/")
  112. endif()
  113. message("FREEIMAGE_INCLUDE_DIRS:${FREEIMAGE_INCLUDE_DIRS}")
  114. if(EXISTS "${FREEIMAGE_ROOT}/lib/libFreeImage.bc")
  115. message("emscripten: ${FREEIMAGE_ROOT}/lib/libFreeImage.bc exists.")
  116. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImage.bc")
  117. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libjpeg.bc")
  118. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libMetadata.bc")
  119. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libpng16.bc")
  120. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libz.bc")
  121. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImageToolkit.bc")
  122. SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libLibTIFF4.bc")
  123. SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4)
  124. else()
  125. message(ERROR "emscripten: ${FREEIMAGE_ROOT}/lib/libflower.bc NOT exists.")
  126. endif()
  127. endif()
  128. #-----------------------------------------------------------------------
  129. IF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
  130. SET(FREEIMAGE_FOUND TRUE)
  131. IF(NOT FREEIMAGE_FIND_QUIETLY)
  132. MESSAGE(STATUS "Found FreeImage: headers at ${FREEIMAGE_INCLUDE_DIRS}, libraries at ${FREEIMAGE_LIBRARY_DIRS} :: ${FREEIMAGE_LIBRARIES}")
  133. ENDIF(NOT FREEIMAGE_FIND_QUIETLY)
  134. ELSE(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
  135. SET(FREEIMAGE_FOUND FALSE)
  136. IF(FREEIMAGE_FIND_REQUIRED)
  137. MESSAGE(STATUS "FreeImage not found")
  138. ENDIF(FREEIMAGE_FIND_REQUIRED)
  139. ENDIF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES)
  140. MARK_AS_ADVANCED(FREEIMAGE_INCLUDE_DIRS FREEIMAGE_LIBRARIES)