summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-04-10 22:23:14 -0700
committerMinh Nguyễn <mxn@1ec5.org>2016-04-16 22:45:59 -0700
commitb8c39667ff7e6a7aeb74abb2469971304929def1 (patch)
treea3eac31a8f6487e67f6b301ef7ae583f9f90d92c /scripts
parent1549b2b24908192238c2a7eb37dc1d0b25c1cb62 (diff)
downloadqtlocation-mapboxgl-b8c39667ff7e6a7aeb74abb2469971304929def1.tar.gz
[ios] Moved SDK from gyp into Xcode project
Added a new Cocoa Touch dynamic framework target and Cocoa Touch static library target to the main iOS Xcode project. The targets are based on the templates provided by Xcode. They contain headers and source files in the darwin/ and ios/ subdirectories. Headers are explicitly marked public or project-internal instead of implicitly by subdirectory. The SDK targets have a few dependencies that are managed by mason. Transform the config.gypi generated by configure into an .xcconfig file that Xcode uses to fill in compiler and linker flags. Removed the iossdk target from platform.gypi and pared down the platform-lib target. make iproj opens the overall Xcode workspace instead of just the core project. Resolved some warnings that are only now appearing because we’re using the standard warning and error flags instead of the pedantic and somewhat inappropriate flags that were forced by the gyp configuration files. Removed a console message informing developers of a long-ago deleted delegate method; the message was triggering a “selector not found” warning. Conditionalized some deprecated symbol usage that’s still needed for the static framework but not the dynamic framework, due to differing minimum deployment targets. Added a build phase to the static library target that copies headers for use with the static library itself. This would allow us to potentially include a header in the dynamic framework but not the static library and vice-versa. Updated the changelog to note that unused SVG files have been removed from the distribution.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/export-xcconfig.py20
-rw-r--r--scripts/main.mk2
2 files changed, 22 insertions, 0 deletions
diff --git a/scripts/export-xcconfig.py b/scripts/export-xcconfig.py
new file mode 100755
index 0000000000..75fe933e24
--- /dev/null
+++ b/scripts/export-xcconfig.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+import sys, ast, re
+
+ILLEGAL_CHAR_RE = re.compile(r"\W")
+
+def main():
+ with open(sys.argv[1], "r") as in_file, open(sys.argv[2], "w") as out_file:
+ config = ast.literal_eval(in_file.read())
+ variables = ["// Do not edit -- generated by export-xcconfig.py\n"]
+ assert(type(config) is dict)
+ assert(type(config["variables"]) is dict)
+ for variable, flags in config["variables"].iteritems():
+ variable = ILLEGAL_CHAR_RE.sub("_", variable.rstrip("%"))
+ flags = " ".join('"%s"' % flag for flag in flags)
+ variables.append("%s = %s\n" % (variable, flags))
+ out_file.writelines(variables)
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/main.mk b/scripts/main.mk
index 51879c23a1..0c86f39a8d 100644
--- a/scripts/main.mk
+++ b/scripts/main.mk
@@ -79,6 +79,8 @@ Makefile/__project__: $(PLATFORM_CONFIG_OUTPUT)
.PHONY: Xcode/__project__
Xcode/__project__: $(PLATFORM_CONFIG_OUTPUT)
+ @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Exporting gyp variables to xcconfig...$(FORMAT_END)\n"
+ $(ENV) ./scripts/export-xcconfig.py $(PLATFORM_CONFIG_OUTPUT) $(PLATFORM_OUTPUT)/mbgl.xcconfig
@printf "$(TEXT_BOLD)$(COLOR_GREEN)* Recreating project...$(FORMAT_END)\n"
$(ENV) deps/run_gyp platform/$(PLATFORM)/platform.gyp $(GYP_FLAGS) -f xcode$(GYP_FLAVOR_SUFFIX)