blob: 34d62b5d14e1f1a9ebc59ba50f85b065a6302261 [file] [log] [blame]
Chris Craikb50c2172013-07-29 15:28:30 -07001# CMakeLists.txt
Patrick Scott5f6bd842010-06-28 16:55:16 -04002
Chris Craikb50c2172013-07-29 15:28:30 -07003# Copyright (C) 2007-2013 Glenn Randers-Pehrson
Patrick Scott5f6bd842010-06-28 16:55:16 -04004
5# This code is released under the libpng license.
6# For conditions of distribution and use, see the disclaimer
7# and license in png.h
8
Chris Craikb50c2172013-07-29 15:28:30 -07009cmake_minimum_required(VERSION 2.4.4)
10set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
11
12set(CMAKE_CONFIGURATION_TYPES "Release;Debug;MinSizeRel;RelWithDebInfo")
13
14project(libpng C)
15enable_testing()
16
Patrick Scott5f6bd842010-06-28 16:55:16 -040017set(PNGLIB_MAJOR 1)
Chris Craikb50c2172013-07-29 15:28:30 -070018set(PNGLIB_MINOR 6)
Sireesh Tripurarib478e662014-05-09 15:15:10 +053019set(PNGLIB_RELEASE 10)
Patrick Scott5f6bd842010-06-28 16:55:16 -040020set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
21set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
22
23# needed packages
24find_package(ZLIB REQUIRED)
25include_directories(${ZLIB_INCLUDE_DIR})
26
27if(NOT WIN32)
28 find_library(M_LIBRARY
29 NAMES m
30 PATHS /usr/lib /usr/local/lib
31 )
32 if(NOT M_LIBRARY)
33 message(STATUS
34 "math library 'libm' not found - floating point support disabled")
35 endif()
36else()
37 # not needed on windows
38 set(M_LIBRARY "")
39endif()
40
41# COMMAND LINE OPTIONS
42if(DEFINED PNG_SHARED)
43 option(PNG_SHARED "Build shared lib" ${PNG_SHARED})
44else()
45 option(PNG_SHARED "Build shared lib" ON)
46endif()
47if(DEFINED PNG_STATIC)
48 option(PNG_STATIC "Build static lib" ${PNG_STATIC})
49else()
50 option(PNG_STATIC "Build static lib" ON)
51endif()
52
Chris Craikb50c2172013-07-29 15:28:30 -070053option(PNG_TESTS "Build libpng tests" YES)
Patrick Scott5f6bd842010-06-28 16:55:16 -040054
Chris Craikb50c2172013-07-29 15:28:30 -070055# Many more configuration options could be added here
Patrick Scott5f6bd842010-06-28 16:55:16 -040056option(PNG_DEBUG "Build with debug output" NO)
Chris Craikb50c2172013-07-29 15:28:30 -070057option(PNGARG "Disable ANSI-C prototypes" NO)
Patrick Scott5f6bd842010-06-28 16:55:16 -040058
59# SET LIBNAME
60set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR})
61
62# to distinguish between debug and release lib
63set(CMAKE_DEBUG_POSTFIX "d")
64
Chris Craikb50c2172013-07-29 15:28:30 -070065# Use the prebuilt pnglibconf.h file from the scripts folder
66# TODO: fix this by building with awk; without this no cmake build can be
67# configured directly (to do so indirectly use your local awk to build a
68# pnglibconf.h in the build directory.)
69configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt
70 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
71include_directories(${CMAKE_CURRENT_BINARY_DIR})
Patrick Scott5f6bd842010-06-28 16:55:16 -040072
73# OUR SOURCES
Chris Craikb50c2172013-07-29 15:28:30 -070074set(libpng_public_hdrs
Patrick Scott5f6bd842010-06-28 16:55:16 -040075 png.h
76 pngconf.h
Chris Craikb50c2172013-07-29 15:28:30 -070077 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h
78)
79set(libpng_sources
80 ${libpng_public_hdrs}
81 pngdebug.h
82 pnginfo.h
83 pngpriv.h
84 pngstruct.h
Patrick Scott5f6bd842010-06-28 16:55:16 -040085 png.c
86 pngerror.c
87 pngget.c
88 pngmem.c
89 pngpread.c
90 pngread.c
91 pngrio.c
92 pngrtran.c
93 pngrutil.c
94 pngset.c
95 pngtrans.c
96 pngwio.c
97 pngwrite.c
98 pngwtran.c
99 pngwutil.c
100)
101set(pngtest_sources
102 pngtest.c
103)
Chris Craikb50c2172013-07-29 15:28:30 -0700104set(pngvalid_sources
105 contrib/libtests/pngvalid.c
106)
107set(pngstest_sources
108 contrib/libtests/pngstest.c
109)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400110# SOME NEEDED DEFINITIONS
111
Patrick Scott5f6bd842010-06-28 16:55:16 -0400112if(MSVC)
Chris Craikb50c2172013-07-29 15:28:30 -0700113 add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400114endif(MSVC)
115
Patrick Scott5f6bd842010-06-28 16:55:16 -0400116if(PNG_DEBUG)
117 add_definitions(-DPNG_DEBUG)
118endif()
119
Patrick Scott5f6bd842010-06-28 16:55:16 -0400120# NOW BUILD OUR TARGET
121include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
122
Chris Craikb50c2172013-07-29 15:28:30 -0700123unset(PNG_LIB_TARGETS)
124
Patrick Scott5f6bd842010-06-28 16:55:16 -0400125if(PNG_SHARED)
126 add_library(${PNG_LIB_NAME} SHARED ${libpng_sources})
Chris Craikb50c2172013-07-29 15:28:30 -0700127 set(PNG_LIB_TARGETS ${PNG_LIB_NAME})
Patrick Scott5f6bd842010-06-28 16:55:16 -0400128 if(MSVC)
129 # msvc does not append 'lib' - do it here to have consistent name
130 set_target_properties(${PNG_LIB_NAME} PROPERTIES PREFIX "lib")
Chris Craikb50c2172013-07-29 15:28:30 -0700131 set_target_properties(${PNG_LIB_NAME} PROPERTIES IMPORT_PREFIX "lib")
Patrick Scott5f6bd842010-06-28 16:55:16 -0400132 endif()
133 target_link_libraries(${PNG_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY})
134endif()
135
136if(PNG_STATIC)
137# does not work without changing name
138 set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static)
139 add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources})
Chris Craikb50c2172013-07-29 15:28:30 -0700140 list(APPEND PNG_LIB_TARGETS ${PNG_LIB_NAME_STATIC})
Patrick Scott5f6bd842010-06-28 16:55:16 -0400141 if(MSVC)
142 # msvc does not append 'lib' - do it here to have consistent name
143 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES PREFIX "lib")
144 endif()
Chris Craikb50c2172013-07-29 15:28:30 -0700145 target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY})
Patrick Scott5f6bd842010-06-28 16:55:16 -0400146endif()
147
Chris Craikb50c2172013-07-29 15:28:30 -0700148if(NOT PNG_LIB_TARGETS)
149 message(SEND_ERROR
150 "No library variant selected to build. "
151 "Please enable at least one of the following options: PNG_STATIC, PNG_SHARED")
152endif()
Patrick Scott5f6bd842010-06-28 16:55:16 -0400153
154if(PNG_SHARED AND WIN32)
155 set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL)
156endif()
157
158if(PNG_TESTS AND PNG_SHARED)
159 # does not work with msvc due to png_lib_ver issue
160 add_executable(pngtest ${pngtest_sources})
161 target_link_libraries(pngtest ${PNG_LIB_NAME})
Chris Craikb50c2172013-07-29 15:28:30 -0700162 add_test(pngtest ./pngtest ${CMAKE_CURRENT_SOURCE_DIR}/pngtest.png)
163 #
164 add_executable(pngvalid ${pngvalid_sources})
165 target_link_libraries(pngvalid ${PNG_LIB_NAME})
166 add_test(pngvalid ./pngvalid)
167 add_executable(pngstest ${pngstest_sources})
168 target_link_libraries(pngstest ${PNG_LIB_NAME})
169 add_test(pngstest ./pngstest
170 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn0g01.png
171 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn0g02.png
172 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn0g04.png
173 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn0g08.png
174 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn0g16.png
175 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn2c08.png
176 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn2c16.png
177 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn3p01.png
178 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn3p02.png
179 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn3p04.png
180 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn3p08.png
181 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn4a08.png
182 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn4a16.png
183 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn6a08.png
184 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/basn6a16.png
185 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbbn0g01.png
186 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbbn0g02.png
187 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbbn0g04.png
188 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbbn2c16.png
189 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbbn3p08.png
190 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbgn2c16.png
191 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbgn3p08.png
192 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbrn2c08.png
193 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbwn0g16.png
194 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbwn3p08.png
195 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftbyn3p08.png
196 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftp0n0g08.png
197 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftp0n2c08.png
198 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftp0n3p08.png
199 ${CMAKE_CURRENT_SOURCE_DIR}/contrib/pngsuite/ftp1n3p08.png
200 )
Patrick Scott5f6bd842010-06-28 16:55:16 -0400201endif()
202
Chris Craikb50c2172013-07-29 15:28:30 -0700203# Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set
204IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
205 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "lib")
206ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
207
208# Set a variable with CMake code which:
209# Creates a symlink from src to dest (if possible) or alternatively
210# copies if different.
211macro(CREATE_SYMLINK SRC_FILE DEST_FILE)
212 FILE(REMOVE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE})
213 if(WIN32 AND NOT CYGWIN AND NOT MSYS)
214 ADD_CUSTOM_COMMAND(
215 OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE}
216 COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SRC_FILE}" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}
217 COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SRC_FILE}" ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE}
218 DEPENDS ${PNG_LIB_TARGETS}
219 )
220 ADD_CUSTOM_TARGET(${DEST_FILE}_COPY ALL DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE})
221 else(WIN32 AND NOT CYGWIN AND NOT MSYS)
222 get_filename_component(LINK_TARGET "${SRC_FILE}" NAME)
223 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${LINK_TARGET}" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
224 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${LINK_TARGET}" ${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
225 endif(WIN32 AND NOT CYGWIN AND NOT MSYS)
226endmacro()
227
228# libpng is a library so default to 'lib'
229if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
230 set(CMAKE_INSTALL_LIBDIR lib)
231endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400232
233# CREATE PKGCONFIG FILES
234# we use the same files like ./configure, so we have to set its vars
Chris Craikb50c2172013-07-29 15:28:30 -0700235# Only do this on Windows for Cygwin - the files don't make much sense outside
236# a UNIX look alike
237if(NOT WIN32 OR CYGWIN OR MINGW)
238 set(prefix ${CMAKE_INSTALL_PREFIX})
239 set(exec_prefix ${CMAKE_INSTALL_PREFIX})
240 set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
241 set(includedir ${CMAKE_INSTALL_PREFIX}/include)
242 set(LIBS "-lz -lm")
243 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
244 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
245 CREATE_SYMLINK(${PNGLIB_NAME}.pc libpng.pc)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400246
Chris Craikb50c2172013-07-29 15:28:30 -0700247 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
248 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
249 CREATE_SYMLINK(${PNGLIB_NAME}-config libpng-config)
250endif(NOT WIN32 OR CYGWIN OR MINGW)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400251
252# SET UP LINKS
253if(PNG_SHARED)
254 set_target_properties(${PNG_LIB_NAME} PROPERTIES
Sireesh Tripurarib478e662014-05-09 15:15:10 +0530255# VERSION 16.${PNGLIB_RELEASE}.1.6.10
Chris Craikb50c2172013-07-29 15:28:30 -0700256 VERSION 16.${PNGLIB_RELEASE}.0
257 SOVERSION 16
Patrick Scott5f6bd842010-06-28 16:55:16 -0400258 CLEAN_DIRECT_OUTPUT 1)
259endif()
260if(PNG_STATIC)
Chris Craikb50c2172013-07-29 15:28:30 -0700261 # MSVC doesn't use a different file extension for shared vs. static
262 # libs. We are able to change OUTPUT_NAME to remove the _static
263 # for all other platforms.
264 if(NOT MSVC)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400265 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES
266 OUTPUT_NAME ${PNG_LIB_NAME}
267 CLEAN_DIRECT_OUTPUT 1)
268 endif()
269endif()
270
Chris Craikb50c2172013-07-29 15:28:30 -0700271# If CMake > 2.4.x, we set a variable used below to export
272# targets to an export file.
273# TODO: Use VERSION_GREATER after our cmake_minimum_required >= 2.6.2
274if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
275 set(PNG_EXPORT_RULE EXPORT libpng)
276elseif(CMAKE_MAJOR_VERSION GREATER 2) # future proof
277 set(PNG_EXPORT_RULE EXPORT libpng)
278endif()
279
Patrick Scott5f6bd842010-06-28 16:55:16 -0400280# INSTALL
281if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
Chris Craikb50c2172013-07-29 15:28:30 -0700282 install(TARGETS ${PNG_LIB_TARGETS}
283 ${PNG_EXPORT_RULE}
284 RUNTIME DESTINATION bin
285 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
286 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
287
Patrick Scott5f6bd842010-06-28 16:55:16 -0400288 if(PNG_SHARED)
Chris Craikb50c2172013-07-29 15:28:30 -0700289 # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin
290 if(CYGWIN OR MINGW)
291 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE})
292 CREATE_SYMLINK(${BUILD_TARGET_LOCATION} libpng${CMAKE_IMPORT_LIBRARY_SUFFIX})
293 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}
294 DESTINATION ${CMAKE_INSTALL_LIBDIR})
295 endif(CYGWIN OR MINGW)
296
297 if(NOT WIN32)
298 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE})
299 CREATE_SYMLINK(${BUILD_TARGET_LOCATION} libpng${CMAKE_SHARED_LIBRARY_SUFFIX})
300 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
301 DESTINATION ${CMAKE_INSTALL_LIBDIR})
302 endif(NOT WIN32)
303 endif(PNG_SHARED)
304
Patrick Scott5f6bd842010-06-28 16:55:16 -0400305 if(PNG_STATIC)
Chris Craikb50c2172013-07-29 15:28:30 -0700306 if(NOT WIN32 OR CYGWIN OR MINGW)
307 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME_STATIC} LOCATION_${CMAKE_BUILD_TYPE})
308 CREATE_SYMLINK(${BUILD_TARGET_LOCATION} libpng${CMAKE_STATIC_LIBRARY_SUFFIX})
309 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
310 DESTINATION ${CMAKE_INSTALL_LIBDIR})
311 endif(NOT WIN32 OR CYGWIN OR MINGW)
312 endif()
Patrick Scott5f6bd842010-06-28 16:55:16 -0400313endif()
314
315if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
Chris Craikb50c2172013-07-29 15:28:30 -0700316 install(FILES ${libpng_public_hdrs} DESTINATION include)
317 install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME})
Patrick Scott5f6bd842010-06-28 16:55:16 -0400318endif()
319if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL )
Chris Craikb50c2172013-07-29 15:28:30 -0700320 if(NOT WIN32 OR CYGWIN OR MINGW)
321 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin)
322 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
323 DESTINATION bin)
324 endif(NOT WIN32 OR CYGWIN OR MINGW)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400325endif()
Chris Craikb50c2172013-07-29 15:28:30 -0700326
Patrick Scott5f6bd842010-06-28 16:55:16 -0400327if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
328 # Install man pages
Chris Craikb50c2172013-07-29 15:28:30 -0700329 if(NOT PNG_MAN_DIR)
330 set(PNG_MAN_DIR "share/man")
331 endif()
332 install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3)
333 install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400334 # Install pkg-config files
Chris Craikb50c2172013-07-29 15:28:30 -0700335 if(NOT WIN32 OR CYGWIN OR MINGW)
336 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
337 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
338 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
339 DESTINATION bin)
340 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
341 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
342 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
343 DESTINATION bin)
344 endif(NOT WIN32 OR CYGWIN OR MINGW)
Patrick Scott5f6bd842010-06-28 16:55:16 -0400345endif()
346
Chris Craikb50c2172013-07-29 15:28:30 -0700347# On versions of CMake that support it, create an export file CMake
348# users can include() to import our targets
349if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL )
350 install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake)
351endif()
Patrick Scott5f6bd842010-06-28 16:55:16 -0400352
Chris Craikb50c2172013-07-29 15:28:30 -0700353# what's with libpng-$VER%.txt and all the extra files?
Patrick Scott5f6bd842010-06-28 16:55:16 -0400354
355# UNINSTALL
356# do we need this?
357
Patrick Scott5f6bd842010-06-28 16:55:16 -0400358# DIST
359# do we need this?
360
361# to create msvc import lib for mingw compiled shared lib
362# pexports libpng.dll > libpng.def
363# lib /def:libpng.def /machine:x86
364