Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fb5cd4d
commit d2e9567
Showing
3 changed files
with
106 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,97 @@ | ||
# required for PNG imported target | ||
cmake_minimum_required(VERSION 3.6) | ||
#[=======================================================================[.rst: | ||
FindCImg | ||
------- | ||
|
||
find_package(PkgConfig) | ||
pkg_check_modules(libpng REQUIRED IMPORTED_TARGET libpng) | ||
pkg_check_modules(libjpeg REQUIRED IMPORTED_TARGET libjpeg) | ||
Finds the CImg library. | ||
|
||
message(STATUS "Searching for CImg") | ||
Imported Targets | ||
^^^^^^^^^^^^^^^^ | ||
|
||
This module provides the following imported targets, if found: | ||
|
||
``CImg`` | ||
The CImg library | ||
|
||
Result Variables | ||
^^^^^^^^^^^^^^^^ | ||
|
||
This will define the following variables: | ||
|
||
``CImg_FOUND`` | ||
True if the system has the CImg library. | ||
``CImg_VERSION`` | ||
The version of the CImg library which was found. | ||
``CImg_INCLUDE_DIRS`` | ||
Include directories needed to use CImg. | ||
``CImg_LIBRARIES`` | ||
Libraries needed to link to CImg. | ||
|
||
Cache Variables | ||
^^^^^^^^^^^^^^^ | ||
|
||
The following cache variables may also be set: | ||
|
||
``CImg_INCLUDE_DIR`` | ||
The directory containing ``CImg.h``. | ||
|
||
#]=======================================================================] | ||
|
||
# 3.6 required for PNG imported target | ||
# 3.9 required for CMAKE_MATCH_<n> | ||
cmake_minimum_required(VERSION 3.9) | ||
|
||
find_path(CIMG_H_DIR | ||
NAMES CImg.h | ||
HINTS ${CMAKE_INSTALL_PREFIX} | ||
HINTS ${CMAKE_INSTALL_PREFIX} ${CIMG_DIR} | ||
PATH_SUFFIXES include include/linux | ||
) | ||
|
||
if(NOT CIMG_H_DIR) | ||
message(FATAL_ERROR "CImg.h not found") | ||
endif() | ||
set(CImg_FOUND FALSE) | ||
else() | ||
set(CImg_FOUND TRUE) | ||
|
||
set(PNG_INCLUDE_DIR ${libpng_INCLUDE_DIRS}) | ||
set(PNG_INCLUDE_DIR ${libjpeg_INCLUDE_DIRS}) | ||
find_package(PkgConfig) | ||
|
||
if(NOT STATIC_BUILD) | ||
set(PNG_LIBRARY ${libpng_LIBRARIES}) | ||
set(JPEG_LIBRARIES ${libjpeg_LIBRARIES}) | ||
else() | ||
set(PNG_LIBRARY ${libpng_STATIC_LIBRARIES}) | ||
set(JPEG_LIBRARIES ${libjpeg_STATIC_LIBRARIES}) | ||
pkg_check_modules(libpng REQUIRED libpng) | ||
pkg_check_modules(libjpeg REQUIRED libjpeg) | ||
|
||
set(PNG_INCLUDE_DIR ${libpng_INCLUDE_DIRS}) | ||
set(JPEG_INCLUDE_DIR ${libjpeg_INCLUDE_DIRS}) | ||
|
||
if(STATIC_BUILD) | ||
set(PNG_LIBRARY ${libpng_STATIC_LIBRARIES}) | ||
set(JPEG_LIBRARIES ${libjpeg_STATIC_LIBRARIES}) | ||
else() | ||
set(PNG_LIBRARY ${libpng_LIBRARIES}) | ||
set(JPEG_LIBRARIES ${libjpeg_LIBRARIES}) | ||
endif() | ||
|
||
set(CImg_INCLUDE_DIR ${CIMG_H_DIR} CACHE STRING "") | ||
set(CImg_INCLUDE_DIRS ${CImg_INCLUDE_DIR}) | ||
set(CImg_LIBRARIES "${PNG_LIBRARY};${JPEG_LIBRARIES}") | ||
set(CImg_DEFINITIONS "cimg_display=0;cimg_use_png=1;cimg_use_jpeg=1") | ||
|
||
file(READ "${CIMG_H_DIR}/CImg.h" header) | ||
string(REGEX MATCH "#define cimg_version ([0-9a-zA-Z\.]+)" _ "${header}") | ||
set(CImg_VERSION "${CMAKE_MATCH_1}") | ||
|
||
# CImg_VERSION | ||
|
||
if(NOT TARGET CImg) | ||
add_library(CImg INTERFACE) | ||
set_property(TARGET CImg PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CIMG_H_DIR};${PNG_INCLUDE_DIR};${JPEG_INCLUDE_DIR}") | ||
set_property(TARGET CImg PROPERTY INTERFACE_LINK_LIBRARIES "${CImg_LIBRARIES}") | ||
set_property(TARGET CImg PROPERTY INTERFACE_COMPILE_DEFINITIONS "${CImg_DEFINITIONS}") | ||
endif() | ||
endif() | ||
|
||
add_library(CImg INTERFACE) | ||
set_property(TARGET CImg PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CIMG_H_DIR};${PNG_INCLUDE_DIR};${JPEG_INCLUDE_DIR}") | ||
set_property(TARGET CImg PROPERTY INTERFACE_LINK_LIBRARIES "${PNG_LIBRARY};${JPEG_LIBRARIES}") | ||
set_property(TARGET CImg PROPERTY INTERFACE_COMPILE_DEFINITIONS "cimg_display=0;cimg_use_png=1;cimg_use_jpeg=1") | ||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(CImg | ||
FOUND_VAR CImg_FOUND | ||
REQUIRED_VARS | ||
CImg_INCLUDE_DIRS | ||
CImg_LIBRARIES | ||
CImg_DEFINITIONS | ||
VERSION_VAR CImg_VERSION | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters