frank-pivotal 1.2.3.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +4 -0
  4. data/Rakefile +38 -0
  5. data/bin/frank +6 -0
  6. data/bin/frank-skeleton +33 -0
  7. data/frank-pivotal.gemspec +37 -0
  8. data/frank-skeleton/features/my_first.feature +12 -0
  9. data/frank-skeleton/features/step_definitions/launch_steps.rb +20 -0
  10. data/frank-skeleton/features/support/env.rb +8 -0
  11. data/frank-skeleton/frank_static_resources.bundle/ViewAttributeMapping.plist +63 -0
  12. data/frank-skeleton/frank_static_resources.bundle/ViewAttributeMappingMac.plist +99 -0
  13. data/frank-skeleton/frank_static_resources.bundle/images/ajax-loader.gif +0 -0
  14. data/frank-skeleton/frank_static_resources.bundle/images/file.gif +0 -0
  15. data/frank-skeleton/frank_static_resources.bundle/images/folder-closed.gif +0 -0
  16. data/frank-skeleton/frank_static_resources.bundle/images/folder.gif +0 -0
  17. data/frank-skeleton/frank_static_resources.bundle/images/loader.gif +0 -0
  18. data/frank-skeleton/frank_static_resources.bundle/images/loader.png +0 -0
  19. data/frank-skeleton/frank_static_resources.bundle/images/minus.gif +0 -0
  20. data/frank-skeleton/frank_static_resources.bundle/images/plus.gif +0 -0
  21. data/frank-skeleton/frank_static_resources.bundle/images/treeview-black-line.gif +0 -0
  22. data/frank-skeleton/frank_static_resources.bundle/images/treeview-black.gif +0 -0
  23. data/frank-skeleton/frank_static_resources.bundle/images/treeview-default-line.gif +0 -0
  24. data/frank-skeleton/frank_static_resources.bundle/images/treeview-default.gif +0 -0
  25. data/frank-skeleton/frank_static_resources.bundle/images/treeview-famfamfam-line.gif +0 -0
  26. data/frank-skeleton/frank_static_resources.bundle/images/treeview-famfamfam.gif +0 -0
  27. data/frank-skeleton/frank_static_resources.bundle/images/treeview-gray-line.gif +0 -0
  28. data/frank-skeleton/frank_static_resources.bundle/images/treeview-gray.gif +0 -0
  29. data/frank-skeleton/frank_static_resources.bundle/images/treeview-red-line.gif +0 -0
  30. data/frank-skeleton/frank_static_resources.bundle/images/treeview-red.gif +0 -0
  31. data/frank-skeleton/frank_static_resources.bundle/index.html +86 -0
  32. data/frank-skeleton/frank_static_resources.bundle/index.html.haml +76 -0
  33. data/frank-skeleton/frank_static_resources.bundle/js/accessible_views_view.coffee +41 -0
  34. data/frank-skeleton/frank_static_resources.bundle/js/accessible_views_view.js +46 -0
  35. data/frank-skeleton/frank_static_resources.bundle/js/controller.coffee +134 -0
  36. data/frank-skeleton/frank_static_resources.bundle/js/controller.js +139 -0
  37. data/frank-skeleton/frank_static_resources.bundle/js/details_view.coffee +42 -0
  38. data/frank-skeleton/frank_static_resources.bundle/js/details_view.js +51 -0
  39. data/frank-skeleton/frank_static_resources.bundle/js/dropdown_control.coffee +64 -0
  40. data/frank-skeleton/frank_static_resources.bundle/js/dropdown_control.js +73 -0
  41. data/frank-skeleton/frank_static_resources.bundle/js/ersatz_model.coffee +46 -0
  42. data/frank-skeleton/frank_static_resources.bundle/js/ersatz_model.js +60 -0
  43. data/frank-skeleton/frank_static_resources.bundle/js/ersatz_view.coffee +167 -0
  44. data/frank-skeleton/frank_static_resources.bundle/js/ersatz_view.js +205 -0
  45. data/frank-skeleton/frank_static_resources.bundle/js/experiment_bar_model.coffee +10 -0
  46. data/frank-skeleton/frank_static_resources.bundle/js/experiment_bar_model.js +17 -0
  47. data/frank-skeleton/frank_static_resources.bundle/js/experiment_bar_view.coffee +44 -0
  48. data/frank-skeleton/frank_static_resources.bundle/js/experiment_bar_view.js +63 -0
  49. data/frank-skeleton/frank_static_resources.bundle/js/frank.coffee +96 -0
  50. data/frank-skeleton/frank_static_resources.bundle/js/frank.js +146 -0
  51. data/frank-skeleton/frank_static_resources.bundle/js/lib/backbone.js +1431 -0
  52. data/frank-skeleton/frank_static_resources.bundle/js/lib/coffee-script.js +8 -0
  53. data/frank-skeleton/frank_static_resources.bundle/js/lib/jquery-ui.min.js +405 -0
  54. data/frank-skeleton/frank_static_resources.bundle/js/lib/jquery.min.js +4 -0
  55. data/frank-skeleton/frank_static_resources.bundle/js/lib/jquery.treeview.js +251 -0
  56. data/frank-skeleton/frank_static_resources.bundle/js/lib/json2.js +481 -0
  57. data/frank-skeleton/frank_static_resources.bundle/js/lib/raphael.js +5815 -0
  58. data/frank-skeleton/frank_static_resources.bundle/js/lib/require.js +2053 -0
  59. data/frank-skeleton/frank_static_resources.bundle/js/lib/underscore.js +1059 -0
  60. data/frank-skeleton/frank_static_resources.bundle/js/main.coffee +27 -0
  61. data/frank-skeleton/frank_static_resources.bundle/js/main.js +29 -0
  62. data/frank-skeleton/frank_static_resources.bundle/js/tabs_controller.coffee +13 -0
  63. data/frank-skeleton/frank_static_resources.bundle/js/tabs_controller.js +22 -0
  64. data/frank-skeleton/frank_static_resources.bundle/js/toast_controller.coffee +15 -0
  65. data/frank-skeleton/frank_static_resources.bundle/js/toast_controller.js +28 -0
  66. data/frank-skeleton/frank_static_resources.bundle/js/transform_stack.coffee +59 -0
  67. data/frank-skeleton/frank_static_resources.bundle/js/transform_stack.js +78 -0
  68. data/frank-skeleton/frank_static_resources.bundle/js/tree_view.coffee +53 -0
  69. data/frank-skeleton/frank_static_resources.bundle/js/tree_view.js +64 -0
  70. data/frank-skeleton/frank_static_resources.bundle/js/view_hier_model.coffee +37 -0
  71. data/frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js +48 -0
  72. data/frank-skeleton/frank_static_resources.bundle/js/view_model.coffee +39 -0
  73. data/frank-skeleton/frank_static_resources.bundle/js/view_model.js +62 -0
  74. data/frank-skeleton/frank_static_resources.bundle/pictos/index.html +329 -0
  75. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos-web.eot +0 -0
  76. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos-web.svg +114 -0
  77. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos-web.ttf +0 -0
  78. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos-web.woff +0 -0
  79. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos.css +20 -0
  80. data/frank-skeleton/frank_static_resources.bundle/pictos/pictos_base64.css +18 -0
  81. data/frank-skeleton/frank_static_resources.bundle/stylesheets/css/symbiote.css +1 -0
  82. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_elements.scss +28 -0
  83. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_header.scss +61 -0
  84. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_inspect_tabs_list_tabs.scss +194 -0
  85. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_jquery.treeview.scss +68 -0
  86. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_jqui.scss +2 -0
  87. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_layout.scss +13 -0
  88. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_mixins.sass +137 -0
  89. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_reset.scss +32 -0
  90. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_selector_test_toolbar.scss +81 -0
  91. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_solarized.scss +16 -0
  92. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_typography.scss +11 -0
  93. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_unicode.scss +3 -0
  94. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_z_index.scss +2 -0
  95. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/symbiote.scss +26 -0
  96. data/frank-skeleton/frankify.xcconfig.tt +6 -0
  97. data/frank-skeleton/libCocoaAsyncSocket.a +0 -0
  98. data/frank-skeleton/libCocoaAsyncSocketMac.a +0 -0
  99. data/frank-skeleton/libCocoaHTTPServer.a +0 -0
  100. data/frank-skeleton/libCocoaHTTPServerMac.a +0 -0
  101. data/frank-skeleton/libCocoaLumberjack.a +0 -0
  102. data/frank-skeleton/libCocoaLumberjackMac.a +0 -0
  103. data/frank-skeleton/libFrank.a +0 -0
  104. data/frank-skeleton/libFrankMac.a +0 -0
  105. data/frank-skeleton/libShelley.a +0 -0
  106. data/frank-skeleton/libShelleyMac.a +0 -0
  107. data/frank-skeleton/plugins/.empty_directory +0 -0
  108. data/lib/frank-pivotal/app_bundle_locator.rb +58 -0
  109. data/lib/frank-pivotal/bonjour.rb +78 -0
  110. data/lib/frank-pivotal/cli.rb +307 -0
  111. data/lib/frank-pivotal/color_helper.rb +13 -0
  112. data/lib/frank-pivotal/console.rb +28 -0
  113. data/lib/frank-pivotal/core_frank_steps.rb +264 -0
  114. data/lib/frank-pivotal/frank.xcconfig.erb +17 -0
  115. data/lib/frank-pivotal/frank_helper.rb +467 -0
  116. data/lib/frank-pivotal/frank_localize.rb +43 -0
  117. data/lib/frank-pivotal/frank_mac_helper.rb +120 -0
  118. data/lib/frank-pivotal/frankifier.rb +153 -0
  119. data/lib/frank-pivotal/gateway.rb +135 -0
  120. data/lib/frank-pivotal/gesture_helper.rb +99 -0
  121. data/lib/frank-pivotal/host_scripting.rb +102 -0
  122. data/lib/frank-pivotal/keyboard_helper.rb +69 -0
  123. data/lib/frank-pivotal/launcher.rb +118 -0
  124. data/lib/frank-pivotal/localize.yml +104 -0
  125. data/lib/frank-pivotal/location_helper.rb +20 -0
  126. data/lib/frank-pivotal/plugins/plugin.rb +57 -0
  127. data/lib/frank-pivotal/rect.rb +26 -0
  128. data/lib/frank-pivotal/scroll_helper.rb +24 -0
  129. data/lib/frank-pivotal/version.rb +5 -0
  130. data/lib/frank-pivotal/wait_helper.rb +57 -0
  131. data/lib/frank-pivotal.rb +14 -0
  132. data/test/keyboard_helper_test.rb +84 -0
  133. data/test/launcher_test.rb +57 -0
  134. data/test/rect_test.rb +25 -0
  135. data/test/test_helper.rb +16 -0
  136. metadata +367 -0
@@ -0,0 +1,28 @@
1
+ require 'frank-cucumber/frank_helper'
2
+ require 'frank-cucumber/frank_mac_helper'
3
+ require 'frank-cucumber/launcher'
4
+
5
+ module Frank
6
+ class Console
7
+ include Frank::Cucumber::FrankHelper
8
+ include Frank::Cucumber::FrankMacHelper
9
+ include Frank::Cucumber::Launcher
10
+
11
+ def check_for_running_app
12
+ print 'connecting to app...'
13
+ begin
14
+ Timeout::timeout(5) do
15
+ until frankly_ping
16
+ print '.'
17
+ sleep 0.2
18
+ end
19
+ end
20
+ rescue Timeout::Error
21
+ puts ' failed to connect.'
22
+ return false
23
+ end
24
+ puts ' connected'
25
+ return true
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,264 @@
1
+ WAIT_TIMEOUT = ENV['WAIT_TIMEOUT'].to_i || 240
2
+
3
+ require 'rspec/expectations'
4
+
5
+ # -- See -- #
6
+ Then /^I wait to see "([^\"]*)"$/ do |expected_mark|
7
+ quote = get_selector_quote(expected_mark)
8
+ wait_until(:message => "waited to see view marked #{quote}#{expected_mark}#{quote}"){
9
+ view_with_mark_exists( expected_mark )
10
+ }
11
+ end
12
+
13
+ Then /^I wait to not see "([^\"]*)"$/ do |expected_mark|
14
+ sleep 3 # ugh, this should be removed but I'm worried it'll break existing tests
15
+ quote = get_selector_quote(expected_mark)
16
+ wait_until(:message => "waited to not see view marked #{quote}#{expected_mark}#{quote}"){
17
+ !view_with_mark_exists( expected_mark )
18
+ }
19
+ end
20
+
21
+ Then /^I should see a navigation bar titled "([^\"]*)"$/ do |expected_mark|
22
+ quote = get_selector_quote(expected_mark)
23
+ check_element_exists( "navigationItemView marked:#{quote}#{expected_mark}#{quote}" )
24
+ end
25
+
26
+ Then /^I wait to see a navigation bar titled "([^\"]*)"$/ do |expected_mark|
27
+ quote = get_selector_quote(expected_mark)
28
+ wait_until( :timeout => 30, :message => "waited to see a navigation bar titled #{quote}#{expected_mark}#{quote}" ) {
29
+ element_exists( "navigationItemView marked:#{quote}#{expected_mark}#{quote}" )
30
+ }
31
+ end
32
+
33
+ Then /^I wait to not see a navigation bar titled "([^\"]*)"$/ do |expected_mark|
34
+ quote = get_selector_quote(expected_mark)
35
+ wait_until( :timeout => 30, :message => "waited to not see a navigation bar titled #{quote}#{expected_mark}#{quote}" ) {
36
+ !element_exists( "navigationItemView marked:#{quote}#{expected_mark}#{quote}" )
37
+ }
38
+ end
39
+
40
+ Then /^I should see a "([^\"]*)" button$/ do |expected_mark|
41
+ quote = get_selector_quote(expected_mark)
42
+ check_element_exists("button marked:#{quote}#{expected_mark}#{quote}")
43
+ end
44
+
45
+ Then /^I should see "([^\"]*)"$/ do |expected_mark|
46
+ check_view_with_mark_exists(expected_mark)
47
+ end
48
+
49
+ Then /^I should not see "([^\"]*)"$/ do |expected_mark|
50
+ quote = get_selector_quote(expected_mark)
51
+ check_element_does_not_exist_or_is_not_visible("view marked:#{quote}#{expected_mark}#{quote}")
52
+ end
53
+
54
+ Then /I should see the following:/ do |table|
55
+ values = frankly_map( 'view', 'FEX_accessibilityLabel' )
56
+ table.raw.each do |expected_mark|
57
+ values.should include( expected_mark.first )
58
+ end
59
+ end
60
+
61
+ Then /I should not see the following:/ do |table|
62
+ values = frankly_map( 'view', 'FEX_accessibilityLabel' )
63
+ table.raw.each do |expected_mark|
64
+ values.should_not include( expected_mark.first )
65
+ end
66
+ end
67
+
68
+ Then /^I should see an alert view titled "([^\"]*)"$/ do |expected_mark|
69
+ values = frankly_map( 'alertView', 'title')
70
+ values.should include(expected_mark)
71
+ end
72
+
73
+ Then /^I should see an alert view with the message "([^\"]*)"$/ do |expected_mark|
74
+ values = frankly_map( 'alertView', 'message')
75
+ values.should include(expected_mark)
76
+ end
77
+
78
+ Then /^I should not see an alert view$/ do
79
+ check_element_does_not_exist( 'alertView' )
80
+ end
81
+
82
+ Then /^I should see an element of class "([^\"]*)" with name "([^\"]*)" with the following labels: "([^\"]*)"$/ do |className, classLabel, listOfLabels|
83
+ arrayOfLabels = listOfLabels.split(',');
84
+ arrayOfLabels.each do |label|
85
+ quote = get_selector_quote(label)
86
+ check_element_exists("view marked:'#{classLabel}' parent view:'#{className}' descendant view marked:#{quote}#{label}#{quote}")
87
+ end
88
+ end
89
+
90
+ Then /^I should see an element of class "([^\"]*)" with name "([^\"]*)" with a "([^\"]*)" button$/ do |className, classLabel, buttonName|
91
+ quote = get_selector_quote(buttonName)
92
+ check_element_exists("view marked:'#{classLabel}' parent view:'#{className}' descendant button marked:#{quote}#{buttonName}#{quote}")
93
+ end
94
+
95
+ Then /^I should not see a hidden button marked "([^\"]*)"$/ do |expected_mark|
96
+ quote = get_selector_quote(expected_mark)
97
+ element_is_not_hidden("button marked:#{quote}#{expected_mark}#{quote}").should be_false
98
+ end
99
+
100
+ Then /^I should see a nonhidden button marked "([^\"]*)"$/ do |expected_mark|
101
+ quote = get_selector_quote(expected_mark)
102
+ element_is_not_hidden("button marked:#{quote}#{expected_mark}#{quote}").should be_true
103
+ end
104
+
105
+ Then /^I should see an element of class "([^\"]*)"$/ do |className|
106
+ element_is_not_hidden("view:'#{className}'").should be_true
107
+ end
108
+
109
+ Then /^I should not see an element of class "([^\"]*)"$/ do |className|
110
+ selector = "view:'#{className}'"
111
+ element_exists_and_is_not_hidden = element_exists( selector ) && element_is_not_hidden(selector)
112
+ element_exists_and_is_not_hidden.should be_false
113
+ end
114
+
115
+
116
+ # -- Rotate -- #
117
+ Given /^the device is in (a )?(landscape|portrait) orientation$/ do |_,orientation|
118
+ frankly_set_orientation orientation
119
+ end
120
+
121
+ When /^I simulate a memory warning$/ do
122
+ simulate_memory_warning
123
+ end
124
+
125
+ Then /^I rotate to the "([^\"]*)"$/ do |direction|
126
+ if direction == "right"
127
+ rotate_simulator_right
128
+ elsif direction == "left"
129
+ rotate_simulator_left
130
+ else
131
+ raise %Q|Rotation direction specified ("#{direction}") is invalid. Please specify right or left.|
132
+ end
133
+ sleep 1
134
+ end
135
+
136
+ # -- touch -- #
137
+ # generic views
138
+ When /^I touch "([^\"]*)"$/ do |mark|
139
+ quote = get_selector_quote(mark)
140
+ selector = "view marked:#{quote}#{mark}#{quote} first"
141
+ if element_exists(selector)
142
+ touch( selector )
143
+ else
144
+ raise "Could not touch [#{mark}], it does not exist."
145
+ end
146
+ sleep 1
147
+ end
148
+
149
+ When /^I touch "([^\"]*)" if exists$/ do |mark|
150
+ sleep 1
151
+ quote = get_selector_quote(mark)
152
+ selector = "view marked:#{quote}#{mark}#{quote} first"
153
+ if element_exists(selector)
154
+ touch(selector)
155
+ end
156
+ end
157
+
158
+ # table cells
159
+ When /^I touch the first table cell$/ do
160
+ touch("tableViewCell first")
161
+ end
162
+
163
+ When /^I touch the table cell marked "([^\"]*)"$/ do |mark|
164
+ quote = get_selector_quote(mark)
165
+ touch("tableViewCell marked:#{quote}#{mark}#{quote}")
166
+ end
167
+
168
+ When /^I touch the (\d*)(?:st|nd|rd|th)? table cell$/ do |ordinal|
169
+ ordinal = ordinal.to_i - 1
170
+ touch("tableViewCell index:#{ordinal}")
171
+ end
172
+
173
+ Then /I touch the following:/ do |table|
174
+ values = frankly_map( 'view', 'FEX_accessibilityLabel' )
175
+ table.raw.each do |expected_mark|
176
+ quote = get_selector_quote(expected_mark)
177
+ touch( "view marked:#{quote}#{expected_mark}#{quote}" )
178
+ sleep 2
179
+ end
180
+ end
181
+
182
+ # buttons
183
+ When /^I touch the button marked "([^\"]*)"$/ do |mark|
184
+ quote = get_selector_quote(mark)
185
+ touch( "button marked:#{quote}#{mark}#{quote}" )
186
+ end
187
+
188
+ # action sheets
189
+ When /^I touch the "([^\"]*)" action sheet button$/ do |mark|
190
+ quote = get_selector_quote(mark)
191
+ touch( "actionSheet threePartButton marked:#{quote}#{mark}#{quote}" )
192
+ end
193
+
194
+ When /^I touch the (\d*)(?:st|nd|rd|th)? action sheet button$/ do |ordinal|
195
+ ordinal = ordinal.to_i
196
+ touch( "actionSheet threePartButton tag:#{ordinal}" )
197
+ end
198
+
199
+ # alert views
200
+ When /^I touch the "([^\"]*)" alert view button$/ do |mark|
201
+ quote = get_selector_quote(mark)
202
+ touch( "alertView threePartButton marked:#{quote}#{mark}#{quote}" )
203
+ end
204
+
205
+ When /^I touch the (\d*)(?:st|nd|rd|th)? alert view button$/ do |ordinal|
206
+ ordinal = ordinal.to_i
207
+ touch( "alertView threePartButton tag:#{ordinal}" )
208
+ end
209
+
210
+ # -- switch -- #
211
+
212
+ When /^I flip switch "([^\"]*)"$/ do |mark|
213
+ quote = get_selector_quote(mark)
214
+ touch("view:'UISwitch' marked:#{quote}#{mark}#{quote}")
215
+ end
216
+
217
+
218
+ Then /^switch "([^\"]*)" should be (on|off)$/ do |mark,expected_state|
219
+ expected_state = expected_state == 'on'
220
+
221
+ quote = get_selector_quote(mark)
222
+ selector = "view:'UISwitch' marked:#{quote}#{mark}#{quote}"
223
+ switch_states = frankly_map( selector, "isOn" )
224
+
225
+ switch_states.each do |switch_state|
226
+ if switch_state
227
+ [true, 1].should include expected_state
228
+ else
229
+ [false, 0].should include expected_state
230
+ end
231
+ end
232
+ end
233
+
234
+ # -- misc -- #
235
+
236
+ When /^I wait for ([\d\.]+) second(?:s)?$/ do |num_seconds|
237
+ num_seconds = num_seconds.to_f
238
+ sleep num_seconds
239
+ end
240
+
241
+ Then /^a pop\-over menu is displayed with the following:$/ do |table|
242
+ sleep 1
243
+ table.raw.each do |expected_mark|
244
+ quote = get_selector_quote(expected_mark)
245
+ check_element_exists "actionSheet view marked:#{quote}#{expected_mark}#{quote}"
246
+ end
247
+ end
248
+
249
+ Then /^I navigate back$/ do
250
+ touch( "navigationItemButtonView" )
251
+ wait_for_nothing_to_be_animating
252
+ end
253
+
254
+ When /^I dump the DOM$/ do
255
+ dom = frankly_dump
256
+ end
257
+
258
+ When /^I quit the simulator/ do
259
+ quit_simulator
260
+ end
261
+
262
+ When /^I reset the simulator/ do
263
+ simulator_reset_data
264
+ end
@@ -0,0 +1,17 @@
1
+ #include "frankify.xcconfig"
2
+ <% plugins.each do |plugin| %>
3
+ #include "plugins/<%=plugin.name%>/<%=plugin.xcconfig%>"
4
+ <% end %>
5
+ INSTALL_PATH = /./
6
+
7
+ <% plugin_names = plugins.map {|plugin| plugin.name } %>
8
+
9
+ FRANK_LDFLAGS_iphoneos = $(FRANK_CORE_LDFLAGS) <%= plugin_names.map {|name| "$(#{name.upcase}_LDFLAGS)"}.join(' ') %>
10
+
11
+ FRANK_LDFLAGS_macosx = $(FRANK_CORE_MAC_LDFLAGS) <%= plugin_names.map {|name| "$(#{name.upcase}_MAC_LDFLAGS)"}.join(' ') %>
12
+
13
+ FRANK_LDFLAGS_iphonesimulator = $(FRANK_LDFLAGS_iphoneos)
14
+
15
+ FRANK_LDFLAGS = $(FRANK_LDFLAGS_$(PLATFORM_NAME))
16
+
17
+ FRANK_GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = $(FRANK_CORE_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS) <%= plugin_names.map {|name| "$(#{name.upcase}_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)"}.join(' ') %>