mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-11 22:55:59 +05:45
71 lines
2.4 KiB
CMake
71 lines
2.4 KiB
CMake
# 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(CMakeParseArguments)
|
||
|
|
|
||
|
|
# Assemble the git-related arguments to an external project making use of the
|
||
|
|
# latest features where available but avoiding them when run under CMake
|
||
|
|
# versions that don't support them.
|
||
|
|
#
|
||
|
|
# The complete set of git-related arguments are stored as a list in the
|
||
|
|
# variable named by RESULT_VAR in the calling scope.
|
||
|
|
#
|
||
|
|
# Currently this handles:
|
||
|
|
# * GIT_SUBMODULES -- added on CMake 3.0 or later. Earlier CMakes will
|
||
|
|
# check out all submodules.
|
||
|
|
# * GIT_SHALLOW -- added by default on CMake 3.6 or later. Disable by passing
|
||
|
|
# GIT_SHALLOW OFF
|
||
|
|
# * GIT_PROGRESS -- added by default on CMake 3.8 or later. Disable by
|
||
|
|
# passing GIT_PROGRESS OFF
|
||
|
|
function(ExternalProject_GitSource RESULT_VAR)
|
||
|
|
# Parse arguments
|
||
|
|
set(options "")
|
||
|
|
set(single_value GIT_REPOSITORY GIT_TAG GIT_PROGRESS GIT_SHALLOW)
|
||
|
|
set(multi_value GIT_SUBMODULES)
|
||
|
|
cmake_parse_arguments(EP "${options}" "${single_value}" "${multi_value}" ${ARGN})
|
||
|
|
|
||
|
|
set(
|
||
|
|
result
|
||
|
|
GIT_REPOSITORY ${EP_GIT_REPOSITORY}
|
||
|
|
GIT_TAG ${EP_GIT_TAG}
|
||
|
|
${EP_UNPARSED_ARGUMENTS}
|
||
|
|
)
|
||
|
|
|
||
|
|
# CMake 3.0 added support for constraining the set of submodules to clone
|
||
|
|
if(NOT (CMAKE_VERSION VERSION_LESS "3.0") AND EP_GIT_SUBMODULES)
|
||
|
|
list(APPEND result GIT_SUBMODULES ${EP_GIT_SUBMODULES})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# CMake 3.6 added support for shallow git clones. Use a shallow clone if
|
||
|
|
# available
|
||
|
|
if(NOT (CMAKE_VERSION VERSION_LESS "3.6"))
|
||
|
|
if(NOT EP_GIT_SHALLOW)
|
||
|
|
set(EP_GIT_SHALLOW ON)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
list(APPEND result GIT_SHALLOW ${EP_GIT_SHALLOW})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# CMake 3.8 added support for showing progress for large downloads
|
||
|
|
if(NOT (CMAKE_VERSION VERSION_LESS "3.8"))
|
||
|
|
if(NOT EP_GIT_PROGRESS)
|
||
|
|
set(EP_GIT_PROGRESS ON)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
list(APPEND result GIT_PROGRESS ${EP_GIT_PROGRESS})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
set(${RESULT_VAR} ${result} PARENT_SCOPE)
|
||
|
|
|
||
|
|
endfunction()
|