aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-07-13 11:09:44 -0700
committerGravatar GitHub <noreply@github.com>2018-07-13 11:09:44 -0700
commitfb9f24eaee4c57d09ec0dca32abff840b39f7c7e (patch)
tree95bde20bd905b2a2647ff60c09435526070cac9a /cmake
parent855a7665aef505db456aa1c6f1cb9ea2b68056da (diff)
Convert googletest and nanopb CMake builds to add_subdirectory (#1522)
* Add a download-only boringssl ExternalProject Match boringssl version to grpc submodule version Note: not yet in use * Split grpc into separate download and build tasks This allows other external targets to download into the gRPC source tree before grpc is actually built. * Convert grpc to an http download * Build googletest with add_subdirectory Also: * Revert library-name modifications in the abseil-cpp build * Move abseil-cpp add_subdirectory build into place * Build nanopb with add_subdirectory * Force nanopb first to work around ODR violations This is a temporary work-around for b/111328563.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindGMock.cmake47
-rw-r--r--cmake/external/googletest.cmake6
-rw-r--r--cmake/external/nanopb.cmake12
-rw-r--r--cmake/utils.cmake12
4 files changed, 18 insertions, 59 deletions
diff --git a/cmake/FindGMock.cmake b/cmake/FindGMock.cmake
deleted file mode 100644
index 76ce227..0000000
--- a/cmake/FindGMock.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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(FindPackageHandleStandardArgs)
-
-find_path(
- GMOCK_INCLUDE_DIR gmock/gmock.h
- HINTS ${FIREBASE_INSTALL_DIR}/include
-)
-
-find_library(
- GMOCK_LIBRARY
- NAMES gmock
- HINTS ${FIREBASE_INSTALL_DIR}/lib
-)
-
-find_package_handle_standard_args(
- gmock
- DEFAULT_MSG
- GMOCK_INCLUDE_DIR
- GMOCK_LIBRARY
-)
-
-if(GMOCK_FOUND)
- set(GMOCK_INCLUDE_DIRS ${GMOCK_INCLUDE_DIR})
- set(GMOCK_LIBRARIES ${GMOCK_LIBRARY})
-
- if (NOT TARGET GMock::GMock)
- add_library(GMock::GMock UNKNOWN IMPORTED)
- set_target_properties(
- GMock::GMock PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIRS}
- IMPORTED_LOCATION ${GMOCK_LIBRARY}
- )
- endif()
-endif(GMOCK_FOUND)
diff --git a/cmake/external/googletest.cmake b/cmake/external/googletest.cmake
index e2ebafc..32e9a39 100644
--- a/cmake/external/googletest.cmake
+++ b/cmake/external/googletest.cmake
@@ -28,8 +28,8 @@ ExternalProject_Add(
PREFIX ${PROJECT_BINARY_DIR}
- CMAKE_CACHE_ARGS
- -DCMAKE_INSTALL_PREFIX:STRING=${FIREBASE_INSTALL_DIR}
-
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
TEST_COMMAND ""
)
diff --git a/cmake/external/nanopb.cmake b/cmake/external/nanopb.cmake
index b341c36..50faa06 100644
--- a/cmake/external/nanopb.cmake
+++ b/cmake/external/nanopb.cmake
@@ -23,8 +23,6 @@ set(NANOPB_PROTOC_BIN ${FIREBASE_INSTALL_DIR}/bin/protoc)
ExternalProject_Add(
nanopb
- DEPENDS
- protobuf
DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
URL https://github.com/nanopb/nanopb/archive/nanopb-0.3.9.1.tar.gz
@@ -32,12 +30,8 @@ ExternalProject_Add(
PREFIX ${PROJECT_BINARY_DIR}
- CMAKE_ARGS
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_INSTALL_PREFIX:STRING=${FIREBASE_INSTALL_DIR}
- -DBUILD_SHARED_LIBS:BOOL=OFF
- -Dnanopb_BUILD_GENERATOR:BOOL=ON
- -Dnanopb_PROTOC_PATH:STRING=${NANOPB_PROTOC_BIN}
-
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
TEST_COMMAND ""
)
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index 1c3cbd6..7d32624 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -89,3 +89,15 @@ function(add_objc_flags target)
)
endif()
endfunction()
+
+# add_alias(alias_target actual_target)
+#
+# Adds a library alias target `alias_target` if it does not already exist,
+# aliasing to the given `actual_target` target. This allows library dependencies
+# to be specified uniformly in terms of the targets found in various
+# find_package modules even if the library is being built internally.
+function(add_alias ALIAS_TARGET ACTUAL_TARGET)
+ if(NOT TARGET ${ALIAS_TARGET})
+ add_library(${ALIAS_TARGET} ALIAS ${ACTUAL_TARGET})
+ endif()
+endfunction()