base_paths.h 1.86 KB
Newer Older
gejun's avatar
gejun committed
1 2 3 4 5 6 7 8 9 10
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_BASE_PATHS_H_
#define BASE_BASE_PATHS_H_

// This file declares path keys for the base module.  These can be used with
// the PathService to access various special directories and files.

11
#include "butil/build_config.h"
gejun's avatar
gejun committed
12 13

#if defined(OS_WIN)
14
#include "butil/base_paths_win.h"
gejun's avatar
gejun committed
15
#elif defined(OS_MACOSX)
16
#include "butil/base_paths_mac.h"
gejun's avatar
gejun committed
17
#elif defined(OS_ANDROID)
18
#include "butil/base_paths_android.h"
gejun's avatar
gejun committed
19 20 21
#endif

#if defined(OS_POSIX)
22
#include "butil/base_paths_posix.h"
gejun's avatar
gejun committed
23 24
#endif

25
namespace butil {
gejun's avatar
gejun committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

enum BasePathKey {
  PATH_START = 0,

  DIR_CURRENT,       // Current directory.
  DIR_EXE,           // Directory containing FILE_EXE.
  DIR_MODULE,        // Directory containing FILE_MODULE.
  DIR_TEMP,          // Temporary directory.
  DIR_HOME,          // User's root home directory. On Windows this will look
                     // like "C:\Users\you" (or on XP
                     // "C:\Document and Settings\you") which isn't necessarily
                     // a great place to put files.
  FILE_EXE,          // Path and filename of the current executable.
  FILE_MODULE,       // Path and filename of the module containing the code for
                     // the PathService (which could differ from FILE_EXE if the
                     // PathService were compiled into a shared object, for
                     // example).
  DIR_SOURCE_ROOT,   // Returns the root of the source tree. This key is useful
                     // for tests that need to locate various resources. It
                     // should not be used outside of test code.
  DIR_USER_DESKTOP,  // The current user's Desktop.

  DIR_TEST_DATA,     // Used only for testing.

  PATH_END
};

53
}  // namespace butil
gejun's avatar
gejun committed
54 55

#endif  // BASE_BASE_PATHS_H_