CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #
  2. # local copy
  3. #
  4. if( WIN32 )
  5. message( STATUS "Detecting local ZLIB" )
  6. find_path( LOCAL_ZLIB_INCLUDE_DIRS "zlib.h"
  7. PATHS "${CMAKE_CURRENT_SOURCE_DIR}/include"
  8. NO_DEFAULT_PATH )
  9. find_library( LOCAL_ZLIB_LIBRARIES
  10. NAMES zdll
  11. PATHS "${CMAKE_CURRENT_SOURCE_DIR}/lib"
  12. NO_DEFAULT_PATH )
  13. mark_as_advanced( LOCAL_ZLIB_LIBRARIES )
  14. mark_as_advanced( LOCAL_ZLIB_INCLUDE_DIRS )
  15. if( LOCAL_ZLIB_LIBRARIES AND LOCAL_ZLIB_INCLUDE_DIRS )
  16. file( STRINGS "${LOCAL_ZLIB_INCLUDE_DIRS}/zlib.h" ZLIB_H REGEX "^#define[ \t]+ZLIB_VERSION[ \t]+\"[^\"]+\".*$" )
  17. string( REGEX REPLACE "^.*ZLIB_VERSION[ \t]+\"([^\"]+)\".*$" "\\1" ZLIB_VERSION "${ZLIB_H}" )
  18. message( STATUS "Found local ZLIB: ${LOCAL_ZLIB_LIBRARIES} (found version ${ZLIB_VERSION})" )
  19. set( HAVE_LOCAL_ZLIB ON
  20. CACHE BOOL "zlib is available as a local copy" )
  21. else()
  22. foreach( _VAR LOCAL_ZLIB_LIBRARIES LOCAL_ZLIB_INCLUDE_DIRS )
  23. if( NOT "${_VAR}" )
  24. set( MISSING_VARS ${MISSING_VARS} ${_VAR} )
  25. endif()
  26. endforeach()
  27. message( STATUS "Could NOT find local ZLIB (missing: ${MISSING_VARS})" )
  28. unset( HAVE_LOCAL_ZLIB CACHE )
  29. endif()
  30. message( STATUS "Detecting local ZLIB - done" )
  31. endif( WIN32 )
  32. #
  33. # system
  34. #
  35. message( STATUS "Detecting system ZLIB" )
  36. find_package( ZLIB )
  37. set( SYSTEM_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}
  38. CACHE PATH "system zlib libraries" )
  39. set( SYSTEM_ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS}
  40. CACHE PATH "system zlib include directories" )
  41. mark_as_advanced( SYSTEM_ZLIB_LIBRARIES )
  42. mark_as_advanced( SYSTEM_ZLIB_INCLUDE_DIRS )
  43. if( SYSTEM_ZLIB_LIBRARIES AND SYSTEM_ZLIB_INCLUDE_DIRS )
  44. set( HAVE_SYSTEM_ZLIB ON
  45. CACHE BOOL "zlib is available on the system" )
  46. else()
  47. unset( HAVE_SYSTEM_ZLIB CACHE )
  48. endif()
  49. message( STATUS "Detecting system ZLIB - done" )
  50. #
  51. # configure
  52. #
  53. unset( ZLIB_LIBRARIES CACHE )
  54. unset( ZLIB_INCLUDE_DIRS CACHE )
  55. if( HAVE_LOCAL_ZLIB )
  56. set( USE_LOCAL_ZLIB ON
  57. CACHE BOOL "use local copy of zlib" )
  58. else()
  59. unset( USE_LOCAL_ZLIB CACHE )
  60. endif()
  61. if( USE_LOCAL_ZLIB )
  62. message( STATUS "Configuring for local ZLIB" )
  63. set( ZLIB_LIBRARIES ${LOCAL_ZLIB_LIBRARIES} )
  64. set( ZLIB_INCLUDE_DIRS ${LOCAL_ZLIB_INCLUDE_DIRS} )
  65. message( STATUS "Configuring for local ZLIB - done" )
  66. elseif( HAVE_SYSTEM_ZLIB )
  67. message( STATUS "Configuring for system ZLIB" )
  68. set( ZLIB_LIBRARIES ${SYSTEM_ZLIB_LIBRARIES} )
  69. set( ZLIB_INCLUDE_DIRS ${SYSTEM_ZLIB_INCLUDE_DIRS} )
  70. message( STATUS "Configuring for system ZLIB - done" )
  71. endif()
  72. if( USE_LOCAL_ZLIB OR HAVE_SYSTEM_ZLIB )
  73. set( USE_ZLIB ON
  74. CACHE BOOL "use zlib" )
  75. else()
  76. unset( USE_ZLIB CACHE )
  77. endif()
  78. set( ZLIB_LIBRARIES ${ZLIB_LIBRARIES}
  79. CACHE PATH "zlib libraries" )
  80. set( ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS}
  81. CACHE PATH "zlib include directories" )
  82. mark_as_advanced( ZLIB_LIBRARIES )
  83. mark_as_advanced( ZLIB_INCLUDE_DIRS )