DescriptionThese commits do 2 things compared to the original code:
1. complete the mapping of build-setting names to Xcode destination spec code
2. change the RE used to separate the build setting name from any trailing path elements to a non-greedy match so that build-setting variables can be used in the trailing part of the destination.
No. 1 enables specification of any of the destinations available in the Xcode 5.2 UI. The current code supports only "Products Directory" and "Absolute Path". With proper understanding of Xcode build setting variables and the Xcode generator, any destination can be specified as an "Absolute Path" so this change does not enable any new functionality. It just makes it easier and generates a more user friendly project file.
No. 2 enables the above mapping to extract and match $(VAR1) from destination specifications like $(VAR1)/$(VAR2) as well as $(VAR1)/relative/path. Once matched the GUI Destination field will be set appropriately. The previous greedy match, would only extract VAR1 from a spec like $(VAR1)/relative/path. As a result the Destination shown in the GUI for these 2 cases would have different values while the gyp file would suggest they should be the same.
The updated patch adds the RE fix and also fixes an error in the list added by the first patch which was mapping EXECUTABLES_FOLDER_PATH to destination code 6. Xcode uses EXECUTABLE_FOLDER_PATH as the destination for code 6.
It also changes handling of the "XPC Services" destination so gyp files can simply use XPCSERVICES_FOLDER_PATH just like any other destination.
Will this break anything?
I have run the mac and ios tests and got identical results before and after the change.
There is no possibility for the first change to break any working gyp projects as they could only use BUILT_PRODUCTS_DIR and that is still first in the map.
The second change could not change the build result of any working project but a project using e.g. $(BUILT_PRODUCTS_DIR)/$(EXECUTABLES_FOLDER_PATH) will see the Destination in the UI change from an "Absolute Path" of $(BUILT_PRODUCTS_DIR)/$(EXECUTABLES_FOLDER_PATH) to "Products Directory" with a subfolder of $(EXECUTABLES_FOLDER_PATH). The final destination is the same in both cases.
Patch Set 1 #Patch Set 2 : Update fixing greedy RE match and incorrect build setting name #
Total comments: 3
Messages
Total messages: 5 (0 generated)
|