aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-06-28 11:28:43 -0700
committerGravatar GitHub <noreply@github.com>2018-06-28 11:28:43 -0700
commitbb9fd3136b189456606c8ece7ee1f2e9b1590e55 (patch)
tree99f1550521684a180809778bd15f56cb11cd3f39 /cmake
parent2f6bf8d6695170fe15bb95d2eca6d6b7e56add74 (diff)
Add an external build for zlib (#1473)
Diffstat (limited to 'cmake')
-rw-r--r--cmake/external/grpc.cmake19
-rw-r--r--cmake/external/zlib.cmake41
2 files changed, 49 insertions, 11 deletions
diff --git a/cmake/external/grpc.cmake b/cmake/external/grpc.cmake
index ee4d246..1e8388c 100644
--- a/cmake/external/grpc.cmake
+++ b/cmake/external/grpc.cmake
@@ -14,7 +14,6 @@
include(ExternalProject)
include(ExternalProjectFlags)
-include(FindZLIB)
if(GRPC_ROOT)
# If the user has supplied a GRPC_ROOT then just use it. Add an empty custom
@@ -69,22 +68,19 @@ else()
## zlib
- # zlib can be built by grpc but we can avoid it on platforms that provide it
- # by default.
- find_package(ZLIB)
+ # cmake/external/zlib.cmake figures out whether or not to build zlib. Either
+ # way, from the gRPC build's point of view it's a package.
+ list(
+ APPEND CMAKE_ARGS
+ -DgRPC_ZLIB_PROVIDER:STRING=package
+ )
if(ZLIB_FOUND)
+ # Propagate possible user configuration to FindZLIB.cmake in the sub-build.
list(
APPEND CMAKE_ARGS
- -DgRPC_ZLIB_PROVIDER:STRING=package
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}
-DZLIB_LIBRARY=${ZLIB_LIBRARY}
)
-
- else()
- list(
- APPEND GIT_SUBMODULES
- third_party/zlib
- )
endif()
@@ -99,6 +95,7 @@ else()
grpc
DEPENDS
protobuf
+ zlib
${GRPC_GIT}
diff --git a/cmake/external/zlib.cmake b/cmake/external/zlib.cmake
new file mode 100644
index 0000000..4744fe9
--- /dev/null
+++ b/cmake/external/zlib.cmake
@@ -0,0 +1,41 @@
+# Copyright 2018 Google
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+include(ExternalProject)
+
+# Use a system- or user-supplied zlib if available
+find_package(ZLIB)
+if(ZLIB_FOUND)
+ add_custom_target(zlib)
+
+else()
+ ExternalProject_Add(
+ zlib
+
+ DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
+ DOWNLOAD_NAME zlib-v1.2.11.tar.gz
+ URL https://github.com/madler/zlib/archive/v1.2.11.tar.gz
+ URL_HASH SHA256=629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff
+
+ PREFIX ${PROJECT_BINARY_DIR}/external/zlib
+
+ CMAKE_ARGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX:STRING=${FIREBASE_INSTALL_DIR}
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+
+ UPDATE_COMMAND ""
+ TEST_COMMAND ""
+ )
+endif()