diff options
author | Gil <mcg@google.com> | 2018-07-16 11:46:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-16 11:46:55 -0700 |
commit | c7fb0a487523b3686a03e3b7f9b459fcb9323a36 (patch) | |
tree | b2a7ddbb1ecf7f354b000642f195129223e4bf81 /cmake/xcodebuild.cmake | |
parent | 22562f49ebd39bb7f3d3b00f020841eb1f545934 (diff) |
Generate CMake frameworks from podspecs (#1531)
* Rename utils.cmake to cc_rules.cmake
This makes it less of a dumping ground
* Fix sign mismatch in FIRApp
* Implement a podspec_framework CMake function
... that generates a CMake framework library target from a podspec.
* Remove manual CMake scripts for xcodebuild
Diffstat (limited to 'cmake/xcodebuild.cmake')
-rw-r--r-- | cmake/xcodebuild.cmake | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/cmake/xcodebuild.cmake b/cmake/xcodebuild.cmake deleted file mode 100644 index cc72c60..0000000 --- a/cmake/xcodebuild.cmake +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2017 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) -include(ExternalProject) - -# Builds an existing Xcode project or workspace as an external project in CMake. -# -# xcodebuild(<framework> [<option>...]) -# -# Options: -# ``DEPENDS <projects>...`` -# Targets on which the project depends -# ``SCHEME <scheme>`` -# The scheme to build in the workspace, defaults to <framework>-<platform>, -# where <platform> is always "macOS". -# ``WORKSPACE <workspace>`` -# Location of the xcworkspace file containing the target to build. Defaults to -# Example/Firebase.xcworkspace. -function(xcodebuild framework) - # Parse arguments - set(options "") - set(single_value SCHEME WORKSPACE) - set(multi_value DEPENDS) - cmake_parse_arguments(xcb "${options}" "${single_value}" "${multi_value}" ${ARGN}) - - if(NOT xcb_WORKSPACE) - set(xcb_WORKSPACE ${PROJECT_SOURCE_DIR}/Example/Firebase.xcworkspace) - endif() - - # TODO(mcg): Investigate supporting non-macOS platforms - # The canonical way to build and test for iOS is via Xcode and CocoaPods so - # it's not super important to make this work here - set(platform macOS) - set(destination "platform=macOS,arch=x86_64") - set(scheme "${framework}-${platform}") - - # CMake has a variety of release types, but Xcode has just one by default. - if(CMAKE_BUILD_TYPE STREQUAL Debug) - set(configuration Debug) - else() - set(configuration Release) - endif() - - # Pipe build output through xcpretty if it's available - find_program(xcpretty_cmd xcpretty) - if(xcpretty_cmd) - set(pipe_xcpretty "|" ${xcpretty_cmd}) - endif() - - ExternalProject_Add( - ${framework} - DEPENDS ${xcb_DEPENDS} - - PREFIX ${PROJECT_BINARY_DIR} - - # The source directory doesn't actually matter - SOURCE_DIR ${PROJECT_SOURCE_DIR} - INSTALL_DIR ${FIREBASE_INSTALL_DIR}/Frameworks - - CONFIGURE_COMMAND "" - - BUILD_COMMAND - xcodebuild - -workspace ${xcb_WORKSPACE} - -scheme ${scheme} - -configuration ${configuration} - -destination ${destination} - CONFIGURATION_BUILD_DIR=<INSTALL_DIR> - build - ${pipe_xcpretty} - BUILD_ALWAYS ${BUILD_PODS} - - INSTALL_COMMAND "" - TEST_COMMAND "" - ) - -endfunction() |