From e57b0da00b232cb42200c51440b4fe194ff19100 Mon Sep 17 00:00:00 2001
From: Ghislain MARY <ghislain.mary@belledonne-communications.com>
Date: Mon, 23 Mar 2015 18:14:51 +0100
Subject: [PATCH] Add check for zlib when building with CMake.

---
 CMakeLists.txt         |  5 ++++
 cmake/FindZlib.cmake   | 55 ++++++++++++++++++++++++++++++++++++++++++
 config.h.cmake         |  3 ++-
 coreapi/CMakeLists.txt |  3 +++
 4 files changed, 65 insertions(+), 1 deletion(-)
 create mode 100644 cmake/FindZlib.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fad26da226..770d448b66 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,6 +94,7 @@ endif()
 find_package(BelleSIP REQUIRED)
 find_package(Mediastreamer2 REQUIRED)
 find_package(XML2 REQUIRED)
+find_package(Zlib)
 if(ENABLE_UNIT_TESTS)
 	find_package(CUnit)
 	if(CUNIT_FOUND)
@@ -148,6 +149,10 @@ include_directories(
 	${MEDIASTREAMER2_INCLUDE_DIRS}
 	${XML2_INCLUDE_DIRS}
 )
+if(ZLIB_FOUND)
+	include_directories(${ZLIB_INCLUDE_DIRS})
+	set(HAVE_ZLIB 1)
+endif()
 if(SQLITE3_FOUND)
 	include_directories(${SQLITE3_INCLUDE_DIRS})
 	add_definitions("-DMSG_STORAGE_ENABLED")
diff --git a/cmake/FindZlib.cmake b/cmake/FindZlib.cmake
new file mode 100644
index 0000000000..6252049bc7
--- /dev/null
+++ b/cmake/FindZlib.cmake
@@ -0,0 +1,55 @@
+############################################################################
+# FindZlib.txt
+# Copyright (C) 2015  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+############################################################################
+#
+# - Find the zlib include file and library
+#
+#  ZLIB_FOUND - system has zlib
+#  ZLIB_INCLUDE_DIRS - the zlib include directory
+#  ZLIB_LIBRARIES - The libraries needed to use zlib
+
+set(_ZLIB_ROOT_PATHS
+	${CMAKE_INSTALL_PREFIX}
+)
+
+find_path(ZLIB_INCLUDE_DIRS
+	NAMES zlib.h
+	HINTS _ZLIB_ROOT_PATHS
+	PATH_SUFFIXES include
+)
+
+if(ZLIB_INCLUDE_DIRS)
+	set(HAVE_ZLIB_H 1)
+endif()
+
+find_library(ZLIB_LIBRARIES
+	NAMES z zlib zlibd
+	HINTS ${_ZLIB_ROOT_PATHS}
+	PATH_SUFFIXES bin lib
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Zlib
+	DEFAULT_MSG
+	ZLIB_INCLUDE_DIRS ZLIB_LIBRARIES HAVE_ZLIB_H
+)
+
+mark_as_advanced(ZLIB_INCLUDE_DIRS ZLIB_LIBRARIES HAVE_ZLIB_H)
diff --git a/config.h.cmake b/config.h.cmake
index cd6aa1cc35..3adb3cae41 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -39,5 +39,6 @@
 
 #cmakedefine BUILD_WIZARD
 #cmakedefine HAVE_NOTIFY4
+#cmakedefine HAVE_ZLIB 1
 #cmakedefine HAVE_CU_GET_SUITE 1
-#cmakedefine HAVE_CU_CURSES 1
\ No newline at end of file
+#cmakedefine HAVE_CU_CURSES 1
diff --git a/coreapi/CMakeLists.txt b/coreapi/CMakeLists.txt
index 57094e810b..68cc280b14 100644
--- a/coreapi/CMakeLists.txt
+++ b/coreapi/CMakeLists.txt
@@ -127,6 +127,9 @@ set(LIBS
 	${MEDIASTREAMER2_LIBRARIES}
 	${XML2_LIBRARIES}
 )
+if(ZLIB_FOUND)
+	list(APPEND LIBS ${ZLIB_LIBRARIES})
+endif()
 if(SQLITE3_FOUND)
 	list(APPEND LIBS ${SQLITE3_LIBRARIES})
 endif()
-- 
GitLab