Switch GN defs on Mac and iOS to use frameworks, take 3
Change-Id: I5b06691d4f0383957b4031b3fd3e96bdfad94521
Cq-Include-Trybots: luci.skia.skia.primary:Canary-Flutter
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/309665
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 106a5be..fb4a1b5 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -271,6 +271,7 @@
"public_deps",
"deps",
"libs",
+ "frameworks",
"sources",
"sources_when_disabled",
"configs_to_remove",
@@ -454,7 +455,7 @@
]
if (is_mac) {
- libs = [
+ frameworks = [
# AppKit symbols NSFontWeightXXX may be dlsym'ed.
"AppKit.framework",
"ApplicationServices.framework",
@@ -462,7 +463,7 @@
}
if (is_ios) {
- libs = [
+ frameworks = [
"CoreFoundation.framework",
"CoreGraphics.framework",
"CoreText.framework",
@@ -687,6 +688,7 @@
}
libs = []
+ frameworks = []
if (skia_use_gl) {
public_defines += [ "SK_GL" ]
@@ -759,7 +761,7 @@
"d3dcompiler.lib",
]
} else if (dawn_enable_metal) {
- libs += [ "Metal.framework" ]
+ frameworks += [ "Metal.framework" ]
}
}
@@ -781,9 +783,9 @@
if (skia_use_metal) {
public_defines += [ "SK_METAL" ]
sources += skia_metal_sources
- libs += [ "Metal.framework" ]
- libs += [ "MetalKit.framework" ]
- libs += [ "Foundation.framework" ]
+ frameworks += [ "Metal.framework" ]
+ frameworks += [ "MetalKit.framework" ]
+ frameworks += [ "Foundation.framework" ]
cflags_objcc += [ "-fobjc-arc" ]
}
@@ -1194,7 +1196,7 @@
"src/ports/SkImageEncoder_CG.cpp",
"src/ports/SkImageGeneratorCG.cpp",
]
- libs += [
+ frameworks = [
"ApplicationServices.framework",
"OpenGL.framework",
]
@@ -1206,7 +1208,7 @@
"src/ports/SkImageEncoder_CG.cpp",
"src/ports/SkImageGeneratorCG.cpp",
]
- libs += [
+ frameworks = [
"CoreFoundation.framework",
"ImageIO.framework",
"MobileCoreServices.framework",
@@ -1537,13 +1539,14 @@
]
libs = []
+ frameworks = []
if (skia_use_gl) {
sources +=
[ "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp" ]
if (is_ios) {
sources += [ "tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm" ]
- libs += [ "OpenGLES.framework" ]
+ frameworks += [ "OpenGLES.framework" ]
} else if (is_mac) {
sources += [ "tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp" ]
}
@@ -1693,17 +1696,18 @@
sources += [ "tools/CrashHandler.cpp" ]
}
libs = []
+ frameworks = []
if (is_ios) {
sources += [ "tools/ios_utils.m" ]
sources += [ "tools/ios_utils.h" ]
if (skia_use_metal) {
sources += [ "tools/AutoreleasePool.mm" ]
}
- libs += [ "Foundation.framework" ]
+ frameworks += [ "Foundation.framework" ]
} else if (is_mac) {
if (skia_use_metal) {
sources += [ "tools/AutoreleasePool.mm" ]
- libs += [ "Foundation.framework" ]
+ frameworks += [ "Foundation.framework" ]
}
} else if (is_win) {
libs += [ "DbgHelp.lib" ]
@@ -2335,6 +2339,7 @@
"tools/sk_app/WindowContext.h",
]
libs = []
+ frameworks = []
if (is_android) {
sources += [
@@ -2377,7 +2382,7 @@
"tools/sk_app/mac/Window_mac.mm",
"tools/sk_app/mac/main_mac.mm",
]
- libs += [
+ frameworks += [
"QuartzCore.framework",
"Cocoa.framework",
"Foundation.framework",
@@ -2390,7 +2395,7 @@
"tools/sk_app/ios/Window_ios.mm",
"tools/sk_app/ios/main_ios.mm",
]
- libs += [ "QuartzCore.framework" ]
+ frameworks += [ "QuartzCore.framework" ]
}
if (skia_use_gl) {
diff --git a/gn/gn_to_cmake.py b/gn/gn_to_cmake.py
index 9375be7..20a333e 100755
--- a/gn/gn_to_cmake.py
+++ b/gn/gn_to_cmake.py
@@ -605,7 +605,8 @@
out.write(')\n')
# Non-OBJECT library dependencies.
- external_libraries = target.properties.get('libs', [])
+ combined_library_lists = [target.properties.get(key, []) for key in ['libs', 'frameworks']]
+ external_libraries = list(itertools.chain(*combined_library_lists))
if target.cmake_type.is_linkable and (external_libraries or libraries):
library_dirs = target.properties.get('lib_dirs', [])
if library_dirs: