aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 18:54:10 +1000
committerDavid Walter Seikel2013-01-13 18:54:10 +1000
commit959831f4ef5a3e797f576c3de08cd65032c997ad (patch)
treee7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt
parentAdd info about changes to Irrlicht. (diff)
downloadSledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to 'libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt')
-rw-r--r--libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt696
1 files changed, 348 insertions, 348 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt b/libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt
index e9a421a..f0f3e85 100644
--- a/libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt
+++ b/libraries/irrlicht-1.8/source/Irrlicht/libpng/CMakeLists.txt
@@ -1,348 +1,348 @@
1# CMakeLists.txt 1# CMakeLists.txt
2 2
3# Copyright (C) 2007-2011 Glenn Randers-Pehrson 3# Copyright (C) 2007-2011 Glenn Randers-Pehrson
4 4
5# This code is released under the libpng license. 5# This code is released under the libpng license.
6# For conditions of distribution and use, see the disclaimer 6# For conditions of distribution and use, see the disclaimer
7# and license in png.h 7# and license in png.h
8 8
9cmake_minimum_required(VERSION 2.4.4) 9cmake_minimum_required(VERSION 2.4.4)
10set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) 10set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
11 11
12if(UNIX AND NOT DEFINED CMAKE_BUILD_TYPE) 12if(UNIX AND NOT DEFINED CMAKE_BUILD_TYPE)
13 if(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4) 13 if(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4)
14 # workaround CMake 2.4.x bug 14 # workaround CMake 2.4.x bug
15 set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING 15 set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
16 "Choose the type of build, options are: 16 "Choose the type of build, options are:
17 None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) 17 None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used)
18 Debug 18 Debug
19 Release 19 Release
20 RelWithDebInfo 20 RelWithDebInfo
21 MinSizeRel.") 21 MinSizeRel.")
22 else() 22 else()
23 set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING 23 set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
24 "Choose the type of build, options are: 24 "Choose the type of build, options are:
25 None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) 25 None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used)
26 Debug 26 Debug
27 Release 27 Release
28 RelWithDebInfo 28 RelWithDebInfo
29 MinSizeRel.") 29 MinSizeRel.")
30 endif() 30 endif()
31endif() 31endif()
32 32
33project(libpng C) 33project(libpng C)
34enable_testing() 34enable_testing()
35 35
36set(PNGLIB_MAJOR 1) 36set(PNGLIB_MAJOR 1)
37set(PNGLIB_MINOR 5) 37set(PNGLIB_MINOR 5)
38set(PNGLIB_RELEASE 9) 38set(PNGLIB_RELEASE 9)
39set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) 39set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
40set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) 40set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
41 41
42# needed packages 42# needed packages
43find_package(ZLIB REQUIRED) 43find_package(ZLIB REQUIRED)
44include_directories(${ZLIB_INCLUDE_DIR}) 44include_directories(${ZLIB_INCLUDE_DIR})
45 45
46if(NOT WIN32) 46if(NOT WIN32)
47 find_library(M_LIBRARY 47 find_library(M_LIBRARY
48 NAMES m 48 NAMES m
49 PATHS /usr/lib /usr/local/lib 49 PATHS /usr/lib /usr/local/lib
50 ) 50 )
51 if(NOT M_LIBRARY) 51 if(NOT M_LIBRARY)
52 message(STATUS 52 message(STATUS
53 "math library 'libm' not found - floating point support disabled") 53 "math library 'libm' not found - floating point support disabled")
54 endif() 54 endif()
55else() 55else()
56 # not needed on windows 56 # not needed on windows
57 set(M_LIBRARY "") 57 set(M_LIBRARY "")
58endif() 58endif()
59 59
60# COMMAND LINE OPTIONS 60# COMMAND LINE OPTIONS
61if(DEFINED PNG_SHARED) 61if(DEFINED PNG_SHARED)
62 option(PNG_SHARED "Build shared lib" ${PNG_SHARED}) 62 option(PNG_SHARED "Build shared lib" ${PNG_SHARED})
63else() 63else()
64 option(PNG_SHARED "Build shared lib" ON) 64 option(PNG_SHARED "Build shared lib" ON)
65endif() 65endif()
66if(DEFINED PNG_STATIC) 66if(DEFINED PNG_STATIC)
67 option(PNG_STATIC "Build static lib" ${PNG_STATIC}) 67 option(PNG_STATIC "Build static lib" ${PNG_STATIC})
68else() 68else()
69 option(PNG_STATIC "Build static lib" ON) 69 option(PNG_STATIC "Build static lib" ON)
70endif() 70endif()
71 71
72option(PNG_TESTS "Build libpng tests" YES) 72option(PNG_TESTS "Build libpng tests" YES)
73 73
74# Many more configuration options could be added here 74# Many more configuration options could be added here
75option(PNG_DEBUG "Build with debug output" NO) 75option(PNG_DEBUG "Build with debug output" NO)
76option(PNGARG "Disable ANSI-C prototypes" NO) 76option(PNGARG "Disable ANSI-C prototypes" NO)
77 77
78# SET LIBNAME 78# SET LIBNAME
79set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) 79set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR})
80 80
81# to distinguish between debug and release lib 81# to distinguish between debug and release lib
82set(CMAKE_DEBUG_POSTFIX "d") 82set(CMAKE_DEBUG_POSTFIX "d")
83 83
84# Use the prebuilt pnglibconf.h file from the scripts folder 84# Use the prebuilt pnglibconf.h file from the scripts folder
85# TODO: fix this by building with awk; without this no cmake build can be 85# TODO: fix this by building with awk; without this no cmake build can be
86# configured directly (to do so indirectly use your local awk to build a 86# configured directly (to do so indirectly use your local awk to build a
87# pnglibconf.h in the build directory.) 87# pnglibconf.h in the build directory.)
88configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt 88configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt
89 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h) 89 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
90include_directories(${CMAKE_CURRENT_BINARY_DIR}) 90include_directories(${CMAKE_CURRENT_BINARY_DIR})
91 91
92# OUR SOURCES 92# OUR SOURCES
93set(libpng_public_hdrs 93set(libpng_public_hdrs
94 png.h 94 png.h
95 pngconf.h 95 pngconf.h
96 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h 96 ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h
97) 97)
98set(libpng_sources 98set(libpng_sources
99 ${libpng_public_hdrs} 99 ${libpng_public_hdrs}
100 pngdebug.h 100 pngdebug.h
101 pnginfo.h 101 pnginfo.h
102 pngpriv.h 102 pngpriv.h
103 pngstruct.h 103 pngstruct.h
104 png.c 104 png.c
105 pngerror.c 105 pngerror.c
106 pngget.c 106 pngget.c
107 pngmem.c 107 pngmem.c
108 pngpread.c 108 pngpread.c
109 pngread.c 109 pngread.c
110 pngrio.c 110 pngrio.c
111 pngrtran.c 111 pngrtran.c
112 pngrutil.c 112 pngrutil.c
113 pngset.c 113 pngset.c
114 pngtrans.c 114 pngtrans.c
115 pngwio.c 115 pngwio.c
116 pngwrite.c 116 pngwrite.c
117 pngwtran.c 117 pngwtran.c
118 pngwutil.c 118 pngwutil.c
119) 119)
120set(pngtest_sources 120set(pngtest_sources
121 pngtest.c 121 pngtest.c
122) 122)
123set(pngvalid_sources 123set(pngvalid_sources
124 contrib/libtests/pngvalid.c 124 contrib/libtests/pngvalid.c
125) 125)
126# SOME NEEDED DEFINITIONS 126# SOME NEEDED DEFINITIONS
127 127
128add_definitions(-DPNG_CONFIGURE_LIBPNG) 128add_definitions(-DPNG_CONFIGURE_LIBPNG)
129 129
130if(MSVC) 130if(MSVC)
131 add_definitions(-D_CRT_SECURE_NO_DEPRECATE) 131 add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
132endif(MSVC) 132endif(MSVC)
133 133
134if(PNG_DEBUG) 134if(PNG_DEBUG)
135 add_definitions(-DPNG_DEBUG) 135 add_definitions(-DPNG_DEBUG)
136endif() 136endif()
137 137
138# NOW BUILD OUR TARGET 138# NOW BUILD OUR TARGET
139include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR}) 139include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
140 140
141if(PNG_SHARED) 141if(PNG_SHARED)
142 add_library(${PNG_LIB_NAME} SHARED ${libpng_sources}) 142 add_library(${PNG_LIB_NAME} SHARED ${libpng_sources})
143 if(MSVC) 143 if(MSVC)
144 # msvc does not append 'lib' - do it here to have consistent name 144 # msvc does not append 'lib' - do it here to have consistent name
145 set_target_properties(${PNG_LIB_NAME} PROPERTIES PREFIX "lib") 145 set_target_properties(${PNG_LIB_NAME} PROPERTIES PREFIX "lib")
146 set_target_properties(${PNG_LIB_NAME} PROPERTIES IMPORT_PREFIX "lib") 146 set_target_properties(${PNG_LIB_NAME} PROPERTIES IMPORT_PREFIX "lib")
147 endif() 147 endif()
148 target_link_libraries(${PNG_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY}) 148 target_link_libraries(${PNG_LIB_NAME} ${ZLIB_LIBRARY} ${M_LIBRARY})
149endif() 149endif()
150 150
151if(PNG_STATIC) 151if(PNG_STATIC)
152# does not work without changing name 152# does not work without changing name
153 set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static) 153 set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static)
154 add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources}) 154 add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources})
155 if(MSVC) 155 if(MSVC)
156 # msvc does not append 'lib' - do it here to have consistent name 156 # msvc does not append 'lib' - do it here to have consistent name
157 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES PREFIX "lib") 157 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES PREFIX "lib")
158 endif() 158 endif()
159 target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY}) 159 target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY})
160endif() 160endif()
161 161
162if(PNG_SHARED AND WIN32) 162if(PNG_SHARED AND WIN32)
163 set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL) 163 set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL)
164endif() 164endif()
165 165
166if(PNG_TESTS AND PNG_SHARED) 166if(PNG_TESTS AND PNG_SHARED)
167 # does not work with msvc due to png_lib_ver issue 167 # does not work with msvc due to png_lib_ver issue
168 add_executable(pngtest ${pngtest_sources}) 168 add_executable(pngtest ${pngtest_sources})
169 target_link_libraries(pngtest ${PNG_LIB_NAME}) 169 target_link_libraries(pngtest ${PNG_LIB_NAME})
170 add_test(pngtest ./pngtest ${CMAKE_CURRENT_SOURCE_DIR}/pngtest.png) 170 add_test(pngtest ./pngtest ${CMAKE_CURRENT_SOURCE_DIR}/pngtest.png)
171 # 171 #
172 add_executable(pngvalid ${pngvalid_sources}) 172 add_executable(pngvalid ${pngvalid_sources})
173 target_link_libraries(pngvalid ${PNG_LIB_NAME}) 173 target_link_libraries(pngvalid ${PNG_LIB_NAME})
174 add_test(pngvalid ./pngvalid) 174 add_test(pngvalid ./pngvalid)
175endif() 175endif()
176 176
177# Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set 177# Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set
178IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) 178IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
179 IF(WIN32) 179 IF(WIN32)
180 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "bin") 180 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "bin")
181 ELSE(WIN32) 181 ELSE(WIN32)
182 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "lib") 182 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "lib")
183 ENDIF(WIN32) 183 ENDIF(WIN32)
184ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) 184ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
185 185
186# Set a variable with CMake code which: 186# Set a variable with CMake code which:
187# Creates a symlink from src to dest (if possible) or alternatively 187# Creates a symlink from src to dest (if possible) or alternatively
188# copies if different. 188# copies if different.
189macro(CREATE_SYMLINK SRC_FILE DEST_FILE) 189macro(CREATE_SYMLINK SRC_FILE DEST_FILE)
190 FILE(REMOVE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}) 190 FILE(REMOVE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE})
191 if(WIN32 AND NOT CYGWIN AND NOT MINGW) 191 if(WIN32 AND NOT CYGWIN AND NOT MINGW)
192 ADD_CUSTOM_COMMAND( 192 ADD_CUSTOM_COMMAND(
193 OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE} 193 OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE}
194 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} 194 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}
195 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE} 195 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE}
196 DEPENDS ${PNG_LIB_NAME} ${PNG_LIB_NAME_STATIC} 196 DEPENDS ${PNG_LIB_NAME} ${PNG_LIB_NAME_STATIC}
197 ) 197 )
198 ADD_CUSTOM_TARGET(${DEST_FILE}_COPY ALL DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}) 198 ADD_CUSTOM_TARGET(${DEST_FILE}_COPY ALL DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE})
199 else(WIN32 AND NOT CYGWIN AND NOT MINGW) 199 else(WIN32 AND NOT CYGWIN AND NOT MINGW)
200 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) 200 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
201 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) 201 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
202 endif(WIN32 AND NOT CYGWIN AND NOT MINGW) 202 endif(WIN32 AND NOT CYGWIN AND NOT MINGW)
203endmacro() 203endmacro()
204 204
205# libpng is a library so default to 'lib' 205# libpng is a library so default to 'lib'
206if(NOT DEFINED CMAKE_INSTALL_LIBDIR) 206if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
207 set(CMAKE_INSTALL_LIBDIR lib) 207 set(CMAKE_INSTALL_LIBDIR lib)
208endif(NOT DEFINED CMAKE_INSTALL_LIBDIR) 208endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
209 209
210# CREATE PKGCONFIG FILES 210# CREATE PKGCONFIG FILES
211# we use the same files like ./configure, so we have to set its vars 211# we use the same files like ./configure, so we have to set its vars
212# Only do this on Windows for Cygwin - the files don't make much sense outside 212# Only do this on Windows for Cygwin - the files don't make much sense outside
213# a UNIX look alike 213# a UNIX look alike
214if(NOT WIN32 OR CYGWIN OR MINGW) 214if(NOT WIN32 OR CYGWIN OR MINGW)
215 set(prefix ${CMAKE_INSTALL_PREFIX}) 215 set(prefix ${CMAKE_INSTALL_PREFIX})
216 set(exec_prefix ${CMAKE_INSTALL_PREFIX}) 216 set(exec_prefix ${CMAKE_INSTALL_PREFIX})
217 set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) 217 set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
218 set(includedir ${CMAKE_INSTALL_PREFIX}/include) 218 set(includedir ${CMAKE_INSTALL_PREFIX}/include)
219 set(LIBS "-lz -lm") 219 set(LIBS "-lz -lm")
220 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in 220 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
221 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) 221 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
222 CREATE_SYMLINK(${PNGLIB_NAME}.pc libpng.pc) 222 CREATE_SYMLINK(${PNGLIB_NAME}.pc libpng.pc)
223 223
224 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in 224 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
225 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) 225 ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
226 CREATE_SYMLINK(${PNGLIB_NAME}-config libpng-config) 226 CREATE_SYMLINK(${PNGLIB_NAME}-config libpng-config)
227endif(NOT WIN32 OR CYGWIN OR MINGW) 227endif(NOT WIN32 OR CYGWIN OR MINGW)
228 228
229# SET UP LINKS 229# SET UP LINKS
230if(PNG_SHARED) 230if(PNG_SHARED)
231 set_target_properties(${PNG_LIB_NAME} PROPERTIES 231 set_target_properties(${PNG_LIB_NAME} PROPERTIES
232# VERSION 15.${PNGLIB_RELEASE}.1.5.9 232# VERSION 15.${PNGLIB_RELEASE}.1.5.9
233 VERSION 15.${PNGLIB_RELEASE}.0 233 VERSION 15.${PNGLIB_RELEASE}.0
234 SOVERSION 15 234 SOVERSION 15
235 CLEAN_DIRECT_OUTPUT 1) 235 CLEAN_DIRECT_OUTPUT 1)
236endif() 236endif()
237if(PNG_STATIC) 237if(PNG_STATIC)
238 # MSVC doesn't use a different file extension for shared vs. static 238 # MSVC doesn't use a different file extension for shared vs. static
239 # libs. We are able to change OUTPUT_NAME to remove the _static 239 # libs. We are able to change OUTPUT_NAME to remove the _static
240 # for all other platforms. 240 # for all other platforms.
241 if(NOT MSVC) 241 if(NOT MSVC)
242 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES 242 set_target_properties(${PNG_LIB_NAME_STATIC} PROPERTIES
243 OUTPUT_NAME ${PNG_LIB_NAME} 243 OUTPUT_NAME ${PNG_LIB_NAME}
244 CLEAN_DIRECT_OUTPUT 1) 244 CLEAN_DIRECT_OUTPUT 1)
245 endif() 245 endif()
246endif() 246endif()
247 247
248# If CMake > 2.4.x, we set a variable used below to export 248# If CMake > 2.4.x, we set a variable used below to export
249# targets to an export file. 249# targets to an export file.
250# TODO: Use VERSION_GREATER after our cmake_minimum_required >= 2.6.2 250# TODO: Use VERSION_GREATER after our cmake_minimum_required >= 2.6.2
251if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4) 251if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
252 set(PNG_EXPORT_RULE EXPORT libpng) 252 set(PNG_EXPORT_RULE EXPORT libpng)
253elseif(CMAKE_MAJOR_VERSION GREATER 2) # future proof 253elseif(CMAKE_MAJOR_VERSION GREATER 2) # future proof
254 set(PNG_EXPORT_RULE EXPORT libpng) 254 set(PNG_EXPORT_RULE EXPORT libpng)
255endif() 255endif()
256 256
257# INSTALL 257# INSTALL
258if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) 258if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
259 if(PNG_SHARED) 259 if(PNG_SHARED)
260 install(TARGETS ${PNG_LIB_NAME} 260 install(TARGETS ${PNG_LIB_NAME}
261 ${PNG_EXPORT_RULE} 261 ${PNG_EXPORT_RULE}
262 RUNTIME DESTINATION bin 262 RUNTIME DESTINATION bin
263 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 263 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
264 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) 264 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
265 265
266 # Create a symlink for libpng.dll.a => libpng15.dll.a on Cygwin 266 # Create a symlink for libpng.dll.a => libpng15.dll.a on Cygwin
267 if(CYGWIN OR MINGW) 267 if(CYGWIN OR MINGW)
268 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE}) 268 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE})
269 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) 269 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME)
270 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}) 270 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_IMPORT_LIBRARY_SUFFIX})
271 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} 271 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}
272 DESTINATION ${CMAKE_INSTALL_LIBDIR}) 272 DESTINATION ${CMAKE_INSTALL_LIBDIR})
273 endif(CYGWIN OR MINGW) 273 endif(CYGWIN OR MINGW)
274 274
275 if(NOT WIN32) 275 if(NOT WIN32)
276 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE}) 276 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE})
277 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) 277 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME)
278 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_SHARED_LIBRARY_SUFFIX}) 278 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_SHARED_LIBRARY_SUFFIX})
279 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} 279 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}
280 DESTINATION ${CMAKE_INSTALL_LIBDIR}) 280 DESTINATION ${CMAKE_INSTALL_LIBDIR})
281 endif(NOT WIN32) 281 endif(NOT WIN32)
282 endif(PNG_SHARED) 282 endif(PNG_SHARED)
283 283
284 if(PNG_STATIC) 284 if(PNG_STATIC)
285 install(TARGETS ${PNG_LIB_NAME_STATIC} 285 install(TARGETS ${PNG_LIB_NAME_STATIC}
286 ${PNG_EXPORT_RULE} 286 ${PNG_EXPORT_RULE}
287 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 287 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
288 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) 288 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
289 if(NOT WIN32 OR CYGWIN OR MINGW) 289 if(NOT WIN32 OR CYGWIN OR MINGW)
290 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME_STATIC} LOCATION_${CMAKE_BUILD_TYPE}) 290 get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME_STATIC} LOCATION_${CMAKE_BUILD_TYPE})
291 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) 291 get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME)
292 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_STATIC_LIBRARY_SUFFIX}) 292 CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_STATIC_LIBRARY_SUFFIX})
293 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} 293 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}
294 DESTINATION ${CMAKE_INSTALL_LIBDIR}) 294 DESTINATION ${CMAKE_INSTALL_LIBDIR})
295 endif(NOT WIN32 OR CYGWIN OR MINGW) 295 endif(NOT WIN32 OR CYGWIN OR MINGW)
296 endif() 296 endif()
297endif() 297endif()
298 298
299if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) 299if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
300 install(FILES ${libpng_public_hdrs} DESTINATION include) 300 install(FILES ${libpng_public_hdrs} DESTINATION include)
301 install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME}) 301 install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME})
302endif() 302endif()
303if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL ) 303if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL )
304 if(NOT WIN32 OR CYGWIN OR MINGW) 304 if(NOT WIN32 OR CYGWIN OR MINGW)
305 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) 305 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin)
306 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config 306 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
307 DESTINATION bin) 307 DESTINATION bin)
308 endif(NOT WIN32 OR CYGWIN OR MINGW) 308 endif(NOT WIN32 OR CYGWIN OR MINGW)
309endif() 309endif()
310 310
311if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) 311if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
312 # Install man pages 312 # Install man pages
313 if(NOT PNG_MAN_DIR) 313 if(NOT PNG_MAN_DIR)
314 set(PNG_MAN_DIR "share/man") 314 set(PNG_MAN_DIR "share/man")
315 endif() 315 endif()
316 install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3) 316 install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3)
317 install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5) 317 install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5)
318 # Install pkg-config files 318 # Install pkg-config files
319 if(NOT WIN32 OR CYGWIN OR MINGW) 319 if(NOT WIN32 OR CYGWIN OR MINGW)
320 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc 320 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
321 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) 321 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
322 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config 322 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
323 DESTINATION bin) 323 DESTINATION bin)
324 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc 324 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
325 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) 325 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
326 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config 326 install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
327 DESTINATION bin) 327 DESTINATION bin)
328 endif(NOT WIN32 OR CYGWIN OR MINGW) 328 endif(NOT WIN32 OR CYGWIN OR MINGW)
329endif() 329endif()
330 330
331# On versions of CMake that support it, create an export file CMake 331# On versions of CMake that support it, create an export file CMake
332# users can include() to import our targets 332# users can include() to import our targets
333if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL ) 333if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL )
334 install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake) 334 install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake)
335endif() 335endif()
336 336
337# what's with libpng-$VER%.txt and all the extra files? 337# what's with libpng-$VER%.txt and all the extra files?
338 338
339# UNINSTALL 339# UNINSTALL
340# do we need this? 340# do we need this?
341 341
342# DIST 342# DIST
343# do we need this? 343# do we need this?
344 344
345# to create msvc import lib for mingw compiled shared lib 345# to create msvc import lib for mingw compiled shared lib
346# pexports libpng.dll > libpng.def 346# pexports libpng.dll > libpng.def
347# lib /def:libpng.def /machine:x86 347# lib /def:libpng.def /machine:x86
348 348