aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake/podspec_rules.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/podspec_rules.cmake')
-rw-r--r--cmake/podspec_rules.cmake51
1 files changed, 51 insertions, 0 deletions
diff --git a/cmake/podspec_rules.cmake b/cmake/podspec_rules.cmake
new file mode 100644
index 0000000..043c1a2
--- /dev/null
+++ b/cmake/podspec_rules.cmake
@@ -0,0 +1,51 @@
+# 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)
+
+# Reads properties from the given podspec and generates a cmake file that
+# defines the equivalent framework.
+#
+# Only does anything useful on Apple platforms. On non-Apple platforms, this
+# function has no effect--no target is created.
+macro(podspec_framework PODSPEC_FILE)
+ if(APPLE)
+ set(multi SPECS)
+ cmake_parse_arguments(psf "" "" "${multi}" ${ARGN})
+
+ get_filename_component(_properties_file ${PODSPEC_FILE} NAME_WE)
+ set(_properties_file ${_properties_file}.cmake)
+
+ execute_process(
+ COMMAND
+ ${FIREBASE_SOURCE_DIR}/cmake/podspec_cmake.rb
+ ${PODSPEC_FILE}
+ ${CMAKE_CURRENT_BINARY_DIR}/${_properties_file}
+ ${psf_SPECS}
+ )
+
+ # Get CMake to automatically re-run if the generation script or the podspec
+ # source changes.
+ set_property(
+ DIRECTORY APPEND PROPERTY
+ CMAKE_CONFIGURE_DEPENDS ${FIREBASE_SOURCE_DIR}/cmake/podspec_cmake.rb
+ )
+ set_property(
+ DIRECTORY APPEND PROPERTY
+ CMAKE_CONFIGURE_DEPENDS ${PODSPEC_FILE}
+ )
+
+ include(${CMAKE_CURRENT_BINARY_DIR}/${_properties_file})
+ endif()
+endmacro()