[devel] Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for

installing libpng in /usr/lib64 (Funda Wang).  Also ported other recent
changes from libpng-1.4.4beta07:
  Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
  Revised CMakeLists.txt to make symlinks instead of copies when installing.
  Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
This commit is contained in:
Glenn Randers-Pehrson 2010-08-23 17:07:32 -05:00
parent a7866f7b95
commit 8c037305e4
3 changed files with 80 additions and 34 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.5.0beta43 - August 11, 2010 Libpng 1.5.0beta44 - August 11, 2010
This is not intended to be a public release. It will be replaced This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version. within a few weeks by a public version or by another test version.
@ -9,20 +9,20 @@ Files available for download:
Source files with LF line endings (for Unix/Linux) and with a Source files with LF line endings (for Unix/Linux) and with a
"configure" script "configure" script
1.5.0beta43.tar.xz (LZMA-compressed, recommended) 1.5.0beta44.tar.xz (LZMA-compressed, recommended)
1.5.0beta43.tar.gz 1.5.0beta44.tar.gz
1.5.0beta43.tar.bz2 1.5.0beta44.tar.bz2
Source files with CRLF line endings (for Windows), without the Source files with CRLF line endings (for Windows), without the
"configure" script "configure" script
lp150b43.zip lp150b44.zip
lp150b43.7z lp150b44.7z
Other information: Other information:
1.5.0beta43-README.txt 1.5.0beta44-README.txt
1.5.0beta43-LICENSE.txt 1.5.0beta44-LICENSE.txt
Changes since the last public release (1.4.1): Changes since the last public release (1.4.1):
@ -349,7 +349,7 @@ version 1.5.0beta42 [August 18, 2010]
Made all API functions that have const arguments and constant string Made all API functions that have const arguments and constant string
literal pointers declare them (John Bowler). literal pointers declare them (John Bowler).
version 1.5.0beta43 [August 11, 2010] Version 1.5.0beta43 [August 20, 2010]
Removed spurious tabs, shorten long lines (no source change) Removed spurious tabs, shorten long lines (no source change)
Also added scripts/chkfmt to validate the format of all the files that can Also added scripts/chkfmt to validate the format of all the files that can
reasonably be validated (it is suggested to run "make distclean" before reasonably be validated (it is suggested to run "make distclean" before
@ -362,6 +362,13 @@ version 1.5.0beta43 [August 11, 2010]
in an earlier update. Fixed to declare the auto variables at the head. in an earlier update. Fixed to declare the auto variables at the head.
Use cexcept.h in pngvalid.c. Use cexcept.h in pngvalid.c.
Version 1.5.0beta44 [August 11, 2010]
Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
installing libpng in /usr/lib64 (Funda Wang).
Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
Revised CMakeLists.txt to make symlinks instead of copies when installing.
Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net: Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
(subscription required; visit (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement https://lists.sourceforge.net/lists/listinfo/png-mng-implement

View File

@ -2986,7 +2986,7 @@ Version 1.5.0beta42 [August 18, 2010]
Made all API functions that have const arguments and constant string Made all API functions that have const arguments and constant string
literal pointers declare them (John Bowler). literal pointers declare them (John Bowler).
Version 1.5.0beta43 [August 11, 2010] Version 1.5.0beta43 [August 20, 2010]
Removed spurious tabs, shorten long lines (no source change) Removed spurious tabs, shorten long lines (no source change)
Also added scripts/chkfmt to validate the format of all the files that can Also added scripts/chkfmt to validate the format of all the files that can
reasonably be validated (it is suggested to run "make distclean" before reasonably be validated (it is suggested to run "make distclean" before
@ -2999,6 +2999,13 @@ Version 1.5.0beta43 [August 11, 2010]
in an earlier update. Fixed to declare the auto variables at the head. in an earlier update. Fixed to declare the auto variables at the head.
Use cexcept.h in pngvalid.c. Use cexcept.h in pngvalid.c.
Version 1.5.0beta44 [August 11, 2010]
Updated CMakeLists.txt to use CMAKE_INSTALL_LIBDIR variable; useful for
installing libpng in /usr/lib64 (Funda Wang).
Revised CMakeLists.txt to put the man pages in share/man/man* not man/man*
Revised CMakeLists.txt to make symlinks instead of copies when installing.
Changed PNG_LIB_NAME from pngNN to libpngNN in CMakeLists.txt (Philip Lowman)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement https://lists.sourceforge.net/lists/listinfo/png-mng-implement

View File

@ -91,7 +91,7 @@ else()
endif() endif()
# SET LIBNAME # SET LIBNAME
set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) set(PNG_LIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
# to distinguish between debug and release lib # to distinguish between debug and release lib
set(CMAKE_DEBUG_POSTFIX "d") set(CMAKE_DEBUG_POSTFIX "d")
@ -101,7 +101,7 @@ set(CMAKE_DEBUG_POSTFIX "d")
set(libpng_sources set(libpng_sources
png.h png.h
pngconf.h pngconf.h
pngpriv.h pngpriv.h
png.c png.c
pngerror.c pngerror.c
pngget.c pngget.c
@ -123,8 +123,14 @@ set(pngtest_sources
) )
# SOME NEEDED DEFINITIONS # SOME NEEDED DEFINITIONS
add_definitions(-DPNG_CONFIGURE_LIBPNG)
if(_AIX)
add_definitions(-D_ALL_SOURCE)
endif(_AIX)
if(MSVC) if(MSVC)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-DPNG_NO_MODULEDEF -D_CRT_SECURE_NO_DEPRECATE)
endif(MSVC) endif(MSVC)
if(PNG_SHARED OR NOT MSVC) if(PNG_SHARED OR NOT MSVC)
@ -146,7 +152,7 @@ if(PNG_NO_STDIO)
endif() endif()
if(PNG_DEBUG) if(PNG_DEBUG)
add_definitions(-DPNG_DEBUG=1) add_definitions(-DPNG_DEBUG)
endif() endif()
if(NOT M_LIBRARY AND NOT WIN32) if(NOT M_LIBRARY AND NOT WIN32)
@ -190,24 +196,36 @@ endif()
# CREATE PKGCONFIG FILES # CREATE PKGCONFIG FILES
# we use the same files like ./configure, so we have to set its vars # we use the same files like ./configure, so we have to set its vars
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(prefix ${CMAKE_INSTALL_PREFIX}) set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${CMAKE_INSTALL_PREFIX})
set(libdir ${CMAKE_INSTALL_PREFIX}/lib) set(libdir ${CMAKE_INSTALL_LIBDIR})
set(includedir ${CMAKE_INSTALL_PREFIX}/include) set(includedir ${CMAKE_INSTALL_PREFIX}/include)
set(LIBS "-lz -lm")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in
${CMAKE_CURRENT_BINARY_DIR}/libpng.pc) ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in install(CODE "
${CMAKE_CURRENT_BINARY_DIR}/libpng-config) MESSAGE(STATUS \"Symlinking ${PNGLIB_NAME}.pc to libpng.pc\")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc) \"${PNGLIB_NAME}.pc\"
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in \"libpng.pc\")
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config) ")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in
${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY)
install(CODE "
MESSAGE(STATUS \"Symlinking ${PNGLIB_NAME}-config to libpng-config\")
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
\"${PNGLIB_NAME}-config\"
\"libpng-config\")
")
# SET UP LINKS # SET UP LINKS
if(PNG_SHARED) if(PNG_SHARED)
set_target_properties(${PNG_LIB_NAME} PROPERTIES set_target_properties(${PNG_LIB_NAME} PROPERTIES
# VERSION 15.${PNGLIB_RELEASE}.1.5.0beta43 # VERSION 15.${PNGLIB_RELEASE}.1.5.0beta44
VERSION 15.${PNGLIB_RELEASE}.0 VERSION 15.${PNGLIB_RELEASE}.0
SOVERSION 15 SOVERSION 15
CLEAN_DIRECT_OUTPUT 1) CLEAN_DIRECT_OUTPUT 1)
@ -226,13 +244,27 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
if(PNG_SHARED) if(PNG_SHARED)
install(TARGETS ${PNG_LIB_NAME} install(TARGETS ${PNG_LIB_NAME}
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
LIBRARY DESTINATION lib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(CODE "
MESSAGE(STATUS \"Symlinking ${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} to libpng${CMAKE_SHARED_LIBRARY_SUFFIX}\")
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
\"${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\"
\"libpng${CMAKE_SHARED_LIBRARY_SUFFIX}\")
")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif() endif()
if(PNG_STATIC) if(PNG_STATIC)
install(TARGETS ${PNG_LIB_NAME_STATIC} install(TARGETS ${PNG_LIB_NAME_STATIC}
LIBRARY DESTINATION lib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(CODE "
MESSAGE(STATUS \"Symlinking ${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} to libpng${CMAKE_STATIC_LIBRARY_SUFFIX}\")
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
\"${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}\"
\"libpng${CMAKE_STATIC_LIBRARY_SUFFIX}\")
")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif() endif()
endif() endif()
@ -247,16 +279,16 @@ if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL )
endif() endif()
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
# Install man pages # Install man pages
install(FILES libpng.3 libpngpf.3 DESTINATION man/man3) install(FILES libpng.3 libpngpf.3 DESTINATION share/man/man3)
install(FILES png.5 DESTINATION man/man5) install(FILES png.5 DESTINATION share/man/man5)
# Install pkg-config files # Install pkg-config files
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc
DESTINATION lib/pkgconfig) DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng-config install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config
DESTINATION bin) DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc
DESTINATION lib/pkgconfig) DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config
DESTINATION bin) DESTINATION bin)
endif() endif()