fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
1.9 KiB
92 lines
1.9 KiB
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
|
|
#pragma once
|
|
|
|
#include <folly/CPortability.h>
|
|
|
|
#if defined(__arm__)
|
|
#define FOLLY_ARM 1
|
|
#else
|
|
#define FOLLY_ARM 0
|
|
#endif
|
|
|
|
#if defined(__x86_64__) || defined(_M_X64)
|
|
#define FOLLY_X64 1
|
|
#else
|
|
#define FOLLY_X64 0
|
|
#endif
|
|
|
|
#if defined(__aarch64__)
|
|
#define FOLLY_AARCH64 1
|
|
#else
|
|
#define FOLLY_AARCH64 0
|
|
#endif
|
|
|
|
#if defined(__powerpc64__)
|
|
#define FOLLY_PPC64 1
|
|
#else
|
|
#define FOLLY_PPC64 0
|
|
#endif
|
|
|
|
#if defined(__has_builtin)
|
|
#define FOLLY_HAS_BUILTIN(...) __has_builtin(__VA_ARGS__)
|
|
#else
|
|
#define FOLLY_HAS_BUILTIN(...) 0
|
|
#endif
|
|
|
|
#if defined(__has_cpp_attribute)
|
|
#if __has_cpp_attribute(nodiscard)
|
|
#define FOLLY_NODISCARD [[nodiscard]]
|
|
#endif
|
|
#endif
|
|
#if !defined FOLLY_NODISCARD
|
|
#if defined(_MSC_VER) && (_MSC_VER >= 1700)
|
|
#define FOLLY_NODISCARD _Check_return_
|
|
#elif defined(__GNUC__)
|
|
#define FOLLY_NODISCARD __attribute__((__warn_unused_result__))
|
|
#else
|
|
#define FOLLY_NODISCARD
|
|
#endif
|
|
#endif
|
|
|
|
namespace folly {
|
|
constexpr bool kIsArchArm = FOLLY_ARM == 1;
|
|
constexpr bool kIsArchAmd64 = FOLLY_X64 == 1;
|
|
constexpr bool kIsArchAArch64 = FOLLY_AARCH64 == 1;
|
|
constexpr bool kIsArchPPC64 = FOLLY_PPC64 == 1;
|
|
} // namespace folly
|
|
|
|
namespace folly {
|
|
#ifdef NDEBUG
|
|
constexpr auto kIsDebug = false;
|
|
#else
|
|
constexpr auto kIsDebug = true;
|
|
#endif
|
|
} // namespace folly
|
|
|
|
namespace folly {
|
|
#if defined(_MSC_VER)
|
|
constexpr bool kIsMsvc = true;
|
|
#else
|
|
constexpr bool kIsMsvc = false;
|
|
#endif
|
|
} // namespace folly
|
|
|
|
namespace folly {
|
|
#if FOLLY_SANITIZE_THREAD
|
|
constexpr bool kIsSanitizeThread = true;
|
|
#else
|
|
constexpr bool kIsSanitizeThread = false;
|
|
#endif
|
|
} // namespace folly
|
|
|
|
namespace folly {
|
|
#if defined(__linux__) && !FOLLY_MOBILE
|
|
constexpr auto kIsLinux = true;
|
|
#else
|
|
constexpr auto kIsLinux = false;
|
|
#endif
|
|
} // namespace folly
|
|
|