Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions flow/layers/performance_overlay_layer_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ static void TestPerformanceOverlayLayerGold(int refresh_rate) {

// TODO(https://github.com/flutter/flutter/issues/53784): enable this on all
// platforms.
#if !defined(OS_LINUX)
#if !defined(FML_OS_LINUX)
GTEST_SKIP() << "Skipping golden tests on non-Linux OSes";
#endif // OS_LINUX
#endif // FML_OS_LINUX
const bool golden_data_matches = golden_data->equals(snapshot_data.get());
if (!golden_data_matches) {
SkFILEWStream wstream(new_golden_file_path.c_str());
Expand Down
84 changes: 37 additions & 47 deletions fml/build_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,33 @@

// This file adds defines about the platform we're currently building on.
// Operating System:
// OS_WIN / OS_MACOSX / OS_LINUX / OS_POSIX (MACOSX or LINUX) /
// OS_NACL (NACL_SFI or NACL_NONSFI) / OS_NACL_SFI / OS_NACL_NONSFI
// OS_WIN / FML_OS_MACOSX / FML_OS_LINUX / FML_OS_POSIX (MACOSX or LINUX) /
// FML_OS_NACL (NACL_SFI or NACL_NONSFI) / FML_OS_NACL_SFI /
// FML_OS_NACL_NONSFI
// Compiler:
// COMPILER_MSVC / COMPILER_GCC
// Processor:
// ARCH_CPU_X86 / ARCH_CPU_X86_64 / ARCH_CPU_X86_FAMILY (X86 or X86_64)
// ARCH_CPU_32_BITS / ARCH_CPU_64_BITS
// FML_ARCH_CPU_X86 / FML_ARCH_CPU_X86_64 / FML_ARCH_CPU_X86_FAMILY (X86 or
// X86_64) FML_ARCH_CPU_32_BITS / FML_ARCH_CPU_64_BITS

#ifndef FLUTTER_FML_BUILD_CONFIG_H_
#define FLUTTER_FML_BUILD_CONFIG_H_

#if defined(__Fuchsia__)
#define OS_FUCHSIA 1
#elif defined(ANDROID)
#define OS_ANDROID 1
#define FML_OS_ANDROID 1
#elif defined(__APPLE__)
// only include TargetConditions after testing ANDROID as some android builds
// on mac don't have this header available and it's not needed unless the target
// is really mac/ios.
#include <TargetConditionals.h>
#define OS_MACOSX 1
#define FML_OS_MACOSX 1
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
#define OS_IOS 1
#endif // defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
#elif defined(__linux__)
#define OS_LINUX 1
#define FML_OS_LINUX 1
// include a system header to pull in features.h for glibc/uclibc macros.
#include <unistd.h>
#if defined(__GLIBC__) && !defined(__UCLIBC__)
Expand All @@ -39,70 +40,59 @@
#elif defined(_WIN32)
#define OS_WIN 1
#elif defined(__FreeBSD__)
#define OS_FREEBSD 1
#define FML_OS_FREEBSD 1
#elif defined(__OpenBSD__)
#define OS_OPENBSD 1
#define FML_OS_OPENBSD 1
#elif defined(__sun)
#define OS_SOLARIS 1
#define FML_OS_SOLARIS 1
#elif defined(__QNXNTO__)
#define OS_QNX 1
#define FML_OS_QNX 1
#else
#error Please add support for your platform in flutter/fml/build_config.h
#endif

// For access to standard BSD features, use OS_BSD instead of a
// more specific macro.
#if defined(OS_FREEBSD) || defined(OS_OPENBSD)
#if defined(FML_OS_FREEBSD) || defined(FML_OS_OPENBSD)
#define OS_BSD 1
#endif

// For access to standard POSIXish features, use OS_POSIX instead of a
// For access to standard POSIXish features, use FML_OS_POSIX instead of a
// more specific macro.
#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) || \
defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) || \
defined(OS_NACL) || defined(OS_QNX)
#define OS_POSIX 1
#if defined(FML_OS_MACOSX) || defined(FML_OS_LINUX) || \
defined(FML_OS_FREEBSD) || defined(FML_OS_OPENBSD) || \
defined(FML_OS_SOLARIS) || defined(FML_OS_ANDROID) || \
defined(FML_OS_NACL) || defined(FML_OS_QNX)
#define FML_OS_POSIX 1
#endif

// Processor architecture detection. For more info on what's defined, see:
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx
// http://www.agner.org/optimize/calling_conventions.pdf
// or with gcc, run: "echo | gcc -E -dM -"
#if defined(_M_X64) || defined(__x86_64__)
#define ARCH_CPU_X86_FAMILY 1
#define ARCH_CPU_X86_64 1
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#define FML_ARCH_CPU_X86_FAMILY 1
#define FML_ARCH_CPU_X86_64 1
#define FML_ARCH_CPU_64_BITS 1
#define FML_ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(_M_IX86) || defined(__i386__)
#define ARCH_CPU_X86_FAMILY 1
#define ARCH_CPU_X86 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#define FML_ARCH_CPU_X86_FAMILY 1
#define FML_ARCH_CPU_X86 1
#define FML_ARCH_CPU_32_BITS 1
#define FML_ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__ARMEL__)
#define ARCH_CPU_ARM_FAMILY 1
#define ARCH_CPU_ARMEL 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#define FML_ARCH_CPU_ARM_FAMILY 1
#define FML_ARCH_CPU_ARMEL 1
#define FML_ARCH_CPU_32_BITS 1
#define FML_ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__aarch64__)
#define ARCH_CPU_ARM_FAMILY 1
#define ARCH_CPU_ARM64 1
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#define FML_ARCH_CPU_ARM_FAMILY 1
#define FML_ARCH_CPU_ARM64 1
#define FML_ARCH_CPU_64_BITS 1
#define FML_ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__pnacl__)
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#elif defined(__MIPSEL__)
#if defined(__LP64__)
#define ARCH_CPU_MIPS64_FAMILY 1
#define ARCH_CPU_MIPS64EL 1
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#else
#define ARCH_CPU_MIPS_FAMILY 1
#define ARCH_CPU_MIPSEL 1
#define ARCH_CPU_32_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
#endif
#define FML_ARCH_CPU_32_BITS 1
#define FML_ARCH_CPU_LITTLE_ENDIAN 1
#else
#error Please add support for your architecture in flutter/fml/build_config.h
#endif
Expand Down
4 changes: 2 additions & 2 deletions fml/endianness.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ constexpr T ByteSwap(T n) {
/// The given value must be an integral type of size 1, 2, 4, or 8.
template <typename T, class = std::enable_if_t<std::is_integral_v<T>>>
constexpr T BigEndianToArch(T n) {
#if ARCH_CPU_LITTLE_ENDIAN
#if FML_ARCH_CPU_LITTLE_ENDIAN
return ByteSwap<T>(n);
#else
return n;
Expand All @@ -61,7 +61,7 @@ constexpr T BigEndianToArch(T n) {
/// The given value must be an integral type of size 1, 2, 4, or 8.
template <typename T, class = std::enable_if_t<std::is_integral_v<T>>>
constexpr T LittleEndianToArch(T n) {
#if !ARCH_CPU_LITTLE_ENDIAN
#if !FML_ARCH_CPU_LITTLE_ENDIAN
return ByteSwap<T>(n);
#else
return n;
Expand Down
4 changes: 2 additions & 2 deletions fml/endianness_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ TEST(EndiannessTest, ByteSwap) {
}

TEST(EndiannessTest, BigEndianToArch) {
#if ARCH_CPU_LITTLE_ENDIAN
#if FML_ARCH_CPU_LITTLE_ENDIAN
uint32_t expected = 0x44332211;
#else
uint32_t expected = 0x11223344;
Expand All @@ -25,7 +25,7 @@ TEST(EndiannessTest, BigEndianToArch) {
}

TEST(EndiannessTest, LittleEndianToArch) {
#if ARCH_CPU_LITTLE_ENDIAN
#if FML_ARCH_CPU_LITTLE_ENDIAN
uint32_t expected = 0x11223344;
#else
uint32_t expected = 0x44332211;
Expand Down
4 changes: 2 additions & 2 deletions fml/logging.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include "flutter/fml/log_settings.h"
#include "flutter/fml/logging.h"

#if defined(OS_ANDROID)
#if defined(FML_OS_ANDROID)
#include <android/log.h>
#elif defined(OS_IOS)
#include <syslog.h>
Expand Down Expand Up @@ -76,7 +76,7 @@ LogMessage::~LogMessage() {
stream_ << std::endl;
#endif

#if defined(OS_ANDROID)
#if defined(FML_OS_ANDROID)
android_LogPriority priority =
(severity_ < 0) ? ANDROID_LOG_VERBOSE : ANDROID_LOG_UNKNOWN;
switch (severity_) {
Expand Down
12 changes: 6 additions & 6 deletions fml/message_loop_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
#include "flutter/fml/logging.h"
#include "flutter/fml/trace_event.h"

#if OS_MACOSX
#if FML_OS_MACOSX
#include "flutter/fml/platform/darwin/message_loop_darwin.h"
#elif OS_ANDROID
#elif FML_OS_ANDROID
#include "flutter/fml/platform/android/message_loop_android.h"
#elif OS_FUCHSIA
#include "flutter/fml/platform/fuchsia/message_loop_fuchsia.h"
#elif OS_LINUX
#elif FML_OS_LINUX
#include "flutter/fml/platform/linux/message_loop_linux.h"
#elif OS_WIN
#include "flutter/fml/platform/win/message_loop_win.h"
Expand All @@ -28,13 +28,13 @@
namespace fml {

fml::RefPtr<MessageLoopImpl> MessageLoopImpl::Create() {
#if OS_MACOSX
#if FML_OS_MACOSX
return fml::MakeRefCounted<MessageLoopDarwin>();
#elif OS_ANDROID
#elif FML_OS_ANDROID
return fml::MakeRefCounted<MessageLoopAndroid>();
#elif OS_FUCHSIA
return fml::MakeRefCounted<MessageLoopFuchsia>();
#elif OS_LINUX
#elif FML_OS_LINUX
return fml::MakeRefCounted<MessageLoopLinux>();
#elif OS_WIN
return fml::MakeRefCounted<MessageLoopWin>();
Expand Down
2 changes: 1 addition & 1 deletion fml/synchronization/semaphore.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include "flutter/fml/build_config.h"
#include "flutter/fml/logging.h"

#if OS_MACOSX
#if FML_OS_MACOSX
#include <dispatch/dispatch.h>

namespace fml {
Expand Down
4 changes: 2 additions & 2 deletions fml/thread.cc
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ void Thread::SetCurrentThreadName(const std::string& name) {
if (name == "") {
return;
}
#if defined(OS_MACOSX)
#if defined(FML_OS_MACOSX)
pthread_setname_np(name.c_str());
#elif defined(OS_LINUX) || defined(OS_ANDROID)
#elif defined(FML_OS_LINUX) || defined(FML_OS_ANDROID)
pthread_setname_np(pthread_self(), name.c_str());
#elif defined(OS_WIN)
THREADNAME_INFO info;
Expand Down
3 changes: 2 additions & 1 deletion fml/thread_local.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
#include "flutter/fml/build_config.h"
#include "flutter/fml/macros.h"

#define FML_THREAD_LOCAL_PTHREADS OS_MACOSX || OS_LINUX || OS_ANDROID
#define FML_THREAD_LOCAL_PTHREADS \
FML_OS_MACOSX || FML_OS_LINUX || FML_OS_ANDROID

#if FML_THREAD_LOCAL_PTHREADS
#include <pthread.h>
Expand Down
2 changes: 1 addition & 1 deletion fml/trace_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
#include "flutter/fml/time/time_point.h"
#include "third_party/dart/runtime/include/dart_tools_api.h"

#if (FLUTTER_RELEASE && !defined(OS_FUCHSIA) && !defined(OS_ANDROID))
#if (FLUTTER_RELEASE && !defined(OS_FUCHSIA) && !defined(FML_OS_ANDROID))
#define FLUTTER_TIMELINE_ENABLED 0
#else
#define FLUTTER_TIMELINE_ENABLED 1
Expand Down
4 changes: 2 additions & 2 deletions lib/ui/painting/image_generator_registry.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include "third_party/skia/include/codec/SkCodec.h"
#include "third_party/skia/include/core/SkImageGenerator.h"
#include "third_party/skia/src/codec/SkCodecImageGenerator.h"
#ifdef OS_MACOSX
#ifdef FML_OS_MACOSX
#include "third_party/skia/include/ports/SkImageGeneratorCG.h"
#elif OS_WIN
#include "third_party/skia/include/ports/SkImageGeneratorWIC.h"
Expand All @@ -24,7 +24,7 @@ ImageGeneratorRegistry::ImageGeneratorRegistry() : weak_factory_(this) {
0);

// todo(bdero): https://github.com/flutter/flutter/issues/82603
#ifdef OS_MACOSX
#ifdef FML_OS_MACOSX
AddFactory(
[](sk_sp<SkData> buffer) {
auto generator = SkImageGeneratorCG::MakeFromEncodedCG(buffer);
Expand Down
6 changes: 3 additions & 3 deletions lib/ui/painting/immutable_buffer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "third_party/tonic/dart_args.h"
#include "third_party/tonic/dart_binding_macros.h"

#if OS_ANDROID
#if FML_OS_ANDROID
#include <sys/mman.h>
#endif

Expand Down Expand Up @@ -53,7 +53,7 @@ size_t ImmutableBuffer::GetAllocationSize() const {
return sizeof(ImmutableBuffer) + data_->size();
}

#if OS_ANDROID
#if FML_OS_ANDROID

// Compressed image buffers are allocated on the UI thread but are deleted on a
// decoder worker thread. Android's implementation of malloc appears to
Expand Down Expand Up @@ -96,6 +96,6 @@ sk_sp<SkData> ImmutableBuffer::MakeSkDataWithCopy(const void* data,
return SkData::MakeWithCopy(data, length);
}

#endif // OS_ANDROID
#endif // FML_OS_ANDROID

} // namespace flutter
4 changes: 2 additions & 2 deletions lib/ui/ui_dart_state.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "third_party/tonic/converter/dart_converter.h"
#include "third_party/tonic/dart_message_handler.h"

#if defined(OS_ANDROID)
#if defined(FML_OS_ANDROID)
#include <android/log.h>
#elif defined(OS_IOS)
extern "C" {
Expand Down Expand Up @@ -216,7 +216,7 @@ void UIDartState::LogMessage(const std::string& tag,
log_message_callback_(tag, message);
} else {
// Fall back to previous behavior if unspecified.
#if defined(OS_ANDROID)
#if defined(FML_OS_ANDROID)
__android_log_print(ANDROID_LOG_INFO, tag.c_str(), "%.*s",
(int)message.size(), message.c_str());
#elif defined(OS_IOS)
Expand Down
2 changes: 1 addition & 1 deletion runtime/dart_snapshot.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const char* DartSnapshot::kIsolateInstructionsSymbol =
// data through symbols that are statically linked into the executable.
// On other platforms this data is obtained by a dynamic symbol lookup.
#define DART_SNAPSHOT_STATIC_LINK \
((OS_WIN || OS_ANDROID) && FLUTTER_JIT_RUNTIME)
((OS_WIN || FML_OS_ANDROID) && FLUTTER_JIT_RUNTIME)

#if !DART_SNAPSHOT_STATIC_LINK

Expand Down
8 changes: 4 additions & 4 deletions runtime/dart_vm.cc
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ static std::vector<const char*> ProfilingFlags(bool enable_profiling) {
// This instructs the profiler to walk C++ frames, and to include
// them in the profile.
"--profile-vm",
#if OS_IOS && ARCH_CPU_ARM_FAMILY && ARCH_CPU_ARMEL
#if OS_IOS && FML_ARCH_CPU_ARM_FAMILY && FML_ARCH_CPU_ARMEL
// Set the profiler interrupt period to 500Hz instead of the
// default 1000Hz on 32-bit iOS devices to reduce average and worst
// case frame build times.
Expand All @@ -232,7 +232,7 @@ static std::vector<const char*> ProfilingFlags(bool enable_profiling) {
"--profile_period=2000",
#else
"--profile_period=1000",
#endif // OS_IOS && ARCH_CPU_ARM_FAMILY && ARCH_CPU_ARMEL
#endif // OS_IOS && FML_ARCH_CPU_ARM_FAMILY && FML_ARCH_CPU_ARMEL
};
} else {
return {"--no-profiler"};
Expand Down Expand Up @@ -341,7 +341,7 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
#endif // !OS_FUCHSIA

#if (FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG)
#if !OS_IOS && !OS_MACOSX
#if !OS_IOS && !FML_OS_MACOSX
// Debug mode uses the JIT, disable code page write protection to avoid
// memory page protection changes before and after every compilation.
PushBackAll(&args, kDartWriteProtectCodeArgs,
Expand All @@ -361,7 +361,7 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
PushBackAll(&args, kDartDisableIntegerDivisionArgs,
fml::size(kDartDisableIntegerDivisionArgs));
#endif // TARGET_CPU_ARM
#endif // !OS_IOS && !OS_MACOSX
#endif // !OS_IOS && !FML_OS_MACOSX
#endif // (FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG)

if (enable_asserts) {
Expand Down
Loading