OLD | NEW |
1 # Copyright (c) 2012 Google Inc. All rights reserved. | 1 # Copyright (c) 2012 Google Inc. 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 """GYP backend that generates Eclipse CDT settings files. | 5 """GYP backend that generates Eclipse CDT settings files. |
6 | 6 |
7 This backend DOES NOT generate Eclipse CDT projects. Instead, it generates XML | 7 This backend DOES NOT generate Eclipse CDT projects. Instead, it generates XML |
8 files that can be imported into an Eclipse CDT project. The XML file contains a | 8 files that can be imported into an Eclipse CDT project. The XML file contains a |
9 list of include paths and symbols (i.e. defines). | 9 list of include paths and symbols (i.e. defines). |
10 | 10 |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 # e.g. "out/Debug" | 263 # e.g. "out/Debug" |
264 build_dir = os.path.join(generator_flags.get('output_dir', 'out'), | 264 build_dir = os.path.join(generator_flags.get('output_dir', 'out'), |
265 config_name) | 265 config_name) |
266 | 266 |
267 toplevel_build = os.path.join(options.toplevel_dir, build_dir) | 267 toplevel_build = os.path.join(options.toplevel_dir, build_dir) |
268 # Ninja uses out/Debug/gen while make uses out/Debug/obj/gen as the | 268 # Ninja uses out/Debug/gen while make uses out/Debug/obj/gen as the |
269 # SHARED_INTERMEDIATE_DIR. Include both possible locations. | 269 # SHARED_INTERMEDIATE_DIR. Include both possible locations. |
270 shared_intermediate_dirs = [os.path.join(toplevel_build, 'obj', 'gen'), | 270 shared_intermediate_dirs = [os.path.join(toplevel_build, 'obj', 'gen'), |
271 os.path.join(toplevel_build, 'gen')] | 271 os.path.join(toplevel_build, 'gen')] |
272 | 272 |
273 if not os.path.exists(toplevel_build): | 273 out_name = os.path.join(toplevel_build, 'eclipse-cdt-settings.xml') |
274 os.makedirs(toplevel_build) | 274 gyp.common.EnsureDirExists(out_name) |
275 out = open(os.path.join(toplevel_build, 'eclipse-cdt-settings.xml'), 'w') | 275 out = open(out_name, 'w') |
276 | 276 |
277 out.write('<?xml version="1.0" encoding="UTF-8"?>\n') | 277 out.write('<?xml version="1.0" encoding="UTF-8"?>\n') |
278 out.write('<cdtprojectproperties>\n') | 278 out.write('<cdtprojectproperties>\n') |
279 | 279 |
280 eclipse_langs = ['C++ Source File', 'C Source File', 'Assembly Source File', | 280 eclipse_langs = ['C++ Source File', 'C Source File', 'Assembly Source File', |
281 'GNU C++', 'GNU C', 'Assembly'] | 281 'GNU C++', 'GNU C', 'Assembly'] |
282 include_dirs = GetAllIncludeDirectories(target_list, target_dicts, | 282 include_dirs = GetAllIncludeDirectories(target_list, target_dicts, |
283 shared_intermediate_dirs, config_name, | 283 shared_intermediate_dirs, config_name, |
284 params) | 284 params) |
285 WriteIncludePaths(out, eclipse_langs, include_dirs) | 285 WriteIncludePaths(out, eclipse_langs, include_dirs) |
(...skipping 13 matching lines...) Expand all Loading... |
299 user_config = params.get('generator_flags', {}).get('config', None) | 299 user_config = params.get('generator_flags', {}).get('config', None) |
300 if user_config: | 300 if user_config: |
301 GenerateOutputForConfig(target_list, target_dicts, data, params, | 301 GenerateOutputForConfig(target_list, target_dicts, data, params, |
302 user_config) | 302 user_config) |
303 else: | 303 else: |
304 config_names = target_dicts[target_list[0]]['configurations'].keys() | 304 config_names = target_dicts[target_list[0]]['configurations'].keys() |
305 for config_name in config_names: | 305 for config_name in config_names: |
306 GenerateOutputForConfig(target_list, target_dicts, data, params, | 306 GenerateOutputForConfig(target_list, target_dicts, data, params, |
307 config_name) | 307 config_name) |
308 | 308 |
OLD | NEW |