iOS,macOS: Enable ARC in flutter_cflags_objc[c] (flutter/engine#56685)

Enables the `-fobjc-arc` compiler flag for Objective-C and Objective-C++
translation units.

Eliminates the flutter_cflags_objc[c]_arc settings, since they're now
redundant.

All Obj-C/Obj-C++ code in our codebase has now been migrated to ARC.

Issue: https://github.com/flutter/flutter/issues/137801
This commit is contained in:
Chris Bracken 2024-11-18 13:37:40 -08:00 committed by GitHub
parent d2d49cabe7
commit bcbcb6631e
14 changed files with 43 additions and 45 deletions

View File

@ -77,14 +77,13 @@ if (is_ios || is_mac) {
flutter_cflags_objc = [ flutter_cflags_objc = [
"-Werror=overriding-method-mismatch", "-Werror=overriding-method-mismatch",
"-Werror=undeclared-selector", "-Werror=undeclared-selector",
"-fobjc-arc",
] ]
if (is_mac) { if (is_mac) {
flutter_cflags_objc += [ "-fapplication-extension" ] flutter_cflags_objc += [ "-fapplication-extension" ]
} }
flutter_cflags_objcc = flutter_cflags_objc flutter_cflags_objcc = flutter_cflags_objc
flutter_cflags_objc_arc = flutter_cflags_objc + [ "-fobjc-arc" ]
flutter_cflags_objcc_arc = flutter_cflags_objc_arc
} }
# A combo of host os name and cpu is used in several locations to # A combo of host os name and cpu is used in several locations to

View File

@ -135,8 +135,8 @@ source_set("fml") {
libs = [] libs = []
if (is_ios || is_mac) { if (is_ios || is_mac) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ sources += [
"platform/darwin/cf_utils.cc", "platform/darwin/cf_utils.cc",
@ -359,8 +359,8 @@ if (enable_unittests) {
] ]
if (is_mac || is_ios) { if (is_mac || is_ios) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ sources += [
"platform/darwin/cf_utils_unittests.mm", "platform/darwin/cf_utils_unittests.mm",

View File

@ -43,7 +43,7 @@ template("impeller_component") {
} }
if (is_ios || is_mac) { if (is_ios || is_mac) {
cflags_objc += flutter_cflags_objc_arc cflags_objc += flutter_cflags_objc
} }
if (!defined(invoker.cflags_objcc)) { if (!defined(invoker.cflags_objcc)) {
@ -51,7 +51,7 @@ template("impeller_component") {
} }
if (is_ios || is_mac) { if (is_ios || is_mac) {
cflags_objcc += flutter_cflags_objcc_arc cflags_objcc += flutter_cflags_objcc
} }
} }
} }

View File

@ -296,8 +296,8 @@ if (enable_unittests) {
} }
if (test_enable_metal) { if (test_enable_metal) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ sources += [
"shell_test_platform_view_metal.h", "shell_test_platform_view_metal.h",

View File

@ -71,8 +71,8 @@ source_set("gpu_surface_vulkan") {
if (shell_enable_metal) { if (shell_enable_metal) {
source_set("gpu_surface_metal") { source_set("gpu_surface_metal") {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"gpu_surface_metal_delegate.cc", "gpu_surface_metal_delegate.cc",
@ -99,8 +99,8 @@ if (shell_enable_metal) {
if (is_mac) { if (is_mac) {
impeller_component("gpu_surface_metal_unittests") { impeller_component("gpu_surface_metal_unittests") {
testonly = true testonly = true
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
target_type = "executable" target_type = "executable"
sources = [ sources = [

View File

@ -9,8 +9,8 @@ import("//flutter/testing/testing.gni")
import("framework_common.gni") import("framework_common.gni")
source_set("common") { source_set("common") {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"buffer_conversions.h", "buffer_conversions.h",
@ -75,8 +75,8 @@ config("framework_relative_headers") {
# Framework code shared between iOS and macOS. # Framework code shared between iOS and macOS.
source_set("framework_common") { source_set("framework_common") {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"framework/Source/FlutterBinaryMessengerRelay.mm", "framework/Source/FlutterBinaryMessengerRelay.mm",
@ -111,8 +111,8 @@ test_fixtures("framework_common_fixtures") {
# Unit tests for channels. # Unit tests for channels.
executable("framework_common_unittests") { executable("framework_common_unittests") {
testonly = true testonly = true
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
ldflags = [ "-ObjC" ] ldflags = [ "-ObjC" ]
sources = [ sources = [

View File

@ -8,8 +8,8 @@ import("//flutter/common/config.gni")
import("//flutter/impeller/tools/impeller.gni") import("//flutter/impeller/tools/impeller.gni")
source_set("graphics") { source_set("graphics") {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"FlutterDarwinContextMetalSkia.h", "FlutterDarwinContextMetalSkia.h",

View File

@ -41,8 +41,8 @@ _flutter_framework_headers_copy_dir = "$_flutter_framework_dir/Headers"
source_set("flutter_framework_source") { source_set("flutter_framework_source") {
visibility = [ ":*" ] visibility = [ ":*" ]
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
defines = [ "FLUTTER_FRAMEWORK=1" ] defines = [ "FLUTTER_FRAMEWORK=1" ]
if (darwin_extension_safe) { if (darwin_extension_safe) {
@ -203,9 +203,8 @@ shared_library("ios_test_flutter") {
# This bug results engine build failure since the engine treats warnings as errors. # This bug results engine build failure since the engine treats warnings as errors.
# The `-Wno-unguarded-availability-new` can be removed when the Xcode bug is fixed. # The `-Wno-unguarded-availability-new` can be removed when the Xcode bug is fixed.
# See details in https://github.com/flutter/flutter/issues/128958. # See details in https://github.com/flutter/flutter/issues/128958.
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = cflags_objcc = flutter_cflags_objcc + [ "-Wno-unguarded-availability-new" ]
flutter_cflags_objcc_arc + [ "-Wno-unguarded-availability-new" ]
cflags = [ cflags = [
"-fvisibility=default", "-fvisibility=default",
"-F$platform_frameworks_path", "-F$platform_frameworks_path",

View File

@ -52,8 +52,8 @@ _flutter_framework_headers_copy_dir =
source_set("flutter_framework_source") { source_set("flutter_framework_source") {
visibility = [ ":*" ] visibility = [ ":*" ]
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"framework/Source/AccessibilityBridgeMac.h", "framework/Source/AccessibilityBridgeMac.h",
@ -173,8 +173,8 @@ test_fixtures("flutter_desktop_darwin_fixtures") {
executable("flutter_desktop_darwin_unittests") { executable("flutter_desktop_darwin_unittests") {
testonly = true testonly = true
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
ldflags = [ "-ObjC" ] ldflags = [ "-ObjC" ]
sources = [ sources = [

View File

@ -144,8 +144,8 @@ template("embedder_source_set") {
} }
if (embedder_enable_metal) { if (embedder_enable_metal) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ sources += [
"embedder_external_texture_metal.h", "embedder_external_texture_metal.h",
@ -389,8 +389,8 @@ if (enable_unittests) {
} }
if (test_enable_metal) { if (test_enable_metal) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ "tests/embedder_metal_unittests.mm" ] sources += [ "tests/embedder_metal_unittests.mm" ]
} }

View File

@ -193,8 +193,8 @@ if (is_mac || is_ios) {
testonly = true testonly = true
if (shell_enable_metal) { if (shell_enable_metal) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources = [ sources = [
"test_metal_context.h", "test_metal_context.h",
@ -257,8 +257,8 @@ if (enable_unittests) {
] ]
if (test_enable_metal) { if (test_enable_metal) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ "test_metal_surface_unittests.mm" ] sources += [ "test_metal_surface_unittests.mm" ]
deps += [ ":metal" ] deps += [ ":metal" ]

View File

@ -76,8 +76,8 @@ if (enable_unittests) {
] ]
if (is_mac) { if (is_mac) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
ldflags = [ "-ObjC" ] ldflags = [ "-ObjC" ]
sources += [ "ax/platform/ax_platform_node_mac_unittest.mm" ] sources += [ "ax/platform/ax_platform_node_mac_unittest.mm" ]

View File

@ -82,8 +82,8 @@ source_set("ax") {
] ]
if (is_mac) { if (is_mac) {
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
sources += [ sources += [
"platform/ax_platform_node_mac.h", "platform/ax_platform_node_mac.h",

View File

@ -51,8 +51,8 @@ source_set("gfx") {
"mac/coordinate_conversion.h", "mac/coordinate_conversion.h",
"mac/coordinate_conversion.mm", "mac/coordinate_conversion.mm",
] ]
cflags_objc = flutter_cflags_objc_arc cflags_objc = flutter_cflags_objc
cflags_objcc = flutter_cflags_objcc_arc cflags_objcc = flutter_cflags_objcc
} }
deps = [ deps = [