116 lines
3.6 KiB
CMake
116 lines
3.6 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindJBIG
|
|
--------
|
|
|
|
Find the native JBIG includes and library.
|
|
|
|
IMPORTED Targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines :prop_tgt:`IMPORTED` target ``JBIG::JBIG``, if
|
|
JBIG has been found.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
::
|
|
|
|
JBIG_INCLUDE_DIRS - where to find jbig.h, etc.
|
|
JBIG_LIBRARIES - List of libraries when using jbig.
|
|
JBIG_FOUND - True if jbig found.
|
|
|
|
::
|
|
|
|
JBIG_VERSION_STRING - The version of jbig found (x.y.z)
|
|
JBIG_VERSION_MAJOR - The major version of jbig
|
|
JBIG_VERSION_MINOR - The minor version of jbig
|
|
|
|
Debug and Release variants are found separately.
|
|
#]=======================================================================]
|
|
|
|
# Standard names to search for
|
|
set(JBIG_NAMES jbig)
|
|
set(JBIG_NAMES_DEBUG jbigd)
|
|
|
|
find_path(JBIG_INCLUDE_DIR
|
|
NAMES jbig.h
|
|
PATH_SUFFIXES include)
|
|
|
|
set(JBIG_OLD_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
|
|
# Library has a "lib" prefix even on Windows.
|
|
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
|
|
|
# Allow JBIG_LIBRARY to be set manually, as the location of the jbig library
|
|
if(NOT JBIG_LIBRARY)
|
|
find_library(JBIG_LIBRARY_RELEASE
|
|
NAMES ${JBIG_NAMES}
|
|
PATH_SUFFIXES lib)
|
|
find_library(JBIG_LIBRARY_DEBUG
|
|
NAMES ${JBIG_NAMES_DEBUG}
|
|
PATH_SUFFIXES lib)
|
|
|
|
include(SelectLibraryConfigurations)
|
|
select_library_configurations(JBIG)
|
|
endif()
|
|
|
|
set(CMAKE_FIND_LIBRARY_PREFIXES "${JBIG_OLD_FIND_LIBRARY_PREFIXES}")
|
|
|
|
unset(JBIG_NAMES)
|
|
unset(JBIG_NAMES_DEBUG)
|
|
unset(JBIG_OLD_FIND_LIBRARY_PREFIXES)
|
|
|
|
mark_as_advanced(JBIG_INCLUDE_DIR)
|
|
|
|
if(JBIG_INCLUDE_DIR AND EXISTS "${JBIG_INCLUDE_DIR}/jbig.h")
|
|
file(STRINGS "${JBIG_INCLUDE_DIR}/jbig.h" JBIG_H REGEX "^#define JBG_VERSION *\"[^\"]*\"$")
|
|
|
|
string(REGEX REPLACE "^.*JBG_VERSION *\"([0-9]+).*$" "\\1" JBIG_MAJOR_VERSION "${JBIG_H}")
|
|
string(REGEX REPLACE "^.*JBG_VERSION *\"[0-9]+\\.([0-9]+).*$" "\\1" JBIG_MINOR_VERSION "${JBIG_H}")
|
|
set(JBIG_VERSION_STRING "${JBIG_MAJOR_VERSION}.${JBIG_MINOR_VERSION}")
|
|
|
|
set(JBIG_MAJOR_VERSION "${JBIG_VERSION_MAJOR}")
|
|
set(JBIG_MINOR_VERSION "${JBIG_VERSION_MINOR}")
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(JBIG
|
|
REQUIRED_VARS JBIG_LIBRARY JBIG_INCLUDE_DIR
|
|
VERSION_VAR JBIG_VERSION_STRING)
|
|
|
|
if(JBIG_FOUND)
|
|
set(JBIG_INCLUDE_DIRS ${JBIG_INCLUDE_DIR})
|
|
|
|
if(NOT JBIG_LIBRARIES)
|
|
set(JBIG_LIBRARIES ${JBIG_LIBRARY})
|
|
endif()
|
|
|
|
if(NOT TARGET JBIG::JBIG)
|
|
add_library(JBIG::JBIG UNKNOWN IMPORTED)
|
|
set_target_properties(JBIG::JBIG PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${JBIG_INCLUDE_DIRS}")
|
|
|
|
if(JBIG_LIBRARY_RELEASE)
|
|
set_property(TARGET JBIG::JBIG APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS RELEASE)
|
|
set_target_properties(JBIG::JBIG PROPERTIES
|
|
IMPORTED_LOCATION_RELEASE "${JBIG_LIBRARY_RELEASE}")
|
|
endif()
|
|
|
|
if(JBIG_LIBRARY_DEBUG)
|
|
set_property(TARGET JBIG::JBIG APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS DEBUG)
|
|
set_target_properties(JBIG::JBIG PROPERTIES
|
|
IMPORTED_LOCATION_DEBUG "${JBIG_LIBRARY_DEBUG}")
|
|
endif()
|
|
|
|
if(NOT JBIG_LIBRARY_RELEASE AND NOT JBIG_LIBRARY_DEBUG)
|
|
set_target_properties(JBIG::JBIG PROPERTIES
|
|
IMPORTED_LOCATION "${JBIG_LIBRARY}")
|
|
endif()
|
|
endif()
|
|
endif()
|