1 // Copyright 2012 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_BASE_PATHS_H_
6 #define BASE_BASE_PATHS_H_
8 // This file declares path keys for the base module. These can be used with
9 // the PathService to access various special directories and files.
11 #include "build/build_config.h"
14 #include "base/base_paths_win.h"
15 #elif BUILDFLAG(IS_MAC)
16 #include "base/base_paths_mac.h"
17 #elif BUILDFLAG(IS_IOS)
18 #include "base/base_paths_ios.h"
19 #elif BUILDFLAG(IS_ANDROID)
20 #include "base/base_paths_android.h"
23 #if BUILDFLAG(IS_POSIX)
24 #include "base/base_paths_posix.h"
32 // The following refer to the current application.
33 FILE_EXE, // Path and filename of the current executable.
34 #if !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_IOS)
35 // Prefer keys (e.g., DIR_ASSETS) that are specific to the use case as the
36 // module location may not work as expected on some platforms. For this
37 // reason, this key is not defined on Fuchsia. See crbug.com/1263691 for
39 FILE_MODULE, // Path and filename of the module containing the code for
40 // the PathService (which could differ from FILE_EXE if the
41 // PathService were compiled into a shared object, for
44 DIR_EXE, // Directory containing FILE_EXE.
45 #if !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_IOS)
46 // Prefer keys (e.g., DIR_ASSETS) that are specific to the use case as the
47 // module location may not work as expected on some platforms. For this
48 // reason, this key is not defined on Fuchsia. See crbug.com/1263691 for
50 DIR_MODULE, // Directory containing FILE_MODULE.
52 DIR_ASSETS, // Directory that contains application assets.
54 // The following refer to system and system user directories.
55 DIR_TEMP, // Temporary directory for the system and/or user.
56 DIR_HOME, // User's root home directory. On Windows this will look
57 // like "C:\Users\<user>" which isn't necessarily a great
58 // place to put files.
59 #if !BUILDFLAG(IS_IOS)
60 DIR_USER_DESKTOP, // The current user's Desktop.
63 // The following refer to the applications current environment.
64 DIR_CURRENT, // Current directory.
66 // The following are only for use in tests.
67 // On some platforms, such as Android and Fuchsia, tests do not have access to
68 // the build file system so the necessary files are bundled with the test
69 // binary. On such platforms, these will return an appropriate path inside the
71 DIR_SRC_TEST_DATA_ROOT, // The root of files in the source tree that are
72 // made available to tests. Useful for tests that use
73 // resources that exist in the source tree.
74 DIR_OUT_TEST_DATA_ROOT, // Path of build outputs available to tests. Build
75 // output files are normally placed directly in the
76 // build output directory on platforms that do not
77 // "package" tests. On platforms that "package"
78 // tests this will instead return a package-local
79 // path to copies of the relevant files.
80 DIR_GEN_TEST_DATA_ROOT, // Path of generated intermediate files available to
81 // tests. Build-intermediate files are normally
82 // placed in the "gen" sub-directory of the build
83 // output directory. On platforms that "package"
84 // tests this will instead return a package-local
85 // path to copies of the relevant files.
86 DIR_TEST_DATA, // Directory containing test data for //base tests.
87 // Only for use in base_unittests. Equivalent to
88 // DIR_SRC_TEST_DATA_ROOT + "/base/test/data".
95 #endif // BASE_BASE_PATHS_H_