@ -5,6 +5,9 @@ project(zlib C)
set ( VERSION "1.3.1" )
set ( ZLIB_SHARED_PROJECT_NAME "${PROJECT_NAME}" CACHE STRING "Shared library target name" )
set ( ZLIB_STATIC_PROJECT_NAME "${ZLIB_SHARED_PROJECT_NAME}static" CACHE STRING "Static library target name" )
option ( ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON )
set ( INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables" )
@ -149,12 +152,12 @@ if(MINGW)
set ( ZLIB_DLL_SRCS ${ CMAKE_CURRENT_BINARY_DIR } /zlib1rc.obj )
endif ( MINGW )
add_library ( zlib SHARED ${ ZLIB_SRCS } ${ ZLIB_DLL_SRCS } ${ ZLIB_PUBLIC_HDRS } ${ ZLIB_PRIVATE_HDRS } )
target_include_directories ( zlib PUBLIC ${ CMAKE_CURRENT_BINARY_DIR } ${ CMAKE_CURRENT_SOURCE_DIR } )
add_library ( zlibstatic STATIC ${ ZLIB_SRCS } ${ ZLIB_PUBLIC_HDRS } ${ ZLIB_PRIVATE_HDRS } )
target_include_directories ( zlibstatic PUBLIC ${ CMAKE_CURRENT_BINARY_DIR } ${ CMAKE_CURRENT_SOURCE_DIR } )
set_target_properties ( zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL )
set_target_properties ( zlib PROPERTIES SOVERSION 1 )
add_library ( ${ ZLIB_SHARED_PROJECT_NAME } SHARED ${ ZLIB_SRCS } ${ ZLIB_DLL_SRCS } ${ ZLIB_PUBLIC_HDRS } ${ ZLIB_PRIVATE_HDRS } )
target_include_directories ( ${ ZLIB_SHARED_PROJECT_NAME } PUBLIC ${ CMAKE_CURRENT_BINARY_DIR } ${ CMAKE_CURRENT_SOURCE_DIR } )
add_library ( ${ ZLIB_STATIC_PROJECT_NAME } STATIC ${ ZLIB_SRCS } ${ ZLIB_PUBLIC_HDRS } ${ ZLIB_PRIVATE_HDRS } )
target_include_directories ( ${ ZLIB_STATIC_PROJECT_NAME } PUBLIC ${ CMAKE_CURRENT_BINARY_DIR } ${ CMAKE_CURRENT_SOURCE_DIR } )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } PROPERTIES DEFINE_SYMBOL ZLIB_DLL )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } PROPERTIES SOVERSION 1 )
if ( NOT CYGWIN )
# T h i s p r o p e r t y c a u s e s s h a r e d l i b r a r i e s o n L i n u x t o h a v e t h e f u l l v e r s i o n
@ -164,22 +167,22 @@ if(NOT CYGWIN)
#
# T h i s h a s n o e f f e c t w i t h MSVC , o n t h a t p l a t f o r m t h e v e r s i o n i n f o f o r
# t h e D L L c o m e s f r o m t h e r e s o u r c e f i l e w i n 3 2 / z l i b 1 . r c
set_target_properties ( zlib PROPERTIES VERSION ${ ZLIB_FULL_VERSION } )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } PROPERTIES VERSION ${ ZLIB_FULL_VERSION } )
endif ( )
if ( UNIX )
# O n u n i x - l i k e p l a t f o r m s t h e l i b r a r y i s a l m o s t a l w a y s c a l l e d l i b z
set_target_properties ( zlib zlibstatic PROPERTIES OUTPUT_NAME z )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } ${ ZLIB_STATIC_PROJECT_NAME } PROPERTIES OUTPUT_NAME z )
if ( NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX ) )
set_target_properties ( zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\" ${ CMAKE_CURRENT_SOURCE_DIR } /zlib.map\ "" )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } PROPERTIES LINK_FLAGS "-Wl,--version-script,\" ${ CMAKE_CURRENT_SOURCE_DIR } /zlib.map\ "" )
endif ( )
elseif ( BUILD_SHARED_LIBS AND WIN32 )
# C r e a t e s z l i b 1 . d l l w h e n b u i l d i n g s h a r e d l i b r a r y v e r s i o n
set_target_properties ( zlib PROPERTIES SUFFIX "1.dll" )
set_target_properties ( ${ ZLIB_SHARED_PROJECT_NAME } PROPERTIES SUFFIX "1.dll" )
endif ( )
if ( NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
install ( TARGETS zlib zlibstatic
install ( TARGETS ${ ZLIB_SHARED_PROJECT_NAME } ${ ZLIB_STATIC_PROJECT_NAME }
R U N T I M E D E S T I N A T I O N " $ { I N S T A L L _ B I N _ D I R } "
A R C H I V E D E S T I N A T I O N " $ { I N S T A L L _ L I B _ D I R } "
L I B R A R Y D E S T I N A T I O N " $ { I N S T A L L _ L I B _ D I R } " )
@ -199,20 +202,20 @@ endif()
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
if ( ZLIB_BUILD_EXAMPLES )
add_executable ( example test/example.c )
target_link_libraries ( example zlib )
target_link_libraries ( example ${ ZLIB_SHARED_PROJECT_NAME } )
add_test ( example example )
add_executable ( minigzip test/minigzip.c )
target_link_libraries ( minigzip zlib )
target_link_libraries ( minigzip ${ ZLIB_SHARED_PROJECT_NAME } )
if ( HAVE_OFF64_T )
add_executable ( example64 test/example.c )
target_link_libraries ( example64 zlib )
target_link_libraries ( example64 ${ ZLIB_SHARED_PROJECT_NAME } )
set_target_properties ( example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64" )
add_test ( example64 example64 )
add_executable ( minigzip64 test/minigzip.c )
target_link_libraries ( minigzip64 zlib )
target_link_libraries ( minigzip64 ${ ZLIB_SHARED_PROJECT_NAME } )
set_target_properties ( minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64" )
endif ( )
endif ( )