From 2f707919391c8a627740514d4d180559696c8593 Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Thu, 12 Mar 2015 07:26:12 -0500 Subject: [PATCH] [libpng15] Updated CMakeLists.txt to add OSX framework, change YES/NO to ON/OFF for consistency, and remove some useless tests (Alexey Petruchik). --- ANNOUNCE | 24 +++++++++++++--------- CHANGES | 6 +++++- CMakeLists.txt | 56 ++++++++++++++++++++++++++++---------------------- 3 files changed, 50 insertions(+), 36 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 2c89fe900..d988f0566 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.5.22rc02 - March 9, 2015 +Libpng 1.5.22rc03 - March 12, 2015 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. @@ -9,21 +9,21 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - 1.5.22rc02.tar.xz (LZMA-compressed, recommended) - 1.5.22rc02.tar.gz - 1.5.22rc02.tar.bz2 + 1.5.22rc03.tar.xz (LZMA-compressed, recommended) + 1.5.22rc03.tar.gz + 1.5.22rc03.tar.bz2 Source files with CRLF line endings (for Windows), without the "configure" script - lp1522r02.7z (LZMA-compressed, recommended) - lp1522r02.zip + lp1522r03.7z (LZMA-compressed, recommended) + lp1522r03.zip Other information: - 1.5.22rc02-README.txt - 1.5.22rc02-LICENSE.txt - libpng-1.5.22rc02-*.asc (armored detached GPG signatures) + 1.5.22rc03-README.txt + 1.5.22rc03-LICENSE.txt + libpng-1.5.22rc03-*.asc (armored detached GPG signatures) Changes since the last public release (1.5.21): @@ -52,11 +52,15 @@ Version 1.5.22beta04 [February 25, 2015] Version 1.5.22rc01 [March 4, 2015] No changes. -Version 1.5.22rc02 [March 9, 2015] +Version 1.5.22rc02 [March 9, 2014] Removed some comments that the configure script did not handle properly from scripts/pnglibconf.dfa and pnglibconf.h.prebuilt. Merged png_free_data() with libpng-1.6.17 +Version 1.5.22rc03 [March 12, 2015] + Updated CMakeLists.txt to add OSX framework, change YES/NO to ON/OFF + for consistency, and remove some useless tests (Alexey Petruchik). + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/CHANGES b/CHANGES index 05d870b2c..e71b59386 100644 --- a/CHANGES +++ b/CHANGES @@ -4316,11 +4316,15 @@ Version 1.5.22beta04 [February 25, 2015] Version 1.5.22rc01 [March 4, 2015] No changes. -Version 1.5.22rc02 [March 9, 2015] +Version 1.5.22rc02 [March 9, 2014] Removed some comments that the configure script did not handle properly from scripts/pnglibconf.dfa and pnglibconf.h.prebuilt. Merged png_free_data() with libpng-1.6.17 +Version 1.5.22rc03 [March 12, 2015] + Updated CMakeLists.txt to add OSX framework, change YES/NO to ON/OFF + for consistency, and remove some useless tests (Alexey Petruchik). + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/CMakeLists.txt b/CMakeLists.txt index 0df73a4e3..e07dbdb99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # CMakeLists.txt -# Copyright (C) 2007-2014 Glenn Randers-Pehrson +# Copyright (C) 2007-2015 Glenn Randers-Pehrson # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer @@ -30,8 +30,7 @@ if(NOT WIN32) PATHS /usr/lib /usr/local/lib ) if(NOT M_LIBRARY) - message(STATUS - "math library 'libm' not found - floating point support disabled") + message(STATUS "math lib 'libm' not found; floating point support disabled") endif() else() # not needed on windows @@ -39,22 +38,14 @@ else() endif() # COMMAND LINE OPTIONS -if(DEFINED PNG_SHARED) - option(PNG_SHARED "Build shared lib" ${PNG_SHARED}) -else() - option(PNG_SHARED "Build shared lib" ON) -endif() -if(DEFINED PNG_STATIC) - option(PNG_STATIC "Build static lib" ${PNG_STATIC}) -else() - option(PNG_STATIC "Build static lib" ON) -endif() - -option(PNG_TESTS "Build libpng tests" YES) +option(PNG_SHARED "Build shared lib" ON) +option(PNG_STATIC "Build static lib" ON) +option(PNG_TESTS "Build libpng tests" ON) # Many more configuration options could be added here -option(PNG_DEBUG "Build with debug output" NO) -option(PNGARG "Disable ANSI-C prototypes" NO) +option(PNG_FRAMEWORK "Build OS X framework" OFF) +option(PNG_DEBUG "Build with debug output" OFF) +option(PNGARG "Disable ANSI-C prototypes" OFF) # SET LIBNAME set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) @@ -106,8 +97,6 @@ set(pngvalid_sources ) # SOME NEEDED DEFINITIONS -add_definitions(-DPNG_CONFIGURE_LIBPNG) - if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) endif(MSVC) @@ -133,7 +122,7 @@ if(PNG_SHARED) endif() if(PNG_STATIC) -# does not work without changing name + # does not work without changing name set(PNG_LIB_NAME_STATIC ${PNG_LIB_NAME}_static) add_library(${PNG_LIB_NAME_STATIC} STATIC ${libpng_sources}) list(APPEND PNG_LIB_TARGETS ${PNG_LIB_NAME_STATIC}) @@ -144,10 +133,27 @@ if(PNG_STATIC) target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY}) endif() +if(PNG_FRAMEWORK) + set(PNG_LIB_NAME_FRAMEWORK ${PNG_LIB_NAME}_framework) + add_library(${PNG_LIB_NAME_FRAMEWORK} SHARED ${libpng_sources}) + list(APPEND PNG_LIB_TARGETS ${PNG_LIB_NAME_FRAMEWORK}) + set_target_properties(${PNG_LIB_NAME_FRAMEWORK} PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION ${PNGLIB_VERSION} + MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PNGLIB_MAJOR}.${PNGLIB_MINOR} + MACOSX_FRAMEWORK_BUNDLE_VERSION ${PNGLIB_VERSION} + MACOSX_FRAMEWORK_IDENTIFIER org.libpng.libpng + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + PUBLIC_HEADER "${libpng_public_hdrs}" + OUTPUT_NAME png) + target_link_libraries(${PNG_LIB_NAME_FRAMEWORK} ${ZLIB_LIBRARY} ${M_LIBRARY}) +endif() + if(NOT PNG_LIB_TARGETS) message(SEND_ERROR "No library variant selected to build. " - "Please enable at least one of the following options: PNG_STATIC, PNG_SHARED") + "Please enable at least one of the following options: " + " PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK") endif() if(PNG_SHARED AND WIN32) @@ -187,7 +193,6 @@ macro(CREATE_SYMLINK SRC_FILE DEST_FILE) get_filename_component(LINK_TARGET "${SRC_FILE}" NAME) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${LINK_TARGET}" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${LINK_TARGET}" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${LINK_TARGET}" ${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) endif(WIN32 AND NOT CYGWIN AND NOT MSYS) endmacro() @@ -201,7 +206,7 @@ endif(NOT DEFINED CMAKE_INSTALL_LIBDIR) # we use the same files like ./configure, so we have to set its vars # Only do this on Windows for Cygwin - the files don't make much sense outside # a UNIX look alike -if(NOT WIN32 OR CYGWIN OR MINGW) +if(NOT WIN32 OR CYGWIN OR MINGW) set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${CMAKE_INSTALL_PREFIX}) set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) @@ -219,7 +224,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(${PNG_LIB_NAME} PROPERTIES -# VERSION 15.${PNGLIB_RELEASE}.1.5.22rc02 +# VERSION 15.${PNGLIB_RELEASE}.1.5.22rc03 VERSION 15.${PNGLIB_RELEASE}.0 SOVERSION 15 CLEAN_DIRECT_OUTPUT 1) @@ -250,7 +255,8 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) ${PNG_EXPORT_RULE} RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(PNG_SHARED) # Create a symlink for libpng.dll.a => libpng15.dll.a on Cygwin