qt-build-tools/6.5.1/_tools/cmake/share/cmake-3.27/Modules/FindDevIL.cmake
2023-11-01 01:44:24 +01:00

140 lines
3.8 KiB
CMake

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