| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "chrome/common/chrome_paths.h" | 5 #include "chrome/common/chrome_paths.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 return false; | 30 return false; |
| 31 #endif | 31 #endif |
| 32 } | 32 } |
| 33 | 33 |
| 34 bool PathProvider(int key, FilePath* result) { | 34 bool PathProvider(int key, FilePath* result) { |
| 35 // Some keys are just aliases... | 35 // Some keys are just aliases... |
| 36 switch (key) { | 36 switch (key) { |
| 37 case chrome::DIR_APP: | 37 case chrome::DIR_APP: |
| 38 return PathService::Get(base::DIR_MODULE, result); | 38 return PathService::Get(base::DIR_MODULE, result); |
| 39 case chrome::DIR_LOGS: | 39 case chrome::DIR_LOGS: |
| 40 #ifndef NDEBUG | 40 #ifdef NDEBUG |
| 41 // Release builds write to the data dir |
| 41 return PathService::Get(chrome::DIR_USER_DATA, result); | 42 return PathService::Get(chrome::DIR_USER_DATA, result); |
| 42 #else | 43 #else |
| 44 // Debug builds write next to the binary (in the build tree) |
| 43 return PathService::Get(base::DIR_EXE, result); | 45 return PathService::Get(base::DIR_EXE, result); |
| 44 #endif | 46 #endif |
| 45 case chrome::FILE_RESOURCE_MODULE: | 47 case chrome::FILE_RESOURCE_MODULE: |
| 46 return PathService::Get(base::FILE_MODULE, result); | 48 return PathService::Get(base::FILE_MODULE, result); |
| 47 } | 49 } |
| 48 | 50 |
| 49 // Assume that we will not need to create the directory if it does not exist. | 51 // Assume that we will not need to create the directory if it does not exist. |
| 50 // This flag can be set to true for the cases where we want to create it. | 52 // This flag can be set to true for the cases where we want to create it. |
| 51 bool create_dir = false; | 53 bool create_dir = false; |
| 52 | 54 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 break; | 156 break; |
| 155 case chrome::DIR_TEST_TOOLS: | 157 case chrome::DIR_TEST_TOOLS: |
| 156 if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) | 158 if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) |
| 157 return false; | 159 return false; |
| 158 cur = cur.Append(FILE_PATH_LITERAL("chrome")); | 160 cur = cur.Append(FILE_PATH_LITERAL("chrome")); |
| 159 cur = cur.Append(FILE_PATH_LITERAL("tools")); | 161 cur = cur.Append(FILE_PATH_LITERAL("tools")); |
| 160 cur = cur.Append(FILE_PATH_LITERAL("test")); | 162 cur = cur.Append(FILE_PATH_LITERAL("test")); |
| 161 if (!file_util::PathExists(cur)) // we don't want to create this | 163 if (!file_util::PathExists(cur)) // we don't want to create this |
| 162 return false; | 164 return false; |
| 163 break; | 165 break; |
| 164 case chrome::FILE_PYTHON_RUNTIME: | |
| 165 if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) | |
| 166 return false; | |
| 167 cur = cur.Append(FILE_PATH_LITERAL("third_party")); | |
| 168 cur = cur.Append(FILE_PATH_LITERAL("python_24")); | |
| 169 cur = cur.Append(FILE_PATH_LITERAL("python.exe")); | |
| 170 if (!file_util::PathExists(cur)) // we don't want to create this | |
| 171 return false; | |
| 172 break; | |
| 173 case chrome::FILE_TEST_SERVER: | |
| 174 if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) | |
| 175 return false; | |
| 176 cur = cur.Append(FILE_PATH_LITERAL("net")); | |
| 177 cur = cur.Append(FILE_PATH_LITERAL("tools")); | |
| 178 cur = cur.Append(FILE_PATH_LITERAL("test")); | |
| 179 cur = cur.Append(FILE_PATH_LITERAL("testserver")); | |
| 180 cur = cur.Append(FILE_PATH_LITERAL("testserver.py")); | |
| 181 if (!file_util::PathExists(cur)) // we don't want to create this | |
| 182 return false; | |
| 183 break; | |
| 184 default: | 166 default: |
| 185 return false; | 167 return false; |
| 186 } | 168 } |
| 187 | 169 |
| 188 if (create_dir && !file_util::PathExists(cur) && | 170 if (create_dir && !file_util::PathExists(cur) && |
| 189 !file_util::CreateDirectory(cur)) | 171 !file_util::CreateDirectory(cur)) |
| 190 return false; | 172 return false; |
| 191 | 173 |
| 192 *result = cur; | 174 *result = cur; |
| 193 return true; | 175 return true; |
| 194 } | 176 } |
| 195 | 177 |
| 196 // This cannot be done as a static initializer sadly since Visual Studio will | 178 // This cannot be done as a static initializer sadly since Visual Studio will |
| 197 // eliminate this object file if there is no direct entry point into it. | 179 // eliminate this object file if there is no direct entry point into it. |
| 198 void RegisterPathProvider() { | 180 void RegisterPathProvider() { |
| 199 PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); | 181 PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); |
| 200 } | 182 } |
| 201 | 183 |
| 202 } // namespace chrome | 184 } // namespace chrome |
| OLD | NEW |