| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file Copyright.txt or https://cmake.org/licensing for details. |
| |
| #[=======================================================================[.rst: |
| FindDevIL |
| --------- |
| |
| |
| |
| This module locates the developer's image library. |
| https://openil.sourceforge.net/ |
| |
| IMPORTED Targets |
| ^^^^^^^^^^^^^^^^ |
| |
| .. versionadded:: 3.21 |
| |
| This module defines the :prop_tgt:`IMPORTED` targets: |
| |
| ``DevIL::IL`` |
| Defined if the system has DevIL. |
| |
| ``DevIL::ILU`` |
| Defined if the system has DevIL Utilities. |
| |
| ``DevIL::ILUT`` |
| Defined if the system has DevIL Utility Toolkit. |
| |
| Result Variables |
| ^^^^^^^^^^^^^^^^ |
| |
| This module sets: |
| |
| ``IL_LIBRARIES`` |
| The name of the IL library. These include the full path to |
| the core DevIL library. This one has to be linked into the |
| application. |
| |
| ``ILU_LIBRARIES`` |
| The name of the ILU library. Again, the full path. This |
| library is for filters and effects, not actual loading. It |
| doesn't have to be linked if the functionality it provides |
| is not used. |
| |
| ``ILUT_LIBRARIES`` |
| The name of the ILUT library. Full path. This part of the |
| library interfaces with OpenGL. It is not strictly needed |
| in applications. |
| |
| ``IL_INCLUDE_DIR`` |
| where to find the il.h, ilu.h and ilut.h files. |
| |
| ``DevIL_FOUND`` |
| This is set to TRUE if all the above variables were set. |
| This will be set to false if ILU or ILUT are not found, |
| even if they are not needed. In most systems, if one |
| library is found all the others are as well. That's the |
| way the DevIL developers release it. |
| |
| ``DevIL_ILUT_FOUND`` |
| .. versionadded:: 3.21 |
| |
| This is set to TRUE if the ILUT library is found. |
| #]=======================================================================] |
| |
| # TODO: Add version support. |
| # Tested under Linux and Windows (MSVC) |
| |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
| |
| find_path(IL_INCLUDE_DIR il.h |
| PATH_SUFFIXES include IL |
| DOC "The path to the directory that contains il.h" |
| ) |
| |
| #message("IL_INCLUDE_DIR is ${IL_INCLUDE_DIR}") |
| |
| find_library(IL_LIBRARIES |
| NAMES IL DEVIL |
| PATH_SUFFIXES libx32 lib64 lib lib32 |
| DOC "The file that corresponds to the base il library." |
| ) |
| |
| #message("IL_LIBRARIES is ${IL_LIBRARIES}") |
| |
| find_library(ILUT_LIBRARIES |
| NAMES ILUT |
| PATH_SUFFIXES libx32 lib64 lib lib32 |
| DOC "The file that corresponds to the il (system?) utility library." |
| ) |
| |
| #message("ILUT_LIBRARIES is ${ILUT_LIBRARIES}") |
| |
| find_library(ILU_LIBRARIES |
| NAMES ILU |
| PATH_SUFFIXES libx32 lib64 lib lib32 |
| DOC "The file that corresponds to the il utility library." |
| ) |
| |
| #message("ILU_LIBRARIES is ${ILU_LIBRARIES}") |
| |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(DevIL DEFAULT_MSG |
| IL_LIBRARIES ILU_LIBRARIES |
| IL_INCLUDE_DIR) |
| # provide legacy variable for compatibility |
| set(IL_FOUND ${DevIL_FOUND}) |
| |
| # create imported targets ONLY if we found DevIL. |
| if(DevIL_FOUND) |
| # Report the ILUT found if ILUT_LIBRARIES contains valid path. |
| if (ILUT_LIBRARIES) |
| set(DevIL_ILUT_FOUND TRUE) |
| else() |
| set(DevIL_ILUT_FOUND FALSE) |
| endif() |
| |
| if(NOT TARGET DevIL::IL) |
| add_library(DevIL::IL UNKNOWN IMPORTED) |
| set_target_properties(DevIL::IL PROPERTIES |
| INTERFACE_INCLUDE_DIRECTORIES "${IL_INCLUDE_DIR}" |
| IMPORTED_LOCATION "${IL_LIBRARIES}") |
| endif() |
| |
| # DevIL Utilities target |
| if(NOT TARGET DevIL::ILU) |
| add_library(DevIL::ILU UNKNOWN IMPORTED) |
| set_target_properties(DevIL::ILU PROPERTIES |
| IMPORTED_LOCATION "${ILU_LIBRARIES}") |
| target_link_libraries(DevIL::ILU INTERFACE DevIL::IL) |
| endif() |
| |
| # ILUT (if found) |
| if(NOT TARGET DevIL::ILUT AND DevIL_ILUT_FOUND) |
| add_library(DevIL::ILUT UNKNOWN IMPORTED) |
| set_target_properties(DevIL::ILUT PROPERTIES |
| IMPORTED_LOCATION "${ILUT_LIBRARIES}") |
| target_link_libraries(DevIL::ILUT INTERFACE DevIL::ILU) |
| endif() |
| endif() |