Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef BASE_BASE_PATHS_H_
      6 #define BASE_BASE_PATHS_H_
      7 
      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.
     10 
     11 #include "build/build_config.h"
     12 
     13 #if defined(OS_WIN)
     14 #include "base/base_paths_win.h"
     15 #elif defined(OS_MACOSX)
     16 #include "base/base_paths_mac.h"
     17 #elif defined(OS_ANDROID)
     18 #include "base/base_paths_android.h"
     19 #endif
     20 
     21 #if defined(OS_POSIX)
     22 #include "base/base_paths_posix.h"
     23 #endif
     24 
     25 namespace base {
     26 
     27 enum BasePathKey {
     28   PATH_START = 0,
     29 
     30   DIR_CURRENT,       // Current directory.
     31   DIR_EXE,           // Directory containing FILE_EXE.
     32   DIR_MODULE,        // Directory containing FILE_MODULE.
     33   DIR_TEMP,          // Temporary directory.
     34   DIR_HOME,          // User's root home directory. On Windows this will look
     35                      // like "C:\Users\<user>"  which isn't necessarily a great
     36                      // place to put files.
     37   FILE_EXE,          // Path and filename of the current executable.
     38   FILE_MODULE,       // Path and filename of the module containing the code for
     39                      // the PathService (which could differ from FILE_EXE if the
     40                      // PathService were compiled into a shared object, for
     41                      // example).
     42   DIR_SOURCE_ROOT,   // Returns the root of the source tree. This key is useful
     43                      // for tests that need to locate various resources. It
     44                      // should not be used outside of test code.
     45   DIR_USER_DESKTOP,  // The current user's Desktop.
     46 
     47   DIR_TEST_DATA,     // Used only for testing.
     48 
     49   PATH_END
     50 };
     51 
     52 }  // namespace base
     53 
     54 #endif  // BASE_BASE_PATHS_H_
     55