Chromium Code Reviews| Index: build/build_config_functions.h |
| diff --git a/build/build_config_functions.h b/build/build_config_functions.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4497d8abf673558ba15d1b9deb01c37dadcbb2d4 |
| --- /dev/null |
| +++ b/build/build_config_functions.h |
| @@ -0,0 +1,110 @@ |
| +// Copyright (c) 2013 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. |
| + |
| +// These helpers allow to avoid the use of an #ifdef when the code can |
| +// compile without them. Thanks to compiler optimizations, the final generated |
| +// binary should look the same when using these. |
| + |
| +#ifndef BUILD_BUILD_CONFIG_FUNCTIONS_H_ |
| +#define BUILD_BUILD_CONFIG_FUNCTIONS_H_ |
| + |
| +#include "build/build_config.h" |
| + |
| +namespace build { |
| + |
| +namespace { |
| + |
| +inline bool IsASANBuild() { |
| +#if defined(ADDRESS_SANITIZER) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsLinux() { |
| +#if defined(OS_LINUX) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsChromeOS() { |
| +#if defined(OS_CHROMEOS) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsAndroid() { |
| +#if defined(OS_ANDROID) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsPOSIX() { |
| +#if defined(OS_POSIX) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsWindows() { |
| +#if defined(OS_WIN) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsMac() { |
| +#if defined(OS_MACOSX) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsArchitectureX86_64() { |
| +#if defined(__x86_64__) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsArchitectureI386() { |
| +#if defined(__i386__) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsArchitectureArm() { |
|
Robert Sesek
2013/12/05 14:51:46
Arm -> ARM
jln (very slow on Chromium)
2013/12/05 23:37:25
Done.
|
| +#if defined(__arm__) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsUsingToolKitGtk() { |
| +#if defined(TOOLKIT_GTK) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +} // namespace. |
| + |
| +} // namespace build. |
| + |
| +#endif // BUILD_BUILD_CONFIG_FUNCTIONS_H_ |