FindOpenColorIO.cmake 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. # - Find OpenColorIO library
  2. # Find the native OpenColorIO includes and library
  3. # This module defines
  4. # OPENCOLORIO_INCLUDE_DIRS, where to find OpenColorIO.h, Set when
  5. # OPENCOLORIO_INCLUDE_DIR is found.
  6. # OPENCOLORIO_LIBRARIES, libraries to link against to use OpenColorIO.
  7. # OPENCOLORIO_ROOT_DIR, The base directory to search for OpenColorIO.
  8. # This can also be an environment variable.
  9. # OPENCOLORIO_FOUND, If false, do not try to use OpenColorIO.
  10. #
  11. # also defined, but not for general use are
  12. # OPENCOLORIO_LIBRARY, where to find the OpenColorIO library.
  13. #=============================================================================
  14. # Copyright 2012 Blender Foundation.
  15. #
  16. # Distributed under the OSI-approved BSD License (the "License");
  17. # see accompanying file Copyright.txt for details.
  18. #
  19. # This software is distributed WITHOUT ANY WARRANTY; without even the
  20. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  21. # See the License for more information.
  22. #=============================================================================
  23. # If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
  24. IF(NOT OPENCOLORIO_ROOT_DIR AND NOT $ENV{OPENCOLORIO_ROOT_DIR} STREQUAL "")
  25. SET(OPENCOLORIO_ROOT_DIR $ENV{OPENCOLORIO_ROOT_DIR})
  26. ENDIF()
  27. SET(_opencolorio_FIND_COMPONENTS
  28. OpenColorIO
  29. yaml-cpp
  30. tinyxml
  31. )
  32. SET(_opencolorio_SEARCH_DIRS
  33. ${OPENCOLORIO_ROOT_DIR}
  34. /usr/local
  35. /sw # Fink
  36. /opt/local # DarwinPorts
  37. /opt/lib/ocio
  38. )
  39. FIND_PATH(OPENCOLORIO_INCLUDE_DIR
  40. NAMES
  41. OpenColorIO/OpenColorIO.h
  42. HINTS
  43. ${_opencolorio_SEARCH_DIRS}
  44. PATH_SUFFIXES
  45. include
  46. )
  47. SET(_opencolorio_LIBRARIES)
  48. FOREACH(COMPONENT ${_opencolorio_FIND_COMPONENTS})
  49. STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
  50. FIND_LIBRARY(OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY
  51. NAMES
  52. ${COMPONENT}
  53. HINTS
  54. ${_opencolorio_SEARCH_DIRS}
  55. PATH_SUFFIXES
  56. lib64 lib lib64/static lib/static
  57. )
  58. IF(OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY)
  59. LIST(APPEND _opencolorio_LIBRARIES "${OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY}")
  60. ENDIF()
  61. ENDFOREACH()
  62. # handle the QUIETLY and REQUIRED arguments and set OPENCOLORIO_FOUND to TRUE if
  63. # all listed variables are TRUE
  64. INCLUDE(FindPackageHandleStandardArgs)
  65. FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenColorIO DEFAULT_MSG
  66. _opencolorio_LIBRARIES OPENCOLORIO_INCLUDE_DIR)
  67. IF(OPENCOLORIO_FOUND)
  68. SET(OPENCOLORIO_LIBRARIES ${_opencolorio_LIBRARIES})
  69. SET(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO_INCLUDE_DIR})
  70. ENDIF(OPENCOLORIO_FOUND)
  71. MARK_AS_ADVANCED(
  72. OPENCOLORIO_INCLUDE_DIR
  73. OPENCOLORIO_LIBRARY
  74. OPENCOLORIO_OPENCOLORIO_LIBRARY
  75. OPENCOLORIO_TINYXML_LIBRARY
  76. OPENCOLORIO_YAML-CPP_LIBRARY
  77. )
  78. UNSET(COMPONENT)
  79. UNSET(UPPERCOMPONENT)
  80. UNSET(_opencolorio_FIND_COMPONENTS)
  81. UNSET(_opencolorio_LIBRARIES)
  82. UNSET(_opencolorio_SEARCH_DIRS)