mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
build: Add a CMake config file compatible with the FindPNG module
Co-authored-by: Cosmin Truta <ctruta@gmail.com> Signed-off-by: Cosmin Truta <ctruta@gmail.com>
This commit is contained in:
parent
53a7f4e320
commit
0e204b7364
@ -1129,6 +1129,30 @@ if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL)
|
|||||||
FILE libpng${PNGLIB_ABI_VERSION}.cmake)
|
FILE libpng${PNGLIB_ABI_VERSION}.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Create a CMake Config File that can be used via find_package(PNG CONFIG)
|
||||||
|
if(NOT SKIP_INSTALL_CONFIG_FILE AND NOT SKIP_INSTALL_ALL)
|
||||||
|
install(TARGETS ${PNG_LIBRARY_TARGETS}
|
||||||
|
EXPORT PNGTargets
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
write_basic_package_version_file(PNGConfigVersion.cmake
|
||||||
|
VERSION ${PNGLIB_VERSION}
|
||||||
|
COMPATIBILITY SameMinorVersion)
|
||||||
|
|
||||||
|
install(EXPORT PNGTargets
|
||||||
|
FILE PNGTargets.cmake
|
||||||
|
NAMESPACE PNG::
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PNG)
|
||||||
|
|
||||||
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/PNGConfig.cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/PNGConfigVersion.cmake
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PNG)
|
||||||
|
endif()
|
||||||
|
|
||||||
# TODO: Create MSVC import lib for MinGW-compiled shared lib.
|
# TODO: Create MSVC import lib for MinGW-compiled shared lib.
|
||||||
# pexports libpng.dll > libpng.def
|
# pexports libpng.dll > libpng.def
|
||||||
# lib /def:libpng.def /machine:x86
|
# lib /def:libpng.def /machine:x86
|
||||||
|
15
scripts/cmake/PNGConfig.cmake
Normal file
15
scripts/cmake/PNGConfig.cmake
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
include(CMakeFindDependencyMacro)
|
||||||
|
|
||||||
|
find_dependency(ZLIB REQUIRED)
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/PNGTargets.cmake")
|
||||||
|
|
||||||
|
if(NOT TARGET PNG::PNG)
|
||||||
|
if(TARGET PNG::png_shared)
|
||||||
|
add_library(PNG::PNG INTERFACE IMPORTED)
|
||||||
|
target_link_libraries(PNG::PNG INTERFACE PNG::png_shared)
|
||||||
|
elseif(TARGET PNG::png_static)
|
||||||
|
add_library(PNG::PNG INTERFACE IMPORTED)
|
||||||
|
target_link_libraries(PNG::PNG INTERFACE PNG::png_static)
|
||||||
|
endif()
|
||||||
|
endif()
|
@ -20,6 +20,7 @@ File List
|
|||||||
CMakeLists.txt ==> The main CMake lists file
|
CMakeLists.txt ==> The main CMake lists file
|
||||||
scripts/cmake/AUTHORS.md ==> The Authors file
|
scripts/cmake/AUTHORS.md ==> The Authors file
|
||||||
scripts/cmake/README.md ==> This file
|
scripts/cmake/README.md ==> This file
|
||||||
|
scripts/cmake/PNGConfig.cmake ==> Config file for FindPNG
|
||||||
scripts/cmake/genchk.cmake.in ==> Template for genchk.cmake
|
scripts/cmake/genchk.cmake.in ==> Template for genchk.cmake
|
||||||
scripts/cmake/genout.cmake.in ==> Template for genout.cmake
|
scripts/cmake/genout.cmake.in ==> Template for genout.cmake
|
||||||
scripts/cmake/gensrc.cmake.in ==> Template for gensrc.cmake
|
scripts/cmake/gensrc.cmake.in ==> Template for gensrc.cmake
|
||||||
|
Loading…
x
Reference in New Issue
Block a user