100 lines
3.3 KiB
CMake
100 lines
3.3 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindLerc
|
|
--------
|
|
|
|
Find the native Lerc includes and library.
|
|
|
|
IMPORTED Targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines :prop_tgt:`IMPORTED` target ``LERC::LERC``, if
|
|
LERC has been found.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
::
|
|
|
|
LERC_INCLUDE_DIRS - where to find Lerc_c_api.h, etc.
|
|
LERC_LIBRARIES - List of libraries when using LERC.
|
|
LERC_FOUND - True if LERC found.
|
|
LERC_VERSION_STRING - version number as a string (ex: "4.0.1")
|
|
|
|
#]=======================================================================]
|
|
|
|
# Standard names to search for
|
|
set(LERC_NAMES LercLib Lerc)
|
|
|
|
find_path(LERC_INCLUDE_DIR
|
|
NAMES Lerc_c_api.h
|
|
PATH_SUFFIXES include)
|
|
|
|
# Allow LERC_LIBRARY to be set manually, as the location of the deflate library
|
|
if(NOT LERC_LIBRARY)
|
|
find_library(LERC_LIBRARY_RELEASE
|
|
NAMES ${LERC_NAMES}
|
|
PATH_SUFFIXES lib)
|
|
|
|
include(SelectLibraryConfigurations)
|
|
select_library_configurations(LERC)
|
|
endif()
|
|
|
|
unset(LERC_NAMES)
|
|
|
|
mark_as_advanced(LERC_INCLUDE_DIR)
|
|
|
|
if(LERC_INCLUDE_DIR AND EXISTS "${LERC_INCLUDE_DIR}/Lerc_c_api.h")
|
|
file(STRINGS "${LERC_INCLUDE_DIR}/Lerc_c_api.h" LERC_H REGEX "^#define[\t ]+LERC_VERSION_[A-Z]+[\t ]+[0-9]+")
|
|
string(REGEX REPLACE "^.*#define[\t ]+LERC_VERSION_MAJOR[\t ]+([0-9]+).*$" "\\1" LERC_VERSION_MAJOR "${LERC_H}")
|
|
string(REGEX REPLACE "^.*#define[\t ]+LERC_VERSION_MINOR[\t ]+([0-9]+).*$" "\\1" LERC_VERSION_MINOR "${LERC_H}")
|
|
string(REGEX REPLACE "^.*#define[\t ]+LERC_VERSION_PATCH[\t ]+([0-9]+).*$" "\\1" LERC_VERSION_PATCH "${LERC_H}")
|
|
set(LERC_VERSION_STRING "${LERC_VERSION_MAJOR}.${LERC_VERSION_MINOR}.${LERC_VERSION_PATCH}")
|
|
unset(LERC_H)
|
|
unset(LERC_VERSION_MAJOR)
|
|
unset(LERC_VERSION_MINOR)
|
|
unset(LERC_VERSION_PATCH)
|
|
endif()
|
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LERC
|
|
REQUIRED_VARS LERC_LIBRARY LERC_INCLUDE_DIR
|
|
VERSION_VAR LERC_VERSION_STRING)
|
|
|
|
if(LERC_FOUND)
|
|
set(LERC_INCLUDE_DIRS ${LERC_INCLUDE_DIR})
|
|
|
|
if(NOT LERC_LIBRARIES)
|
|
set(LERC_LIBRARIES ${LERC_LIBRARY})
|
|
endif()
|
|
|
|
if(NOT TARGET LERC::LERC)
|
|
add_library(LERC::LERC UNKNOWN IMPORTED)
|
|
set_target_properties(LERC::LERC PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${LERC_INCLUDE_DIRS}")
|
|
|
|
if(LERC_LIBRARY_RELEASE)
|
|
set_property(TARGET LERC::LERC APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS RELEASE)
|
|
set_target_properties(LERC::LERC PROPERTIES
|
|
IMPORTED_LOCATION_RELEASE "${LERC_LIBRARY_RELEASE}")
|
|
endif()
|
|
|
|
if(LERC_LIBRARY_DEBUG)
|
|
set_property(TARGET LERC::LERC APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS DEBUG)
|
|
set_target_properties(LERC::LERC PROPERTIES
|
|
IMPORTED_LOCATION_DEBUG "${LERC_LIBRARY_DEBUG}")
|
|
endif()
|
|
|
|
if(NOT LERC_LIBRARY_RELEASE AND NOT LERC_LIBRARY_DEBUG)
|
|
set_target_properties(LERC::LERC PROPERTIES
|
|
IMPORTED_LOCATION "${LERC_LIBRARY}")
|
|
endif()
|
|
endif()
|
|
endif()
|