Fossil

Hex Artifact Content
Login

Artifact 21b39c131ad95fe5fdeec73465619a41111a6b99:


0000: 63 6d 61 6b 65 5f 6d 69 6e 69 6d 75 6d 5f 72 65  cmake_minimum_re
0010: 71 75 69 72 65 64 28 56 45 52 53 49 4f 4e 20 32  quired(VERSION 2
0020: 2e 34 2e 34 29 0a 73 65 74 28 43 4d 41 4b 45 5f  .4.4).set(CMAKE_
0030: 41 4c 4c 4f 57 5f 4c 4f 4f 53 45 5f 4c 4f 4f 50  ALLOW_LOOSE_LOOP
0040: 5f 43 4f 4e 53 54 52 55 43 54 53 20 4f 4e 29 0a  _CONSTRUCTS ON).
0050: 0a 70 72 6f 6a 65 63 74 28 7a 6c 69 62 20 43 29  .project(zlib C)
0060: 0a 0a 73 65 74 28 56 45 52 53 49 4f 4e 20 22 31  ..set(VERSION "1
0070: 2e 32 2e 38 22 29 0a 0a 6f 70 74 69 6f 6e 28 41  .2.8")..option(A
0080: 53 4d 36 38 36 20 22 45 6e 61 62 6c 65 20 62 75  SM686 "Enable bu
0090: 69 6c 64 69 6e 67 20 69 36 38 36 20 61 73 73 65  ilding i686 asse
00a0: 6d 62 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 61 74  mbly implementat
00b0: 69 6f 6e 22 29 0a 6f 70 74 69 6f 6e 28 41 4d 44  ion").option(AMD
00c0: 36 34 20 22 45 6e 61 62 6c 65 20 62 75 69 6c 64  64 "Enable build
00d0: 69 6e 67 20 61 6d 64 36 34 20 61 73 73 65 6d 62  ing amd64 assemb
00e0: 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  ly implementatio
00f0: 6e 22 29 0a 0a 73 65 74 28 49 4e 53 54 41 4c 4c  n")..set(INSTALL
0100: 5f 42 49 4e 5f 44 49 52 20 22 24 7b 43 4d 41 4b  _BIN_DIR "${CMAK
0110: 45 5f 49 4e 53 54 41 4c 4c 5f 50 52 45 46 49 58  E_INSTALL_PREFIX
0120: 7d 2f 62 69 6e 22 20 43 41 43 48 45 20 50 41 54  }/bin" CACHE PAT
0130: 48 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20  H "Installation 
0140: 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 65 78  directory for ex
0150: 65 63 75 74 61 62 6c 65 73 22 29 0a 73 65 74 28  ecutables").set(
0160: 49 4e 53 54 41 4c 4c 5f 4c 49 42 5f 44 49 52 20  INSTALL_LIB_DIR 
0170: 22 24 7b 43 4d 41 4b 45 5f 49 4e 53 54 41 4c 4c  "${CMAKE_INSTALL
0180: 5f 50 52 45 46 49 58 7d 2f 6c 69 62 22 20 43 41  _PREFIX}/lib" CA
0190: 43 48 45 20 50 41 54 48 20 22 49 6e 73 74 61 6c  CHE PATH "Instal
01a0: 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79  lation directory
01b0: 20 66 6f 72 20 6c 69 62 72 61 72 69 65 73 22 29   for libraries")
01c0: 0a 73 65 74 28 49 4e 53 54 41 4c 4c 5f 49 4e 43  .set(INSTALL_INC
01d0: 5f 44 49 52 20 22 24 7b 43 4d 41 4b 45 5f 49 4e  _DIR "${CMAKE_IN
01e0: 53 54 41 4c 4c 5f 50 52 45 46 49 58 7d 2f 69 6e  STALL_PREFIX}/in
01f0: 63 6c 75 64 65 22 20 43 41 43 48 45 20 50 41 54  clude" CACHE PAT
0200: 48 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20  H "Installation 
0210: 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 68 65  directory for he
0220: 61 64 65 72 73 22 29 0a 73 65 74 28 49 4e 53 54  aders").set(INST
0230: 41 4c 4c 5f 4d 41 4e 5f 44 49 52 20 22 24 7b 43  ALL_MAN_DIR "${C
0240: 4d 41 4b 45 5f 49 4e 53 54 41 4c 4c 5f 50 52 45  MAKE_INSTALL_PRE
0250: 46 49 58 7d 2f 73 68 61 72 65 2f 6d 61 6e 22 20  FIX}/share/man" 
0260: 43 41 43 48 45 20 50 41 54 48 20 22 49 6e 73 74  CACHE PATH "Inst
0270: 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f  allation directo
0280: 72 79 20 66 6f 72 20 6d 61 6e 75 61 6c 20 70 61  ry for manual pa
0290: 67 65 73 22 29 0a 73 65 74 28 49 4e 53 54 41 4c  ges").set(INSTAL
02a0: 4c 5f 50 4b 47 43 4f 4e 46 49 47 5f 44 49 52 20  L_PKGCONFIG_DIR 
02b0: 22 24 7b 43 4d 41 4b 45 5f 49 4e 53 54 41 4c 4c  "${CMAKE_INSTALL
02c0: 5f 50 52 45 46 49 58 7d 2f 73 68 61 72 65 2f 70  _PREFIX}/share/p
02d0: 6b 67 63 6f 6e 66 69 67 22 20 43 41 43 48 45 20  kgconfig" CACHE 
02e0: 50 41 54 48 20 22 49 6e 73 74 61 6c 6c 61 74 69  PATH "Installati
02f0: 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72  on directory for
0300: 20 70 6b 67 63 6f 6e 66 69 67 20 28 2e 70 63 29   pkgconfig (.pc)
0310: 20 66 69 6c 65 73 22 29 0a 0a 69 6e 63 6c 75 64   files")..includ
0320: 65 28 43 68 65 63 6b 54 79 70 65 53 69 7a 65 29  e(CheckTypeSize)
0330: 0a 69 6e 63 6c 75 64 65 28 43 68 65 63 6b 46 75  .include(CheckFu
0340: 6e 63 74 69 6f 6e 45 78 69 73 74 73 29 0a 69 6e  nctionExists).in
0350: 63 6c 75 64 65 28 43 68 65 63 6b 49 6e 63 6c 75  clude(CheckInclu
0360: 64 65 46 69 6c 65 29 0a 69 6e 63 6c 75 64 65 28  deFile).include(
0370: 43 68 65 63 6b 43 53 6f 75 72 63 65 43 6f 6d 70  CheckCSourceComp
0380: 69 6c 65 73 29 0a 65 6e 61 62 6c 65 5f 74 65 73  iles).enable_tes
0390: 74 69 6e 67 28 29 0a 0a 63 68 65 63 6b 5f 69 6e  ting()..check_in
03a0: 63 6c 75 64 65 5f 66 69 6c 65 28 73 79 73 2f 74  clude_file(sys/t
03b0: 79 70 65 73 2e 68 20 48 41 56 45 5f 53 59 53 5f  ypes.h HAVE_SYS_
03c0: 54 59 50 45 53 5f 48 29 0a 63 68 65 63 6b 5f 69  TYPES_H).check_i
03d0: 6e 63 6c 75 64 65 5f 66 69 6c 65 28 73 74 64 69  nclude_file(stdi
03e0: 6e 74 2e 68 20 20 20 20 48 41 56 45 5f 53 54 44  nt.h    HAVE_STD
03f0: 49 4e 54 5f 48 29 0a 63 68 65 63 6b 5f 69 6e 63  INT_H).check_inc
0400: 6c 75 64 65 5f 66 69 6c 65 28 73 74 64 64 65 66  lude_file(stddef
0410: 2e 68 20 20 20 20 48 41 56 45 5f 53 54 44 44 45  .h    HAVE_STDDE
0420: 46 5f 48 29 0a 0a 23 0a 23 20 43 68 65 63 6b 20  F_H)..#.# Check 
0430: 74 6f 20 73 65 65 20 69 66 20 77 65 20 68 61 76  to see if we hav
0440: 65 20 6c 61 72 67 65 20 66 69 6c 65 20 73 75 70  e large file sup
0450: 70 6f 72 74 0a 23 0a 73 65 74 28 43 4d 41 4b 45  port.#.set(CMAKE
0460: 5f 52 45 51 55 49 52 45 44 5f 44 45 46 49 4e 49  _REQUIRED_DEFINI
0470: 54 49 4f 4e 53 20 2d 44 5f 4c 41 52 47 45 46 49  TIONS -D_LARGEFI
0480: 4c 45 36 34 5f 53 4f 55 52 43 45 3d 31 29 0a 23  LE64_SOURCE=1).#
0490: 20 57 65 20 61 64 64 20 74 68 65 73 65 20 6f 74   We add these ot
04a0: 68 65 72 20 64 65 66 69 6e 69 74 69 6f 6e 73 20  her definitions 
04b0: 68 65 72 65 20 62 65 63 61 75 73 65 20 43 68 65  here because Che
04c0: 63 6b 54 79 70 65 53 69 7a 65 2e 63 6d 61 6b 65  ckTypeSize.cmake
04d0: 0a 23 20 69 6e 20 43 4d 61 6b 65 20 32 2e 34 2e  .# in CMake 2.4.
04e0: 78 20 64 6f 65 73 20 6e 6f 74 20 61 75 74 6f 6d  x does not autom
04f0: 61 74 69 63 61 6c 6c 79 20 64 6f 20 73 6f 20 61  atically do so a
0500: 6e 64 20 77 65 20 77 61 6e 74 0a 23 20 63 6f 6d  nd we want.# com
0510: 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20  patibility with 
0520: 43 4d 61 6b 65 20 32 2e 34 2e 78 2e 0a 69 66 28  CMake 2.4.x..if(
0530: 48 41 56 45 5f 53 59 53 5f 54 59 50 45 53 5f 48  HAVE_SYS_TYPES_H
0540: 29 0a 20 20 20 20 6c 69 73 74 28 41 50 50 45 4e  ).    list(APPEN
0550: 44 20 43 4d 41 4b 45 5f 52 45 51 55 49 52 45 44  D CMAKE_REQUIRED
0560: 5f 44 45 46 49 4e 49 54 49 4f 4e 53 20 2d 44 48  _DEFINITIONS -DH
0570: 41 56 45 5f 53 59 53 5f 54 59 50 45 53 5f 48 29  AVE_SYS_TYPES_H)
0580: 0a 65 6e 64 69 66 28 29 0a 69 66 28 48 41 56 45  .endif().if(HAVE
0590: 5f 53 54 44 49 4e 54 5f 48 29 0a 20 20 20 20 6c  _STDINT_H).    l
05a0: 69 73 74 28 41 50 50 45 4e 44 20 43 4d 41 4b 45  ist(APPEND CMAKE
05b0: 5f 52 45 51 55 49 52 45 44 5f 44 45 46 49 4e 49  _REQUIRED_DEFINI
05c0: 54 49 4f 4e 53 20 2d 44 48 41 56 45 5f 53 54 44  TIONS -DHAVE_STD
05d0: 49 4e 54 5f 48 29 0a 65 6e 64 69 66 28 29 0a 69  INT_H).endif().i
05e0: 66 28 48 41 56 45 5f 53 54 44 44 45 46 5f 48 29  f(HAVE_STDDEF_H)
05f0: 0a 20 20 20 20 6c 69 73 74 28 41 50 50 45 4e 44  .    list(APPEND
0600: 20 43 4d 41 4b 45 5f 52 45 51 55 49 52 45 44 5f   CMAKE_REQUIRED_
0610: 44 45 46 49 4e 49 54 49 4f 4e 53 20 2d 44 48 41  DEFINITIONS -DHA
0620: 56 45 5f 53 54 44 44 45 46 5f 48 29 0a 65 6e 64  VE_STDDEF_H).end
0630: 69 66 28 29 0a 63 68 65 63 6b 5f 74 79 70 65 5f  if().check_type_
0640: 73 69 7a 65 28 6f 66 66 36 34 5f 74 20 4f 46 46  size(off64_t OFF
0650: 36 34 5f 54 29 0a 69 66 28 48 41 56 45 5f 4f 46  64_T).if(HAVE_OF
0660: 46 36 34 5f 54 29 0a 20 20 20 61 64 64 5f 64 65  F64_T).   add_de
0670: 66 69 6e 69 74 69 6f 6e 73 28 2d 44 5f 4c 41 52  finitions(-D_LAR
0680: 47 45 46 49 4c 45 36 34 5f 53 4f 55 52 43 45 3d  GEFILE64_SOURCE=
0690: 31 29 0a 65 6e 64 69 66 28 29 0a 73 65 74 28 43  1).endif().set(C
06a0: 4d 41 4b 45 5f 52 45 51 55 49 52 45 44 5f 44 45  MAKE_REQUIRED_DE
06b0: 46 49 4e 49 54 49 4f 4e 53 29 20 23 20 63 6c 65  FINITIONS) # cle
06c0: 61 72 20 76 61 72 69 61 62 6c 65 0a 0a 23 0a 23  ar variable..#.#
06d0: 20 43 68 65 63 6b 20 66 6f 72 20 66 73 65 65 6b   Check for fseek
06e0: 6f 0a 23 0a 63 68 65 63 6b 5f 66 75 6e 63 74 69  o.#.check_functi
06f0: 6f 6e 5f 65 78 69 73 74 73 28 66 73 65 65 6b 6f  on_exists(fseeko
0700: 20 48 41 56 45 5f 46 53 45 45 4b 4f 29 0a 69 66   HAVE_FSEEKO).if
0710: 28 4e 4f 54 20 48 41 56 45 5f 46 53 45 45 4b 4f  (NOT HAVE_FSEEKO
0720: 29 0a 20 20 20 20 61 64 64 5f 64 65 66 69 6e 69  ).    add_defini
0730: 74 69 6f 6e 73 28 2d 44 4e 4f 5f 46 53 45 45 4b  tions(-DNO_FSEEK
0740: 4f 29 0a 65 6e 64 69 66 28 29 0a 0a 23 0a 23 20  O).endif()..#.# 
0750: 43 68 65 63 6b 20 66 6f 72 20 75 6e 69 73 74 64  Check for unistd
0760: 2e 68 0a 23 0a 63 68 65 63 6b 5f 69 6e 63 6c 75  .h.#.check_inclu
0770: 64 65 5f 66 69 6c 65 28 75 6e 69 73 74 64 2e 68  de_file(unistd.h
0780: 20 5a 5f 48 41 56 45 5f 55 4e 49 53 54 44 5f 48   Z_HAVE_UNISTD_H
0790: 29 0a 0a 69 66 28 4d 53 56 43 29 0a 20 20 20 20  )..if(MSVC).    
07a0: 73 65 74 28 43 4d 41 4b 45 5f 44 45 42 55 47 5f  set(CMAKE_DEBUG_
07b0: 50 4f 53 54 46 49 58 20 22 64 22 29 0a 20 20 20  POSTFIX "d").   
07c0: 20 61 64 64 5f 64 65 66 69 6e 69 74 69 6f 6e 73   add_definitions
07d0: 28 2d 44 5f 43 52 54 5f 53 45 43 55 52 45 5f 4e  (-D_CRT_SECURE_N
07e0: 4f 5f 44 45 50 52 45 43 41 54 45 29 0a 20 20 20  O_DEPRECATE).   
07f0: 20 61 64 64 5f 64 65 66 69 6e 69 74 69 6f 6e 73   add_definitions
0800: 28 2d 44 5f 43 52 54 5f 4e 4f 4e 53 54 44 43 5f  (-D_CRT_NONSTDC_
0810: 4e 4f 5f 44 45 50 52 45 43 41 54 45 29 0a 20 20  NO_DEPRECATE).  
0820: 20 20 69 6e 63 6c 75 64 65 5f 64 69 72 65 63 74    include_direct
0830: 6f 72 69 65 73 28 24 7b 43 4d 41 4b 45 5f 43 55  ories(${CMAKE_CU
0840: 52 52 45 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52  RRENT_SOURCE_DIR
0850: 7d 29 0a 65 6e 64 69 66 28 29 0a 0a 69 66 28 4e  }).endif()..if(N
0860: 4f 54 20 43 4d 41 4b 45 5f 43 55 52 52 45 4e 54  OT CMAKE_CURRENT
0870: 5f 53 4f 55 52 43 45 5f 44 49 52 20 53 54 52 45  _SOURCE_DIR STRE
0880: 51 55 41 4c 20 43 4d 41 4b 45 5f 43 55 52 52 45  QUAL CMAKE_CURRE
0890: 4e 54 5f 42 49 4e 41 52 59 5f 44 49 52 29 0a 20  NT_BINARY_DIR). 
08a0: 20 20 20 23 20 49 66 20 77 65 27 72 65 20 64 6f     # If we're do
08b0: 69 6e 67 20 61 6e 20 6f 75 74 20 6f 66 20 73 6f  ing an out of so
08c0: 75 72 63 65 20 62 75 69 6c 64 20 61 6e 64 20 74  urce build and t
08d0: 68 65 20 75 73 65 72 20 68 61 73 20 61 20 7a 63  he user has a zc
08e0: 6f 6e 66 2e 68 0a 20 20 20 20 23 20 69 6e 20 74  onf.h.    # in t
08f0: 68 65 69 72 20 73 6f 75 72 63 65 20 74 72 65 65  heir source tree
0900: 2e 2e 2e 0a 20 20 20 20 69 66 28 45 58 49 53 54  ....    if(EXIST
0910: 53 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e  S ${CMAKE_CURREN
0920: 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d 2f 7a 63  T_SOURCE_DIR}/zc
0930: 6f 6e 66 2e 68 29 0a 20 20 20 20 20 20 20 20 6d  onf.h).        m
0940: 65 73 73 61 67 65 28 53 54 41 54 55 53 20 22 52  essage(STATUS "R
0950: 65 6e 61 6d 69 6e 67 22 29 0a 20 20 20 20 20 20  enaming").      
0960: 20 20 6d 65 73 73 61 67 65 28 53 54 41 54 55 53    message(STATUS
0970: 20 22 20 20 20 20 24 7b 43 4d 41 4b 45 5f 43 55   "    ${CMAKE_CU
0980: 52 52 45 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52  RRENT_SOURCE_DIR
0990: 7d 2f 7a 63 6f 6e 66 2e 68 22 29 0a 20 20 20 20  }/zconf.h").    
09a0: 20 20 20 20 6d 65 73 73 61 67 65 28 53 54 41 54      message(STAT
09b0: 55 53 20 22 74 6f 20 27 7a 63 6f 6e 66 2e 68 2e  US "to 'zconf.h.
09c0: 69 6e 63 6c 75 64 65 64 27 20 62 65 63 61 75 73  included' becaus
09d0: 65 20 74 68 69 73 20 66 69 6c 65 20 69 73 20 69  e this file is i
09e0: 6e 63 6c 75 64 65 64 20 77 69 74 68 20 7a 6c 69  ncluded with zli
09f0: 62 22 29 0a 20 20 20 20 20 20 20 20 6d 65 73 73  b").        mess
0a00: 61 67 65 28 53 54 41 54 55 53 20 22 62 75 74 20  age(STATUS "but 
0a10: 43 4d 61 6b 65 20 67 65 6e 65 72 61 74 65 73 20  CMake generates 
0a20: 69 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  it automatically
0a30: 20 69 6e 20 74 68 65 20 62 75 69 6c 64 20 64 69   in the build di
0a40: 72 65 63 74 6f 72 79 2e 22 29 0a 20 20 20 20 20  rectory.").     
0a50: 20 20 20 66 69 6c 65 28 52 45 4e 41 4d 45 20 24     file(RENAME $
0a60: 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e 54 5f 53  {CMAKE_CURRENT_S
0a70: 4f 55 52 43 45 5f 44 49 52 7d 2f 7a 63 6f 6e 66  OURCE_DIR}/zconf
0a80: 2e 68 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45  .h ${CMAKE_CURRE
0a90: 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d 2f 7a  NT_SOURCE_DIR}/z
0aa0: 63 6f 6e 66 2e 68 2e 69 6e 63 6c 75 64 65 64 29  conf.h.included)
0ab0: 0a 20 20 65 6e 64 69 66 28 29 0a 65 6e 64 69 66  .  endif().endif
0ac0: 28 29 0a 0a 73 65 74 28 5a 4c 49 42 5f 50 43 20  ()..set(ZLIB_PC 
0ad0: 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e 54 5f  ${CMAKE_CURRENT_
0ae0: 42 49 4e 41 52 59 5f 44 49 52 7d 2f 7a 6c 69 62  BINARY_DIR}/zlib
0af0: 2e 70 63 29 0a 63 6f 6e 66 69 67 75 72 65 5f 66  .pc).configure_f
0b00: 69 6c 65 28 20 24 7b 43 4d 41 4b 45 5f 43 55 52  ile( ${CMAKE_CUR
0b10: 52 45 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d  RENT_SOURCE_DIR}
0b20: 2f 7a 6c 69 62 2e 70 63 2e 63 6d 61 6b 65 69 6e  /zlib.pc.cmakein
0b30: 0a 09 09 24 7b 5a 4c 49 42 5f 50 43 7d 20 40 4f  ...${ZLIB_PC} @O
0b40: 4e 4c 59 29 0a 63 6f 6e 66 69 67 75 72 65 5f 66  NLY).configure_f
0b50: 69 6c 65 28 09 24 7b 43 4d 41 4b 45 5f 43 55 52  ile(.${CMAKE_CUR
0b60: 52 45 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d  RENT_SOURCE_DIR}
0b70: 2f 7a 63 6f 6e 66 2e 68 2e 63 6d 61 6b 65 69 6e  /zconf.h.cmakein
0b80: 0a 09 09 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45  ...${CMAKE_CURRE
0b90: 4e 54 5f 42 49 4e 41 52 59 5f 44 49 52 7d 2f 7a  NT_BINARY_DIR}/z
0ba0: 63 6f 6e 66 2e 68 20 40 4f 4e 4c 59 29 0a 69 6e  conf.h @ONLY).in
0bb0: 63 6c 75 64 65 5f 64 69 72 65 63 74 6f 72 69 65  clude_directorie
0bc0: 73 28 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e  s(${CMAKE_CURREN
0bd0: 54 5f 42 49 4e 41 52 59 5f 44 49 52 7d 20 24 7b  T_BINARY_DIR} ${
0be0: 43 4d 41 4b 45 5f 53 4f 55 52 43 45 5f 44 49 52  CMAKE_SOURCE_DIR
0bf0: 7d 29 0a 0a 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  })...#==========
0c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c40: 3d 3d 0a 23 20 7a 6c 69 62 0a 23 3d 3d 3d 3d 3d  ==.# zlib.#=====
0c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0c90: 3d 3d 3d 3d 3d 3d 3d 0a 0a 73 65 74 28 5a 4c 49  =======..set(ZLI
0ca0: 42 5f 50 55 42 4c 49 43 5f 48 44 52 53 0a 20 20  B_PUBLIC_HDRS.  
0cb0: 20 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e    ${CMAKE_CURREN
0cc0: 54 5f 42 49 4e 41 52 59 5f 44 49 52 7d 2f 7a 63  T_BINARY_DIR}/zc
0cd0: 6f 6e 66 2e 68 0a 20 20 20 20 7a 6c 69 62 2e 68  onf.h.    zlib.h
0ce0: 0a 29 0a 73 65 74 28 5a 4c 49 42 5f 50 52 49 56  .).set(ZLIB_PRIV
0cf0: 41 54 45 5f 48 44 52 53 0a 20 20 20 20 63 72 63  ATE_HDRS.    crc
0d00: 33 32 2e 68 0a 20 20 20 20 64 65 66 6c 61 74 65  32.h.    deflate
0d10: 2e 68 0a 20 20 20 20 67 7a 67 75 74 73 2e 68 0a  .h.    gzguts.h.
0d20: 20 20 20 20 69 6e 66 66 61 73 74 2e 68 0a 20 20      inffast.h.  
0d30: 20 20 69 6e 66 66 69 78 65 64 2e 68 0a 20 20 20    inffixed.h.   
0d40: 20 69 6e 66 6c 61 74 65 2e 68 0a 20 20 20 20 69   inflate.h.    i
0d50: 6e 66 74 72 65 65 73 2e 68 0a 20 20 20 20 74 72  nftrees.h.    tr
0d60: 65 65 73 2e 68 0a 20 20 20 20 7a 75 74 69 6c 2e  ees.h.    zutil.
0d70: 68 0a 29 0a 73 65 74 28 5a 4c 49 42 5f 53 52 43  h.).set(ZLIB_SRC
0d80: 53 0a 20 20 20 20 61 64 6c 65 72 33 32 2e 63 0a  S.    adler32.c.
0d90: 20 20 20 20 63 6f 6d 70 72 65 73 73 2e 63 0a 20      compress.c. 
0da0: 20 20 20 63 72 63 33 32 2e 63 0a 20 20 20 20 64     crc32.c.    d
0db0: 65 66 6c 61 74 65 2e 63 0a 20 20 20 20 67 7a 63  eflate.c.    gzc
0dc0: 6c 6f 73 65 2e 63 0a 20 20 20 20 67 7a 6c 69 62  lose.c.    gzlib
0dd0: 2e 63 0a 20 20 20 20 67 7a 72 65 61 64 2e 63 0a  .c.    gzread.c.
0de0: 20 20 20 20 67 7a 77 72 69 74 65 2e 63 0a 20 20      gzwrite.c.  
0df0: 20 20 69 6e 66 6c 61 74 65 2e 63 0a 20 20 20 20    inflate.c.    
0e00: 69 6e 66 62 61 63 6b 2e 63 0a 20 20 20 20 69 6e  infback.c.    in
0e10: 66 74 72 65 65 73 2e 63 0a 20 20 20 20 69 6e 66  ftrees.c.    inf
0e20: 66 61 73 74 2e 63 0a 20 20 20 20 74 72 65 65 73  fast.c.    trees
0e30: 2e 63 0a 20 20 20 20 75 6e 63 6f 6d 70 72 2e 63  .c.    uncompr.c
0e40: 0a 20 20 20 20 7a 75 74 69 6c 2e 63 0a 29 0a 0a  .    zutil.c.)..
0e50: 69 66 28 4e 4f 54 20 4d 49 4e 47 57 29 0a 20 20  if(NOT MINGW).  
0e60: 20 20 73 65 74 28 5a 4c 49 42 5f 44 4c 4c 5f 53    set(ZLIB_DLL_S
0e70: 52 43 53 0a 20 20 20 20 20 20 20 20 77 69 6e 33  RCS.        win3
0e80: 32 2f 7a 6c 69 62 31 2e 72 63 20 23 20 49 66 20  2/zlib1.rc # If 
0e90: 70 72 65 73 65 6e 74 20 77 69 6c 6c 20 6f 76 65  present will ove
0ea0: 72 72 69 64 65 20 63 75 73 74 6f 6d 20 62 75 69  rride custom bui
0eb0: 6c 64 20 72 75 6c 65 20 62 65 6c 6f 77 2e 0a 20  ld rule below.. 
0ec0: 20 20 20 29 0a 65 6e 64 69 66 28 29 0a 0a 69 66     ).endif()..if
0ed0: 28 43 4d 41 4b 45 5f 43 4f 4d 50 49 4c 45 52 5f  (CMAKE_COMPILER_
0ee0: 49 53 5f 47 4e 55 43 43 29 0a 20 20 20 20 69 66  IS_GNUCC).    if
0ef0: 28 41 53 4d 36 38 36 29 0a 20 20 20 20 20 20 20  (ASM686).       
0f00: 20 73 65 74 28 5a 4c 49 42 5f 41 53 4d 53 20 63   set(ZLIB_ASMS c
0f10: 6f 6e 74 72 69 62 2f 61 73 6d 36 38 36 2f 6d 61  ontrib/asm686/ma
0f20: 74 63 68 2e 53 29 0a 20 20 20 20 65 6c 73 65 69  tch.S).    elsei
0f30: 66 20 28 41 4d 44 36 34 29 0a 20 20 20 20 20 20  f (AMD64).      
0f40: 20 20 73 65 74 28 5a 4c 49 42 5f 41 53 4d 53 20    set(ZLIB_ASMS 
0f50: 63 6f 6e 74 72 69 62 2f 61 6d 64 36 34 2f 61 6d  contrib/amd64/am
0f60: 64 36 34 2d 6d 61 74 63 68 2e 53 29 0a 20 20 20  d64-match.S).   
0f70: 20 65 6e 64 69 66 20 28 29 0a 0a 09 69 66 28 5a   endif ()...if(Z
0f80: 4c 49 42 5f 41 53 4d 53 29 0a 09 09 61 64 64 5f  LIB_ASMS)...add_
0f90: 64 65 66 69 6e 69 74 69 6f 6e 73 28 2d 44 41 53  definitions(-DAS
0fa0: 4d 56 29 0a 09 09 73 65 74 5f 73 6f 75 72 63 65  MV)...set_source
0fb0: 5f 66 69 6c 65 73 5f 70 72 6f 70 65 72 74 69 65  _files_propertie
0fc0: 73 28 24 7b 5a 4c 49 42 5f 41 53 4d 53 7d 20 50  s(${ZLIB_ASMS} P
0fd0: 52 4f 50 45 52 54 49 45 53 20 4c 41 4e 47 55 41  ROPERTIES LANGUA
0fe0: 47 45 20 43 20 43 4f 4d 50 49 4c 45 5f 46 4c 41  GE C COMPILE_FLA
0ff0: 47 53 20 2d 44 4e 4f 5f 55 4e 44 45 52 4c 49 4e  GS -DNO_UNDERLIN
1000: 45 29 0a 09 65 6e 64 69 66 28 29 0a 65 6e 64 69  E)..endif().endi
1010: 66 28 29 0a 0a 69 66 28 4d 53 56 43 29 0a 20 20  f()..if(MSVC).  
1020: 20 20 69 66 28 41 53 4d 36 38 36 29 0a 09 09 45    if(ASM686)...E
1030: 4e 41 42 4c 45 5f 4c 41 4e 47 55 41 47 45 28 41  NABLE_LANGUAGE(A
1040: 53 4d 5f 4d 41 53 4d 29 0a 20 20 20 20 20 20 20  SM_MASM).       
1050: 20 73 65 74 28 5a 4c 49 42 5f 41 53 4d 53 0a 09   set(ZLIB_ASMS..
1060: 09 09 63 6f 6e 74 72 69 62 2f 6d 61 73 6d 78 38  ..contrib/masmx8
1070: 36 2f 69 6e 66 66 61 73 33 32 2e 61 73 6d 0a 09  6/inffas32.asm..
1080: 09 09 63 6f 6e 74 72 69 62 2f 6d 61 73 6d 78 38  ..contrib/masmx8
1090: 36 2f 6d 61 74 63 68 36 38 36 2e 61 73 6d 0a 09  6/match686.asm..
10a0: 09 29 0a 20 20 20 20 65 6c 73 65 69 66 20 28 41  .).    elseif (A
10b0: 4d 44 36 34 29 0a 09 09 45 4e 41 42 4c 45 5f 4c  MD64)...ENABLE_L
10c0: 41 4e 47 55 41 47 45 28 41 53 4d 5f 4d 41 53 4d  ANGUAGE(ASM_MASM
10d0: 29 0a 20 20 20 20 20 20 20 20 73 65 74 28 5a 4c  ).        set(ZL
10e0: 49 42 5f 41 53 4d 53 0a 09 09 09 63 6f 6e 74 72  IB_ASMS....contr
10f0: 69 62 2f 6d 61 73 6d 78 36 34 2f 67 76 6d 61 74  ib/masmx64/gvmat
1100: 36 34 2e 61 73 6d 0a 09 09 09 63 6f 6e 74 72 69  64.asm....contri
1110: 62 2f 6d 61 73 6d 78 36 34 2f 69 6e 66 66 61 73  b/masmx64/inffas
1120: 78 36 34 2e 61 73 6d 0a 09 09 29 0a 20 20 20 20  x64.asm...).    
1130: 65 6e 64 69 66 28 29 0a 0a 09 69 66 28 5a 4c 49  endif()...if(ZLI
1140: 42 5f 41 53 4d 53 29 0a 09 09 61 64 64 5f 64 65  B_ASMS)...add_de
1150: 66 69 6e 69 74 69 6f 6e 73 28 2d 44 41 53 4d 56  finitions(-DASMV
1160: 20 2d 44 41 53 4d 49 4e 46 29 0a 09 65 6e 64 69   -DASMINF)..endi
1170: 66 28 29 0a 65 6e 64 69 66 28 29 0a 0a 23 20 70  f().endif()..# p
1180: 61 72 73 65 20 74 68 65 20 66 75 6c 6c 20 76 65  arse the full ve
1190: 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 66 72 6f  rsion number fro
11a0: 6d 20 7a 6c 69 62 2e 68 20 61 6e 64 20 69 6e 63  m zlib.h and inc
11b0: 6c 75 64 65 20 69 6e 20 5a 4c 49 42 5f 46 55 4c  lude in ZLIB_FUL
11c0: 4c 5f 56 45 52 53 49 4f 4e 0a 66 69 6c 65 28 52  L_VERSION.file(R
11d0: 45 41 44 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52  EAD ${CMAKE_CURR
11e0: 45 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d 2f  ENT_SOURCE_DIR}/
11f0: 7a 6c 69 62 2e 68 20 5f 7a 6c 69 62 5f 68 5f 63  zlib.h _zlib_h_c
1200: 6f 6e 74 65 6e 74 73 29 0a 73 74 72 69 6e 67 28  ontents).string(
1210: 52 45 47 45 58 20 52 45 50 4c 41 43 45 20 22 2e  REGEX REPLACE ".
1220: 2a 23 64 65 66 69 6e 65 5b 20 5c 74 5d 2b 5a 4c  *#define[ \t]+ZL
1230: 49 42 5f 56 45 52 53 49 4f 4e 5b 20 5c 74 5d 2b  IB_VERSION[ \t]+
1240: 5c 22 28 5b 2d 30 2d 39 41 2d 5a 61 2d 7a 2e 5d  \"([-0-9A-Za-z.]
1250: 2b 29 5c 22 2e 2a 22 0a 20 20 20 20 22 5c 5c 31  +)\".*".    "\\1
1260: 22 20 5a 4c 49 42 5f 46 55 4c 4c 5f 56 45 52 53  " ZLIB_FULL_VERS
1270: 49 4f 4e 20 24 7b 5f 7a 6c 69 62 5f 68 5f 63 6f  ION ${_zlib_h_co
1280: 6e 74 65 6e 74 73 7d 29 0a 0a 69 66 28 4d 49 4e  ntents})..if(MIN
1290: 47 57 29 0a 20 20 20 20 23 20 54 68 69 73 20 67  GW).    # This g
12a0: 65 74 73 20 75 73 20 44 4c 4c 20 72 65 73 6f 75  ets us DLL resou
12b0: 72 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  rce information 
12c0: 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 6f  when compiling o
12d0: 6e 20 4d 69 6e 47 57 2e 0a 20 20 20 20 69 66 28  n MinGW..    if(
12e0: 4e 4f 54 20 43 4d 41 4b 45 5f 52 43 5f 43 4f 4d  NOT CMAKE_RC_COM
12f0: 50 49 4c 45 52 29 0a 20 20 20 20 20 20 20 20 73  PILER).        s
1300: 65 74 28 43 4d 41 4b 45 5f 52 43 5f 43 4f 4d 50  et(CMAKE_RC_COMP
1310: 49 4c 45 52 20 77 69 6e 64 72 65 73 2e 65 78 65  ILER windres.exe
1320: 29 0a 20 20 20 20 65 6e 64 69 66 28 29 0a 0a 20  ).    endif().. 
1330: 20 20 20 61 64 64 5f 63 75 73 74 6f 6d 5f 63 6f     add_custom_co
1340: 6d 6d 61 6e 64 28 4f 55 54 50 55 54 20 24 7b 43  mmand(OUTPUT ${C
1350: 4d 41 4b 45 5f 43 55 52 52 45 4e 54 5f 42 49 4e  MAKE_CURRENT_BIN
1360: 41 52 59 5f 44 49 52 7d 2f 7a 6c 69 62 31 72 63  ARY_DIR}/zlib1rc
1370: 2e 6f 62 6a 0a 20 20 20 20 20 20 20 20 20 20 20  .obj.           
1380: 20 20 20 20 20 20 20 20 20 20 20 20 43 4f 4d 4d              COMM
1390: 41 4e 44 20 24 7b 43 4d 41 4b 45 5f 52 43 5f 43  AND ${CMAKE_RC_C
13a0: 4f 4d 50 49 4c 45 52 7d 0a 20 20 20 20 20 20 20  OMPILER}.       
13b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c0: 20 20 20 20 20 2d 44 20 47 43 43 5f 57 49 4e 44       -D GCC_WIND
13d0: 52 45 53 0a 20 20 20 20 20 20 20 20 20 20 20 20  RES.            
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13f0: 2d 49 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45  -I ${CMAKE_CURRE
1400: 4e 54 5f 53 4f 55 52 43 45 5f 44 49 52 7d 0a 20  NT_SOURCE_DIR}. 
1410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1420: 20 20 20 20 20 20 20 20 20 20 20 2d 49 20 24 7b             -I ${
1430: 43 4d 41 4b 45 5f 43 55 52 52 45 4e 54 5f 42 49  CMAKE_CURRENT_BI
1440: 4e 41 52 59 5f 44 49 52 7d 0a 20 20 20 20 20 20  NARY_DIR}.      
1450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1460: 20 20 20 20 20 20 2d 6f 20 24 7b 43 4d 41 4b 45        -o ${CMAKE
1470: 5f 43 55 52 52 45 4e 54 5f 42 49 4e 41 52 59 5f  _CURRENT_BINARY_
1480: 44 49 52 7d 2f 7a 6c 69 62 31 72 63 2e 6f 62 6a  DIR}/zlib1rc.obj
1490: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
14a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 69 20               -i 
14b0: 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e 54 5f  ${CMAKE_CURRENT_
14c0: 53 4f 55 52 43 45 5f 44 49 52 7d 2f 77 69 6e 33  SOURCE_DIR}/win3
14d0: 32 2f 7a 6c 69 62 31 2e 72 63 29 0a 20 20 20 20  2/zlib1.rc).    
14e0: 73 65 74 28 5a 4c 49 42 5f 44 4c 4c 5f 53 52 43  set(ZLIB_DLL_SRC
14f0: 53 20 24 7b 43 4d 41 4b 45 5f 43 55 52 52 45 4e  S ${CMAKE_CURREN
1500: 54 5f 42 49 4e 41 52 59 5f 44 49 52 7d 2f 7a 6c  T_BINARY_DIR}/zl
1510: 69 62 31 72 63 2e 6f 62 6a 29 0a 65 6e 64 69 66  ib1rc.obj).endif
1520: 28 4d 49 4e 47 57 29 0a 0a 61 64 64 5f 6c 69 62  (MINGW)..add_lib
1530: 72 61 72 79 28 7a 6c 69 62 20 53 48 41 52 45 44  rary(zlib SHARED
1540: 20 24 7b 5a 4c 49 42 5f 53 52 43 53 7d 20 24 7b   ${ZLIB_SRCS} ${
1550: 5a 4c 49 42 5f 41 53 4d 53 7d 20 24 7b 5a 4c 49  ZLIB_ASMS} ${ZLI
1560: 42 5f 44 4c 4c 5f 53 52 43 53 7d 20 24 7b 5a 4c  B_DLL_SRCS} ${ZL
1570: 49 42 5f 50 55 42 4c 49 43 5f 48 44 52 53 7d 20  IB_PUBLIC_HDRS} 
1580: 24 7b 5a 4c 49 42 5f 50 52 49 56 41 54 45 5f 48  ${ZLIB_PRIVATE_H
1590: 44 52 53 7d 29 0a 61 64 64 5f 6c 69 62 72 61 72  DRS}).add_librar
15a0: 79 28 7a 6c 69 62 73 74 61 74 69 63 20 53 54 41  y(zlibstatic STA
15b0: 54 49 43 20 24 7b 5a 4c 49 42 5f 53 52 43 53 7d  TIC ${ZLIB_SRCS}
15c0: 20 24 7b 5a 4c 49 42 5f 41 53 4d 53 7d 20 24 7b   ${ZLIB_ASMS} ${
15d0: 5a 4c 49 42 5f 50 55 42 4c 49 43 5f 48 44 52 53  ZLIB_PUBLIC_HDRS
15e0: 7d 20 24 7b 5a 4c 49 42 5f 50 52 49 56 41 54 45  } ${ZLIB_PRIVATE
15f0: 5f 48 44 52 53 7d 29 0a 73 65 74 5f 74 61 72 67  _HDRS}).set_targ
1600: 65 74 5f 70 72 6f 70 65 72 74 69 65 73 28 7a 6c  et_properties(zl
1610: 69 62 20 50 52 4f 50 45 52 54 49 45 53 20 44 45  ib PROPERTIES DE
1620: 46 49 4e 45 5f 53 59 4d 42 4f 4c 20 5a 4c 49 42  FINE_SYMBOL ZLIB
1630: 5f 44 4c 4c 29 0a 73 65 74 5f 74 61 72 67 65 74  _DLL).set_target
1640: 5f 70 72 6f 70 65 72 74 69 65 73 28 7a 6c 69 62  _properties(zlib
1650: 20 50 52 4f 50 45 52 54 49 45 53 20 53 4f 56 45   PROPERTIES SOVE
1660: 52 53 49 4f 4e 20 31 29 0a 0a 69 66 28 4e 4f 54  RSION 1)..if(NOT
1670: 20 43 59 47 57 49 4e 29 0a 20 20 20 20 23 20 54   CYGWIN).    # T
1680: 68 69 73 20 70 72 6f 70 65 72 74 79 20 63 61 75  his property cau
1690: 73 65 73 20 73 68 61 72 65 64 20 6c 69 62 72 61  ses shared libra
16a0: 72 69 65 73 20 6f 6e 20 4c 69 6e 75 78 20 74 6f  ries on Linux to
16b0: 20 68 61 76 65 20 74 68 65 20 66 75 6c 6c 20 76   have the full v
16c0: 65 72 73 69 6f 6e 0a 20 20 20 20 23 20 65 6e 63  ersion.    # enc
16d0: 6f 64 65 64 20 69 6e 74 6f 20 74 68 65 69 72 20  oded into their 
16e0: 66 69 6e 61 6c 20 66 69 6c 65 6e 61 6d 65 2e 20  final filename. 
16f0: 20 57 65 20 64 69 73 61 62 6c 65 20 74 68 69 73   We disable this
1700: 20 6f 6e 20 43 79 67 77 69 6e 20 62 65 63 61 75   on Cygwin becau
1710: 73 65 0a 20 20 20 20 23 20 69 74 20 63 61 75 73  se.    # it caus
1720: 65 73 20 63 79 67 7a 2d 24 7b 5a 4c 49 42 5f 46  es cygz-${ZLIB_F
1730: 55 4c 4c 5f 56 45 52 53 49 4f 4e 7d 2e 64 6c 6c  ULL_VERSION}.dll
1740: 20 74 6f 20 62 65 20 63 72 65 61 74 65 64 20 77   to be created w
1750: 68 65 6e 20 63 79 67 7a 2e 64 6c 6c 0a 20 20 20  hen cygz.dll.   
1760: 20 23 20 73 65 65 6d 73 20 74 6f 20 62 65 20 74   # seems to be t
1770: 68 65 20 64 65 66 61 75 6c 74 2e 0a 20 20 20 20  he default..    
1780: 23 0a 20 20 20 20 23 20 54 68 69 73 20 68 61 73  #.    # This has
1790: 20 6e 6f 20 65 66 66 65 63 74 20 77 69 74 68 20   no effect with 
17a0: 4d 53 56 43 2c 20 6f 6e 20 74 68 61 74 20 70 6c  MSVC, on that pl
17b0: 61 74 66 6f 72 6d 20 74 68 65 20 76 65 72 73 69  atform the versi
17c0: 6f 6e 20 69 6e 66 6f 20 66 6f 72 0a 20 20 20 20  on info for.    
17d0: 23 20 74 68 65 20 44 4c 4c 20 63 6f 6d 65 73 20  # the DLL comes 
17e0: 66 72 6f 6d 20 74 68 65 20 72 65 73 6f 75 72 63  from the resourc
17f0: 65 20 66 69 6c 65 20 77 69 6e 33 32 2f 7a 6c 69  e file win32/zli
1800: 62 31 2e 72 63 0a 20 20 20 20 73 65 74 5f 74 61  b1.rc.    set_ta
1810: 72 67 65 74 5f 70 72 6f 70 65 72 74 69 65 73 28  rget_properties(
1820: 7a 6c 69 62 20 50 52 4f 50 45 52 54 49 45 53 20  zlib PROPERTIES 
1830: 56 45 52 53 49 4f 4e 20 24 7b 5a 4c 49 42 5f 46  VERSION ${ZLIB_F
1840: 55 4c 4c 5f 56 45 52 53 49 4f 4e 7d 29 0a 65 6e  ULL_VERSION}).en
1850: 64 69 66 28 29 0a 0a 69 66 28 55 4e 49 58 29 0a  dif()..if(UNIX).
1860: 20 20 20 20 23 20 4f 6e 20 75 6e 69 78 2d 6c 69      # On unix-li
1870: 6b 65 20 70 6c 61 74 66 6f 72 6d 73 20 74 68 65  ke platforms the
1880: 20 6c 69 62 72 61 72 79 20 69 73 20 61 6c 6d 6f   library is almo
1890: 73 74 20 61 6c 77 61 79 73 20 63 61 6c 6c 65 64  st always called
18a0: 20 6c 69 62 7a 0a 20 20 20 73 65 74 5f 74 61 72   libz.   set_tar
18b0: 67 65 74 5f 70 72 6f 70 65 72 74 69 65 73 28 7a  get_properties(z
18c0: 6c 69 62 20 7a 6c 69 62 73 74 61 74 69 63 20 50  lib zlibstatic P
18d0: 52 4f 50 45 52 54 49 45 53 20 4f 55 54 50 55 54  ROPERTIES OUTPUT
18e0: 5f 4e 41 4d 45 20 7a 29 0a 20 20 20 69 66 28 4e  _NAME z).   if(N
18f0: 4f 54 20 41 50 50 4c 45 29 0a 20 20 20 20 20 73  OT APPLE).     s
1900: 65 74 5f 74 61 72 67 65 74 5f 70 72 6f 70 65 72  et_target_proper
1910: 74 69 65 73 28 7a 6c 69 62 20 50 52 4f 50 45 52  ties(zlib PROPER
1920: 54 49 45 53 20 4c 49 4e 4b 5f 46 4c 41 47 53 20  TIES LINK_FLAGS 
1930: 22 2d 57 6c 2c 2d 2d 76 65 72 73 69 6f 6e 2d 73  "-Wl,--version-s
1940: 63 72 69 70 74 2c 5c 22 24 7b 43 4d 41 4b 45 5f  cript,\"${CMAKE_
1950: 43 55 52 52 45 4e 54 5f 53 4f 55 52 43 45 5f 44  CURRENT_SOURCE_D
1960: 49 52 7d 2f 7a 6c 69 62 2e 6d 61 70 5c 22 22 29  IR}/zlib.map\"")
1970: 0a 20 20 20 65 6e 64 69 66 28 29 0a 65 6c 73 65  .   endif().else
1980: 69 66 28 42 55 49 4c 44 5f 53 48 41 52 45 44 5f  if(BUILD_SHARED_
1990: 4c 49 42 53 20 41 4e 44 20 57 49 4e 33 32 29 0a  LIBS AND WIN32).
19a0: 20 20 20 20 23 20 43 72 65 61 74 65 73 20 7a 6c      # Creates zl
19b0: 69 62 31 2e 64 6c 6c 20 77 68 65 6e 20 62 75 69  ib1.dll when bui
19c0: 6c 64 69 6e 67 20 73 68 61 72 65 64 20 6c 69 62  lding shared lib
19d0: 72 61 72 79 20 76 65 72 73 69 6f 6e 0a 20 20 20  rary version.   
19e0: 20 73 65 74 5f 74 61 72 67 65 74 5f 70 72 6f 70   set_target_prop
19f0: 65 72 74 69 65 73 28 7a 6c 69 62 20 50 52 4f 50  erties(zlib PROP
1a00: 45 52 54 49 45 53 20 53 55 46 46 49 58 20 22 31  ERTIES SUFFIX "1
1a10: 2e 64 6c 6c 22 29 0a 65 6e 64 69 66 28 29 0a 0a  .dll").endif()..
1a20: 69 66 28 4e 4f 54 20 53 4b 49 50 5f 49 4e 53 54  if(NOT SKIP_INST
1a30: 41 4c 4c 5f 4c 49 42 52 41 52 49 45 53 20 41 4e  ALL_LIBRARIES AN
1a40: 44 20 4e 4f 54 20 53 4b 49 50 5f 49 4e 53 54 41  D NOT SKIP_INSTA
1a50: 4c 4c 5f 41 4c 4c 20 29 0a 20 20 20 20 69 6e 73  LL_ALL ).    ins
1a60: 74 61 6c 6c 28 54 41 52 47 45 54 53 20 7a 6c 69  tall(TARGETS zli
1a70: 62 20 7a 6c 69 62 73 74 61 74 69 63 0a 20 20 20  b zlibstatic.   
1a80: 20 20 20 20 20 52 55 4e 54 49 4d 45 20 44 45 53       RUNTIME DES
1a90: 54 49 4e 41 54 49 4f 4e 20 22 24 7b 49 4e 53 54  TINATION "${INST
1aa0: 41 4c 4c 5f 42 49 4e 5f 44 49 52 7d 22 0a 20 20  ALL_BIN_DIR}".  
1ab0: 20 20 20 20 20 20 41 52 43 48 49 56 45 20 44 45        ARCHIVE DE
1ac0: 53 54 49 4e 41 54 49 4f 4e 20 22 24 7b 49 4e 53  STINATION "${INS
1ad0: 54 41 4c 4c 5f 4c 49 42 5f 44 49 52 7d 22 0a 20  TALL_LIB_DIR}". 
1ae0: 20 20 20 20 20 20 20 4c 49 42 52 41 52 59 20 44         LIBRARY D
1af0: 45 53 54 49 4e 41 54 49 4f 4e 20 22 24 7b 49 4e  ESTINATION "${IN
1b00: 53 54 41 4c 4c 5f 4c 49 42 5f 44 49 52 7d 22 20  STALL_LIB_DIR}" 
1b10: 29 0a 65 6e 64 69 66 28 29 0a 69 66 28 4e 4f 54  ).endif().if(NOT
1b20: 20 53 4b 49 50 5f 49 4e 53 54 41 4c 4c 5f 48 45   SKIP_INSTALL_HE
1b30: 41 44 45 52 53 20 41 4e 44 20 4e 4f 54 20 53 4b  ADERS AND NOT SK
1b40: 49 50 5f 49 4e 53 54 41 4c 4c 5f 41 4c 4c 20 29  IP_INSTALL_ALL )
1b50: 0a 20 20 20 20 69 6e 73 74 61 6c 6c 28 46 49 4c  .    install(FIL
1b60: 45 53 20 24 7b 5a 4c 49 42 5f 50 55 42 4c 49 43  ES ${ZLIB_PUBLIC
1b70: 5f 48 44 52 53 7d 20 44 45 53 54 49 4e 41 54 49  _HDRS} DESTINATI
1b80: 4f 4e 20 22 24 7b 49 4e 53 54 41 4c 4c 5f 49 4e  ON "${INSTALL_IN
1b90: 43 5f 44 49 52 7d 22 29 0a 65 6e 64 69 66 28 29  C_DIR}").endif()
1ba0: 0a 69 66 28 4e 4f 54 20 53 4b 49 50 5f 49 4e 53  .if(NOT SKIP_INS
1bb0: 54 41 4c 4c 5f 46 49 4c 45 53 20 41 4e 44 20 4e  TALL_FILES AND N
1bc0: 4f 54 20 53 4b 49 50 5f 49 4e 53 54 41 4c 4c 5f  OT SKIP_INSTALL_
1bd0: 41 4c 4c 20 29 0a 20 20 20 20 69 6e 73 74 61 6c  ALL ).    instal
1be0: 6c 28 46 49 4c 45 53 20 7a 6c 69 62 2e 33 20 44  l(FILES zlib.3 D
1bf0: 45 53 54 49 4e 41 54 49 4f 4e 20 22 24 7b 49 4e  ESTINATION "${IN
1c00: 53 54 41 4c 4c 5f 4d 41 4e 5f 44 49 52 7d 2f 6d  STALL_MAN_DIR}/m
1c10: 61 6e 33 22 29 0a 65 6e 64 69 66 28 29 0a 69 66  an3").endif().if
1c20: 28 4e 4f 54 20 53 4b 49 50 5f 49 4e 53 54 41 4c  (NOT SKIP_INSTAL
1c30: 4c 5f 46 49 4c 45 53 20 41 4e 44 20 4e 4f 54 20  L_FILES AND NOT 
1c40: 53 4b 49 50 5f 49 4e 53 54 41 4c 4c 5f 41 4c 4c  SKIP_INSTALL_ALL
1c50: 20 29 0a 20 20 20 20 69 6e 73 74 61 6c 6c 28 46   ).    install(F
1c60: 49 4c 45 53 20 24 7b 5a 4c 49 42 5f 50 43 7d 20  ILES ${ZLIB_PC} 
1c70: 44 45 53 54 49 4e 41 54 49 4f 4e 20 22 24 7b 49  DESTINATION "${I
1c80: 4e 53 54 41 4c 4c 5f 50 4b 47 43 4f 4e 46 49 47  NSTALL_PKGCONFIG
1c90: 5f 44 49 52 7d 22 29 0a 65 6e 64 69 66 28 29 0a  _DIR}").endif().
1ca0: 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .#==============
1cb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1cc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1cd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1ce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23  ==============.#
1cf0: 20 45 78 61 6d 70 6c 65 20 62 69 6e 61 72 69 65   Example binarie
1d00: 73 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  s.#=============
1d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
1d50: 0a 61 64 64 5f 65 78 65 63 75 74 61 62 6c 65 28  .add_executable(
1d60: 65 78 61 6d 70 6c 65 20 74 65 73 74 2f 65 78 61  example test/exa
1d70: 6d 70 6c 65 2e 63 29 0a 74 61 72 67 65 74 5f 6c  mple.c).target_l
1d80: 69 6e 6b 5f 6c 69 62 72 61 72 69 65 73 28 65 78  ink_libraries(ex
1d90: 61 6d 70 6c 65 20 7a 6c 69 62 29 0a 61 64 64 5f  ample zlib).add_
1da0: 74 65 73 74 28 65 78 61 6d 70 6c 65 20 65 78 61  test(example exa
1db0: 6d 70 6c 65 29 0a 0a 61 64 64 5f 65 78 65 63 75  mple)..add_execu
1dc0: 74 61 62 6c 65 28 6d 69 6e 69 67 7a 69 70 20 74  table(minigzip t
1dd0: 65 73 74 2f 6d 69 6e 69 67 7a 69 70 2e 63 29 0a  est/minigzip.c).
1de0: 74 61 72 67 65 74 5f 6c 69 6e 6b 5f 6c 69 62 72  target_link_libr
1df0: 61 72 69 65 73 28 6d 69 6e 69 67 7a 69 70 20 7a  aries(minigzip z
1e00: 6c 69 62 29 0a 0a 69 66 28 48 41 56 45 5f 4f 46  lib)..if(HAVE_OF
1e10: 46 36 34 5f 54 29 0a 20 20 20 20 61 64 64 5f 65  F64_T).    add_e
1e20: 78 65 63 75 74 61 62 6c 65 28 65 78 61 6d 70 6c  xecutable(exampl
1e30: 65 36 34 20 74 65 73 74 2f 65 78 61 6d 70 6c 65  e64 test/example
1e40: 2e 63 29 0a 20 20 20 20 74 61 72 67 65 74 5f 6c  .c).    target_l
1e50: 69 6e 6b 5f 6c 69 62 72 61 72 69 65 73 28 65 78  ink_libraries(ex
1e60: 61 6d 70 6c 65 36 34 20 7a 6c 69 62 29 0a 20 20  ample64 zlib).  
1e70: 20 20 73 65 74 5f 74 61 72 67 65 74 5f 70 72 6f    set_target_pro
1e80: 70 65 72 74 69 65 73 28 65 78 61 6d 70 6c 65 36  perties(example6
1e90: 34 20 50 52 4f 50 45 52 54 49 45 53 20 43 4f 4d  4 PROPERTIES COM
1ea0: 50 49 4c 45 5f 46 4c 41 47 53 20 22 2d 44 5f 46  PILE_FLAGS "-D_F
1eb0: 49 4c 45 5f 4f 46 46 53 45 54 5f 42 49 54 53 3d  ILE_OFFSET_BITS=
1ec0: 36 34 22 29 0a 20 20 20 20 61 64 64 5f 74 65 73  64").    add_tes
1ed0: 74 28 65 78 61 6d 70 6c 65 36 34 20 65 78 61 6d  t(example64 exam
1ee0: 70 6c 65 36 34 29 0a 0a 20 20 20 20 61 64 64 5f  ple64)..    add_
1ef0: 65 78 65 63 75 74 61 62 6c 65 28 6d 69 6e 69 67  executable(minig
1f00: 7a 69 70 36 34 20 74 65 73 74 2f 6d 69 6e 69 67  zip64 test/minig
1f10: 7a 69 70 2e 63 29 0a 20 20 20 20 74 61 72 67 65  zip.c).    targe
1f20: 74 5f 6c 69 6e 6b 5f 6c 69 62 72 61 72 69 65 73  t_link_libraries
1f30: 28 6d 69 6e 69 67 7a 69 70 36 34 20 7a 6c 69 62  (minigzip64 zlib
1f40: 29 0a 20 20 20 20 73 65 74 5f 74 61 72 67 65 74  ).    set_target
1f50: 5f 70 72 6f 70 65 72 74 69 65 73 28 6d 69 6e 69  _properties(mini
1f60: 67 7a 69 70 36 34 20 50 52 4f 50 45 52 54 49 45  gzip64 PROPERTIE
1f70: 53 20 43 4f 4d 50 49 4c 45 5f 46 4c 41 47 53 20  S COMPILE_FLAGS 
1f80: 22 2d 44 5f 46 49 4c 45 5f 4f 46 46 53 45 54 5f  "-D_FILE_OFFSET_
1f90: 42 49 54 53 3d 36 34 22 29 0a 65 6e 64 69 66 28  BITS=64").endif(
1fa0: 29 0a                                            ).