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.
138 lines
3.8 KiB
138 lines
3.8 KiB
# 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,
|
|
`DevIL <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()
|