Skip to content

Commit 88508ac

Browse files
committed
Set -framework and -weak_framework for SDKs
This adds support for `apple_static_framework_import`'s `sdk_frameworks` and `weak_sdk_frameworks` attributes.
1 parent da5b642 commit 88508ac

File tree

11 files changed

+172
-14
lines changed

11 files changed

+172
-14
lines changed

examples/ios_app/test/fixtures/project.xcodeproj/project.pbxproj

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,13 @@
12161216
"-no-canonical-prefixes",
12171217
"-Wno-builtin-macro-redefined",
12181218
);
1219+
OTHER_LDFLAGS = (
1220+
"-framework",
1221+
Foundation,
1222+
"-weak_framework",
1223+
SwiftUI,
1224+
"-ObjC",
1225+
);
12191226
PRODUCT_MODULE_NAME = Utils;
12201227
PRODUCT_NAME = Utils;
12211228
SDKROOT = iphoneos;
@@ -1355,6 +1362,10 @@
13551362
OTHER_LDFLAGS = (
13561363
"-filelist",
13571364
"$(PROJECT_DIR)/test/fixtures/project.xcodeproj/rules_xcodeproj/targets/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/ExampleTests/ExampleTests.__internal__.__test_bundle.LinkFileList,$(BUILD_DIR)",
1365+
"-framework",
1366+
Foundation,
1367+
"-weak_framework",
1368+
SwiftUI,
13581369
"-ObjC",
13591370
);
13601371
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined -Xcc -fmodule-map-file=$(PROJECT_DIR)/third_party/ExampleFramework.framework/Modules/module.modulemap -Xcc -fmodule-map-file=$(PROJECT_DIR)/bazel-ios_app/external/examples_ios_app_external/ExternalFramework.framework/Modules/module.modulemap -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/bin/CoreUtilsObjC/CoreUtilsObjC.swift.xcode.modulemap -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/bin/Utils/Utils.swift.xcode.modulemap -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/bin/TestingUtils/TestingUtils.swift.xcode.modulemap -Fthird_party -Fexternal/examples_ios_app_external";
@@ -1434,6 +1445,7 @@
14341445
"-no-canonical-prefixes",
14351446
"-Wno-builtin-macro-redefined",
14361447
);
1448+
OTHER_LDFLAGS = "-ObjC";
14371449
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
14381450
PRODUCT_MODULE_NAME = TestingUtils;
14391451
PRODUCT_NAME = TestingUtils;
@@ -1515,6 +1527,13 @@
15151527
"-no-canonical-prefixes",
15161528
"-Wno-builtin-macro-redefined",
15171529
);
1530+
OTHER_LDFLAGS = (
1531+
"-framework",
1532+
Foundation,
1533+
"-weak_framework",
1534+
SwiftUI,
1535+
"-ObjC",
1536+
);
15181537
PRODUCT_MODULE_NAME = CoreUtils;
15191538
PRODUCT_NAME = CoreUtilsObjC;
15201539
SDKROOT = iphoneos;
@@ -1591,6 +1610,10 @@
15911610
OTHER_LDFLAGS = (
15921611
"-filelist",
15931612
"$(PROJECT_DIR)/test/fixtures/project.xcodeproj/rules_xcodeproj/targets/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/Example/Example.LinkFileList,$(BUILD_DIR)",
1613+
"-framework",
1614+
Foundation,
1615+
"-weak_framework",
1616+
SwiftUI,
15941617
"-ObjC",
15951618
);
15961619
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined -Xcc -fmodule-map-file=$(PROJECT_DIR)/third_party/ExampleFramework.framework/Modules/module.modulemap -Xcc -fmodule-map-file=$(PROJECT_DIR)/bazel-ios_app/external/examples_ios_app_external/ExternalFramework.framework/Modules/module.modulemap -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/bin/CoreUtilsObjC/CoreUtilsObjC.swift.xcode.modulemap -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/bin/Utils/Utils.swift.xcode.modulemap -Fthird_party -Fexternal/examples_ios_app_external";
@@ -1667,6 +1690,10 @@
16671690
"-L/usr/lib/swift",
16681691
"-filelist",
16691692
"$(PROJECT_DIR)/test/fixtures/project.xcodeproj/rules_xcodeproj/targets/ios-x86_64-min15.0-applebin_ios-ios_x86_64-fastbuild-ST-d3e756bfe7fd/ExampleObjcTests/ExampleObjcTests.__internal__.__test_bundle.LinkFileList,$(BUILD_DIR)",
1693+
"-framework",
1694+
Foundation,
1695+
"-weak_framework",
1696+
SwiftUI,
16701697
"-ObjC",
16711698
);
16721699
PRODUCT_BUNDLE_IDENTIFIER = io.buildbuddy.example.objctests;

examples/ios_app/test/fixtures/spec.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,13 @@
221221
"-no-canonical-prefixes",
222222
"-Wno-builtin-macro-redefined"
223223
],
224+
"OTHER_LDFLAGS": [
225+
"-framework",
226+
"Foundation",
227+
"-weak_framework",
228+
"SwiftUI",
229+
"-ObjC"
230+
],
224231
"PRODUCT_MODULE_NAME": "CoreUtils",
225232
"PRODUCT_NAME": "CoreUtilsObjC",
226233
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
@@ -450,6 +457,13 @@
450457
"-no-canonical-prefixes",
451458
"-Wno-builtin-macro-redefined"
452459
],
460+
"OTHER_LDFLAGS": [
461+
"-framework",
462+
"Foundation",
463+
"-weak_framework",
464+
"SwiftUI",
465+
"-ObjC"
466+
],
453467
"OTHER_SWIFT_FLAGS": "-Fthird_party -Fexternal/examples_ios_app_external",
454468
"PRODUCT_MODULE_NAME": "Example",
455469
"PRODUCT_NAME": "Example.library",
@@ -682,6 +696,13 @@
682696
"-no-canonical-prefixes",
683697
"-Wno-builtin-macro-redefined"
684698
],
699+
"OTHER_LDFLAGS": [
700+
"-framework",
701+
"Foundation",
702+
"-weak_framework",
703+
"SwiftUI",
704+
"-ObjC"
705+
],
685706
"PRODUCT_MODULE_NAME": "ExampleObjcTests",
686707
"PRODUCT_NAME": "ExampleObjcTests.library",
687708
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
@@ -937,6 +958,13 @@
937958
"-no-canonical-prefixes",
938959
"-Wno-builtin-macro-redefined"
939960
],
961+
"OTHER_LDFLAGS": [
962+
"-framework",
963+
"Foundation",
964+
"-weak_framework",
965+
"SwiftUI",
966+
"-ObjC"
967+
],
940968
"OTHER_SWIFT_FLAGS": "-Fthird_party -Fexternal/examples_ios_app_external",
941969
"PRODUCT_MODULE_NAME": "ExampleTests",
942970
"PRODUCT_NAME": "ExampleTests.library",
@@ -1176,6 +1204,9 @@
11761204
"-no-canonical-prefixes",
11771205
"-Wno-builtin-macro-redefined"
11781206
],
1207+
"OTHER_LDFLAGS": [
1208+
"-ObjC"
1209+
],
11791210
"PRODUCT_MODULE_NAME": "ExampleUITests",
11801211
"PRODUCT_NAME": "ExampleUITests.library",
11811212
"SWIFT_ACTIVE_COMPILATION_CONDITIONS": "DEBUG",
@@ -1267,6 +1298,9 @@
12671298
"-no-canonical-prefixes",
12681299
"-Wno-builtin-macro-redefined"
12691300
],
1301+
"OTHER_LDFLAGS": [
1302+
"-ObjC"
1303+
],
12701304
"PRODUCT_MODULE_NAME": "TestingUtils",
12711305
"PRODUCT_NAME": "TestingUtils",
12721306
"SWIFT_ACTIVE_COMPILATION_CONDITIONS": "DEBUG AWESOME",
@@ -1364,6 +1398,13 @@
13641398
"-no-canonical-prefixes",
13651399
"-Wno-builtin-macro-redefined"
13661400
],
1401+
"OTHER_LDFLAGS": [
1402+
"-framework",
1403+
"Foundation",
1404+
"-weak_framework",
1405+
"SwiftUI",
1406+
"-ObjC"
1407+
],
13671408
"PRODUCT_MODULE_NAME": "Utils",
13681409
"PRODUCT_NAME": "Utils",
13691410
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",

examples/ios_app/third_party/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ load(
55

66
apple_static_framework_import(
77
name = "ExampleFramework",
8+
sdk_frameworks = ["Foundation"],
89
framework_imports = glob(
910
["ExampleFramework.framework/**"],
1011
exclude = ["**/.*"],
1112
),
13+
weak_sdk_frameworks = ["SwiftUI"],
1214
visibility = ["//visibility:public"],
1315
)

test/fixtures/cc/project.xcodeproj/project.pbxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@
377377
"-no-canonical-prefixes",
378378
"-Wno-builtin-macro-redefined",
379379
);
380+
OTHER_LDFLAGS = "-ObjC";
380381
PRODUCT_NAME = lib_impl;
381382
SDKROOT = macosx;
382383
SWIFT_OBJC_INTERFACE_HEADER_NAME = "";
@@ -516,6 +517,7 @@
516517
"-no-canonical-prefixes",
517518
"-Wno-builtin-macro-redefined",
518519
);
520+
OTHER_LDFLAGS = "-ObjC";
519521
PRODUCT_NAME = lib_impl;
520522
SDKROOT = macosx;
521523
SWIFT_OBJC_INTERFACE_HEADER_NAME = "";
@@ -573,6 +575,7 @@
573575
"-no-canonical-prefixes",
574576
"-Wno-builtin-macro-redefined",
575577
);
578+
OTHER_LDFLAGS = "-ObjC";
576579
PRODUCT_NAME = lib_impl;
577580
SDKROOT = macosx;
578581
SWIFT_OBJC_INTERFACE_HEADER_NAME = "";

test/fixtures/cc/spec.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@
5959
"-no-canonical-prefixes",
6060
"-Wno-builtin-macro-redefined"
6161
],
62+
"OTHER_LDFLAGS": [
63+
"-ObjC"
64+
],
6265
"PRODUCT_NAME": "lib_impl",
6366
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
6467
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",
@@ -146,6 +149,9 @@
146149
"-no-canonical-prefixes",
147150
"-Wno-builtin-macro-redefined"
148151
],
152+
"OTHER_LDFLAGS": [
153+
"-ObjC"
154+
],
149155
"PRODUCT_NAME": "lib_impl",
150156
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
151157
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",
@@ -358,6 +364,9 @@
358364
"-no-canonical-prefixes",
359365
"-Wno-builtin-macro-redefined"
360366
],
367+
"OTHER_LDFLAGS": [
368+
"-ObjC"
369+
],
361370
"PRODUCT_NAME": "lib_impl",
362371
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
363372
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",

test/fixtures/command_line/project.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,7 @@
790790
"-no-canonical-prefixes",
791791
"-Wno-builtin-macro-redefined",
792792
);
793+
OTHER_LDFLAGS = "-ObjC";
793794
PRODUCT_NAME = lib_impl;
794795
SDKROOT = macosx;
795796
SWIFT_OBJC_INTERFACE_HEADER_NAME = "";
@@ -844,6 +845,7 @@
844845
"-no-canonical-prefixes",
845846
"-Wno-builtin-macro-redefined",
846847
);
848+
OTHER_LDFLAGS = "-ObjC";
847849
PRODUCT_NAME = lib_impl;
848850
SDKROOT = macosx;
849851
SWIFT_OBJC_INTERFACE_HEADER_NAME = "";
@@ -917,6 +919,7 @@
917919
"-no-canonical-prefixes",
918920
"-Wno-builtin-macro-redefined",
919921
);
922+
OTHER_LDFLAGS = "-ObjC";
920923
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/macos-x86_64-min11.0-applebin_macos-darwin_x86_64-fastbuild-ST-8946c8252059/bin/examples/command_line/lib/lib_impl.swift.xcode.modulemap";
921924
PRODUCT_MODULE_NAME = LibSwift;
922925
PRODUCT_NAME = lib_swift;
@@ -1050,6 +1053,7 @@
10501053
"-no-canonical-prefixes",
10511054
"-Wno-builtin-macro-redefined",
10521055
);
1056+
OTHER_LDFLAGS = "-ObjC";
10531057
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined -Xcc -fmodule-map-file=$(BUILD_DIR)/bazel-out/macos-x86_64-min12.0-applebin_macos-darwin_x86_64-fastbuild-ST-f2aadcfcab57/bin/examples/command_line/lib/lib_impl.swift.xcode.modulemap";
10541058
PRODUCT_MODULE_NAME = LibSwift;
10551059
PRODUCT_NAME = lib_swift;

test/fixtures/command_line/spec.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@
184184
"-no-canonical-prefixes",
185185
"-Wno-builtin-macro-redefined"
186186
],
187+
"OTHER_LDFLAGS": [
188+
"-ObjC"
189+
],
187190
"PRODUCT_MODULE_NAME": "LibSwiftTestsLib",
188191
"PRODUCT_NAME": "LibSwiftTestsLib",
189192
"SWIFT_ACTIVE_COMPILATION_CONDITIONS": "DEBUG",
@@ -295,6 +298,9 @@
295298
"-no-canonical-prefixes",
296299
"-Wno-builtin-macro-redefined"
297300
],
301+
"OTHER_LDFLAGS": [
302+
"-ObjC"
303+
],
298304
"PRODUCT_NAME": "lib_impl",
299305
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
300306
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",
@@ -381,6 +387,9 @@
381387
"-no-canonical-prefixes",
382388
"-Wno-builtin-macro-redefined"
383389
],
390+
"OTHER_LDFLAGS": [
391+
"-ObjC"
392+
],
384393
"PRODUCT_NAME": "lib_impl",
385394
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
386395
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",
@@ -468,6 +477,9 @@
468477
"-no-canonical-prefixes",
469478
"-Wno-builtin-macro-redefined"
470479
],
480+
"OTHER_LDFLAGS": [
481+
"-ObjC"
482+
],
471483
"PRODUCT_MODULE_NAME": "LibSwift",
472484
"PRODUCT_NAME": "lib_swift",
473485
"SWIFT_ACTIVE_COMPILATION_CONDITIONS": "DEBUG",
@@ -571,6 +583,9 @@
571583
"-no-canonical-prefixes",
572584
"-Wno-builtin-macro-redefined"
573585
],
586+
"OTHER_LDFLAGS": [
587+
"-ObjC"
588+
],
574589
"PRODUCT_MODULE_NAME": "LibSwift",
575590
"PRODUCT_NAME": "lib_swift",
576591
"SWIFT_ACTIVE_COMPILATION_CONDITIONS": "DEBUG",
@@ -764,6 +779,9 @@
764779
"-no-canonical-prefixes",
765780
"-Wno-builtin-macro-redefined"
766781
],
782+
"OTHER_LDFLAGS": [
783+
"-ObjC"
784+
],
767785
"PRODUCT_NAME": "tool.library",
768786
"SWIFT_OBJC_INTERFACE_HEADER_NAME": "",
769787
"SWIFT_OPTIMIZATION_LEVEL": "-Onone",

test/fixtures/generator/project.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,6 +1439,7 @@
14391439
"-no-canonical-prefixes",
14401440
"-Wno-builtin-macro-redefined",
14411441
);
1442+
OTHER_LDFLAGS = "-ObjC";
14421443
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
14431444
PRODUCT_MODULE_NAME = XcodeProj;
14441445
PRODUCT_NAME = XcodeProj;
@@ -1492,6 +1493,7 @@
14921493
"-no-canonical-prefixes",
14931494
"-Wno-builtin-macro-redefined",
14941495
);
1496+
OTHER_LDFLAGS = "-ObjC";
14951497
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
14961498
PRODUCT_MODULE_NAME = XCTestDynamicOverlay;
14971499
PRODUCT_NAME = XCTestDynamicOverlay;
@@ -1603,6 +1605,7 @@
16031605
"-no-canonical-prefixes",
16041606
"-Wno-builtin-macro-redefined",
16051607
);
1608+
OTHER_LDFLAGS = "-ObjC";
16061609
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
16071610
PRODUCT_MODULE_NAME = PathKit;
16081611
PRODUCT_NAME = PathKit;
@@ -1725,6 +1728,7 @@
17251728
"-no-canonical-prefixes",
17261729
"-Wno-builtin-macro-redefined",
17271730
);
1731+
OTHER_LDFLAGS = "-ObjC";
17281732
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
17291733
PRODUCT_MODULE_NAME = generator;
17301734
PRODUCT_NAME = generator.library;
@@ -1778,6 +1782,7 @@
17781782
"-no-canonical-prefixes",
17791783
"-Wno-builtin-macro-redefined",
17801784
);
1785+
OTHER_LDFLAGS = "-ObjC";
17811786
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
17821787
PRODUCT_MODULE_NAME = CustomDump;
17831788
PRODUCT_NAME = CustomDump;
@@ -1831,6 +1836,7 @@
18311836
"-no-canonical-prefixes",
18321837
"-Wno-builtin-macro-redefined",
18331838
);
1839+
OTHER_LDFLAGS = "-ObjC";
18341840
OTHER_SWIFT_FLAGS = "-Xcc -fstack-protector -Xcc -Wall -Xcc -Wthread-safety -Xcc -Wself-assign -Xcc -fno-omit-frame-pointer -Xcc -no-canonical-prefixes -Xcc -pthread -Xcc -no-canonical-prefixes -Xcc -Wno-builtin-macro-redefined";
18351841
PRODUCT_MODULE_NAME = AEXML;
18361842
PRODUCT_NAME = AEXML;

0 commit comments

Comments
 (0)