FindPNG: improve library detection (#14301)

-add support for upcoming version 1.7
-improve version selection, use the major and minor of the requested version
 to generate the library suffix list
-support detection of release and debug libraries
This commit is contained in:
Rolf Eike Beer 2013-07-27 22:35:11 +02:00
parent 46558d290b
commit 2a7975398f
1 changed files with 30 additions and 3 deletions

View File

@ -39,10 +39,37 @@ if(ZLIB_FOUND)
) )
list(APPEND PNG_NAMES png libpng) list(APPEND PNG_NAMES png libpng)
foreach(v 16 15 14 12) unset(PNG_NAMES_DEBUG)
list(APPEND PNG_NAMES png${v} libpng${v} png${v}d libpng${v}d) set(_PNG_VERSION_SUFFIXES 17 16 15 14 12)
if (PNG_FIND_VERSION MATCHES "^[0-9]+\\.[0-9]+(\\..*)?$")
string(REGEX REPLACE
"^([0-9]+)\\.([0-9]+).*" "\\1\\2"
_PNG_VERSION_SUFFIX_MIN "${PNG_FIND_VERSION}")
if (PNG_FIND_VERSION_EXACT)
set(_PNG_VERSION_SUFFIXES ${_PNG_VERSION_SUFFIX_MIN})
else ()
string(REGEX REPLACE
"${_PNG_VERSION_SUFFIX_MIN}.*" "${_PNG_VERSION_SUFFIX_MIN}"
_PNG_VERSION_SUFFIXES "${_PNG_VERSION_SUFFIXES}")
endif ()
unset(_PNG_VERSION_SUFFIX_MIN)
endif ()
foreach(v IN LISTS _PNG_VERSION_SUFFIXES)
list(APPEND PNG_NAMES png${v} libpng${v})
list(APPEND PNG_NAMES_DEBUG png${v}d libpng${v}d)
endforeach() endforeach()
find_library(PNG_LIBRARY NAMES ${PNG_NAMES} ) message(STATUS "PNG r: ${PNG_NAMES} d: ${PNG_NAMES_DEBUG}")
unset(_PNG_VERSION_SUFFIXES)
find_library(PNG_LIBRARY_RELEASE NAMES ${PNG_NAMES})
find_library(PNG_LIBRARY_DEBUG NAMES ${PNG_NAMES_DEBUG})
unset(PNG_NAMES)
unset(PNG_NAMES_DEBUG)
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
select_library_configurations(PNG)
# Set by select_library_configurations(), but we want the one from
# find_package_handle_standard_args() below.
unset(PNG_FOUND)
if (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR) if (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
# png.h includes zlib.h. Sigh. # png.h includes zlib.h. Sigh.