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

Side by Side Diff: pylib/gyp/generator/cmake.py

Issue 113463003: Use gyp.common.EnsureDirExists() in more places. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « pylib/gyp/generator/android.py ('k') | pylib/gyp/generator/eclipse.py » ('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 (c) 2013 Google Inc. All rights reserved. 1 # Copyright (c) 2013 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 """cmake output module 5 """cmake output module
6 6
7 This module is under development and should be considered experimental. 7 This module is under development and should be considered experimental.
8 8
9 This module produces cmake (2.8.8+) input as its output. One CMakeLists.txt is 9 This module produces cmake (2.8.8+) input as its output. One CMakeLists.txt is
10 created for each configuration. 10 created for each configuration.
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 """Resolves rel_path against base_path and returns the result. 111 """Resolves rel_path against base_path and returns the result.
112 TODO: what is this really used for? 112 TODO: what is this really used for?
113 If rel_path begins with '$' it is returned unchanged. 113 If rel_path begins with '$' it is returned unchanged.
114 Otherwise it is resolved against base_path if relative, then normalized. 114 Otherwise it is resolved against base_path if relative, then normalized.
115 """ 115 """
116 if rel_path.startswith('$') and not rel_path.startswith('${configuration}'): 116 if rel_path.startswith('$') and not rel_path.startswith('${configuration}'):
117 return rel_path 117 return rel_path
118 return os.path.normpath(os.path.join(base_path, rel_path)) 118 return os.path.normpath(os.path.join(base_path, rel_path))
119 119
120 120
121 def EnsureDirectoryExists(path):
122 """Python version of 'mkdir -p'."""
123 dirPath = os.path.dirname(path)
124 if dirPath and not os.path.exists(dirPath):
125 os.makedirs(dirPath)
126
127
128 def CMakeStringEscape(a): 121 def CMakeStringEscape(a):
129 """Escapes the string 'a' for use inside a CMake string. 122 """Escapes the string 'a' for use inside a CMake string.
130 123
131 This means escaping 124 This means escaping
132 '\' otherwise it may be seen as modifying the next character 125 '\' otherwise it may be seen as modifying the next character
133 '"' otherwise it will end the string 126 '"' otherwise it will end the string
134 ';' otherwise the string becomes a list 127 ';' otherwise the string becomes a list
135 128
136 The following do not need to be escaped 129 The following do not need to be escaped
137 '#' when the lexer is in string state, this does not start a comment 130 '#' when the lexer is in string state, this does not start a comment
(...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 1027
1035 # build_dir: relative path from source root to our output files. 1028 # build_dir: relative path from source root to our output files.
1036 # e.g. "out/Debug" 1029 # e.g. "out/Debug"
1037 build_dir = os.path.normpath(os.path.join(generator_dir, 1030 build_dir = os.path.normpath(os.path.join(generator_dir,
1038 output_dir, 1031 output_dir,
1039 config_to_use)) 1032 config_to_use))
1040 1033
1041 toplevel_build = os.path.join(options.toplevel_dir, build_dir) 1034 toplevel_build = os.path.join(options.toplevel_dir, build_dir)
1042 1035
1043 output_file = os.path.join(toplevel_build, 'CMakeLists.txt') 1036 output_file = os.path.join(toplevel_build, 'CMakeLists.txt')
1044 EnsureDirectoryExists(output_file) 1037 gyp.common.EnsureDirExists(output_file)
1045 1038
1046 output = open(output_file, 'w') 1039 output = open(output_file, 'w')
1047 output.write('cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)\n') 1040 output.write('cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)\n')
1048 output.write('cmake_policy(VERSION 2.8.8)\n') 1041 output.write('cmake_policy(VERSION 2.8.8)\n')
1049 1042
1050 _, project_target, _ = gyp.common.ParseQualifiedTarget(target_list[-1]) 1043 _, project_target, _ = gyp.common.ParseQualifiedTarget(target_list[-1])
1051 output.write('project(') 1044 output.write('project(')
1052 output.write(project_target) 1045 output.write(project_target)
1053 output.write(')\n') 1046 output.write(')\n')
1054 1047
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1141 arglists.append((target_list, target_dicts, data, 1134 arglists.append((target_list, target_dicts, data,
1142 params, config_name)) 1135 params, config_name))
1143 pool.map(CallGenerateOutputForConfig, arglists) 1136 pool.map(CallGenerateOutputForConfig, arglists)
1144 except KeyboardInterrupt, e: 1137 except KeyboardInterrupt, e:
1145 pool.terminate() 1138 pool.terminate()
1146 raise e 1139 raise e
1147 else: 1140 else:
1148 for config_name in config_names: 1141 for config_name in config_names:
1149 GenerateOutputForConfig(target_list, target_dicts, data, 1142 GenerateOutputForConfig(target_list, target_dicts, data,
1150 params, config_name) 1143 params, config_name)
OLDNEW
« no previous file with comments | « pylib/gyp/generator/android.py ('k') | pylib/gyp/generator/eclipse.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698