Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: scripts/slave/recipe_modules/ios/api.py

Issue 1145733003: ios: Allow bot configs to set extra env variables (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Provide a default self.__config['env'] Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/ios/example.expected/basic.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import copy 5 import copy
6 6
7 from slave import recipe_api 7 from slave import recipe_api
8 8
9 9
10 class iOSApi(recipe_api.RecipeApi): 10 class iOSApi(recipe_api.RecipeApi):
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 'configuration', 116 'configuration',
117 'sdk', 117 'sdk',
118 ): 118 ):
119 self.__config[key] = parent_config[key] 119 self.__config[key] = parent_config[key]
120 120
121 # We set some default GYP_DEFINES so developers don't have to set them 121 # We set some default GYP_DEFINES so developers don't have to set them
122 # manually on every bot. Add them in here. 122 # manually on every bot. Add them in here.
123 self.__config['GYP_DEFINES']['component'] = 'static_library' 123 self.__config['GYP_DEFINES']['component'] = 'static_library'
124 self.__config['GYP_DEFINES']['OS'] = 'ios' 124 self.__config['GYP_DEFINES']['OS'] = 'ios'
125 125
126 # Because build configs are only required to specify "triggered bots" or 126 # In order to simplify the code that uses the values of self.__config, here
127 # "tests", one of them may not be specified. In order to simplify the code 127 # we default to empty values of their respective types, so in other places
128 # that uses the values of self.__config, here we default them both to empty 128 # we can iterate over them without having to check if they are in the dict
129 # values of their respective types, so in other places we can iterate over 129 # at all.
130 # them without having to check if they are in the dict at all.
131 self.__config['triggered bots'] = self.__config.get('triggered bots', {}) 130 self.__config['triggered bots'] = self.__config.get('triggered bots', {})
132 self.__config['tests'] = self.__config.get('tests', []) 131 self.__config['tests'] = self.__config.get('tests', [])
132 self.__config['env'] = self.__config.get('env', {})
133 133
134 # Elements of the "tests" list are dicts. There are two types of elements, 134 # Elements of the "tests" list are dicts. There are two types of elements,
135 # determined by the presence of one of these mutually exclusive keys: 135 # determined by the presence of one of these mutually exclusive keys:
136 # "app": This says to run a particular app. 136 # "app": This says to run a particular app.
137 # "include": This says to include a common set of tests from include_dir. 137 # "include": This says to include a common set of tests from include_dir.
138 # So now we go through the "tests" list replacing any "include" keys. 138 # So now we go through the "tests" list replacing any "include" keys.
139 # The value of an "include" key is the name of a set of tests to include, 139 # The value of an "include" key is the name of a set of tests to include,
140 # which can be found as a .json file in include_dir. Read the contents 140 # which can be found as a .json file in include_dir. Read the contents
141 # lazily as needed into includes. 141 # lazily as needed into includes.
142 def read_include(includes): 142 def read_include(includes):
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 # Add the default GYP_DEFINES. 217 # Add the default GYP_DEFINES.
218 gyp_defines = [ 218 gyp_defines = [
219 '%s=%s' % (k, v) for k, v in self.__config['GYP_DEFINES'].iteritems() 219 '%s=%s' % (k, v) for k, v in self.__config['GYP_DEFINES'].iteritems()
220 ] 220 ]
221 221
222 env = { 222 env = {
223 'GYP_DEFINES': ' '.join(gyp_defines), 223 'GYP_DEFINES': ' '.join(gyp_defines),
224 'LANDMINES_VERBOSE': '1', 224 'LANDMINES_VERBOSE': '1',
225 } 225 }
226 226
227 # Add extra env variables.
228 env.update(self.__config['env'])
229
227 if self.compiler == 'xcodebuild': 230 if self.compiler == 'xcodebuild':
228 env['GYP_GENERATORS'] = 'xcode' 231 env['GYP_GENERATORS'] = 'xcode'
229 env['GYP_GENERATOR_FLAGS'] = 'xcode_project_version=3.2' 232 env['GYP_GENERATOR_FLAGS'] = 'xcode_project_version=3.2'
230 cwd = self.m.path['checkout'].join('xcodebuild') 233 cwd = self.m.path['checkout'].join('xcodebuild')
231 cmd = [ 234 cmd = [
232 'xcodebuild', 235 'xcodebuild',
233 '-configuration', self.configuration, 236 '-configuration', self.configuration,
234 '-project', self.m.path['checkout'].join( 237 '-project', self.m.path['checkout'].join(
235 'build', 238 'build',
236 'all.xcodeproj', 239 'all.xcodeproj',
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 self.configuration, 429 self.configuration,
427 'iossim', 430 'iossim',
428 ), 431 ),
429 'ninja': self.m.path.join( 432 'ninja': self.m.path.join(
430 'src', 433 'src',
431 build_dir, 434 build_dir,
432 '%s-%s' % (self.configuration, platform), 435 '%s-%s' % (self.configuration, platform),
433 'iossim', 436 'iossim',
434 ), 437 ),
435 }[self.compiler] 438 }[self.compiler]
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/ios/example.expected/basic.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698