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:
parent
46558d290b
commit
2a7975398f
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue