Skip to content

Commit e763709

Browse files
committed
Add a new launch flag option for watchos, WatchComplicationLaunch.
Link against CarouselServices on watchos, recognize the WatchComplicationLaunch launch flag option when that framework is available. <rdar://problem/62473967>, <rdar://problem/61230088>
1 parent 7271c1b commit e763709

File tree

3 files changed

+74
-85
lines changed

3 files changed

+74
-85
lines changed

lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj

Lines changed: 53 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,21 @@
850850
"-framework",
851851
Security,
852852
);
853+
"OTHER_LDFLAGS[sdk=watchos*]" = (
854+
"-framework",
855+
SpringBoardServices,
856+
"-framework",
857+
BackBoardServices,
858+
"-llockdown",
859+
"-framework",
860+
FrontBoardServices,
861+
"-framework",
862+
MobileCoreServices,
863+
"$(LLDB_ENERGY_LDFLAGS)",
864+
"$(LLDB_COMPRESSION_LDFLAGS)",
865+
"-framework",
866+
CarouselServices,
867+
);
853868
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
854869
PRODUCT_NAME = debugserver;
855870
SDKROOT = macosx;
@@ -907,6 +922,10 @@
907922
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
908923
);
909924
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
925+
"OTHER_CPLUSPLUSFLAGS[sdk=watchos*]" = (
926+
"$(OTHER_CFLAGS)",
927+
"-DWITH_CAROUSEL=1",
928+
);
910929
OTHER_LDFLAGS = "";
911930
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
912931
"-framework",
@@ -931,6 +950,21 @@
931950
"-framework",
932951
Security,
933952
);
953+
"OTHER_LDFLAGS[sdk=watchos*]" = (
954+
"-framework",
955+
SpringBoardServices,
956+
"-framework",
957+
BackBoardServices,
958+
"-llockdown",
959+
"-framework",
960+
FrontBoardServices,
961+
"-framework",
962+
MobileCoreServices,
963+
"$(LLDB_ENERGY_LDFLAGS)",
964+
"$(LLDB_COMPRESSION_LDFLAGS)",
965+
"-framework",
966+
CarouselServices,
967+
);
934968
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
935969
PRODUCT_NAME = debugserver;
936970
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -987,6 +1021,10 @@
9871021
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
9881022
);
9891023
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
1024+
"OTHER_CPLUSPLUSFLAGS[sdk=watchos*]" = (
1025+
"$(OTHER_CFLAGS)",
1026+
"-DWITH_CAROUSEL=1",
1027+
);
9901028
OTHER_LDFLAGS = "";
9911029
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
9921030
"-framework",
@@ -1011,6 +1049,21 @@
10111049
"-framework",
10121050
Security,
10131051
);
1052+
"OTHER_LDFLAGS[sdk=watchos*]" = (
1053+
"-framework",
1054+
SpringBoardServices,
1055+
"-framework",
1056+
BackBoardServices,
1057+
"-llockdown",
1058+
"-framework",
1059+
FrontBoardServices,
1060+
"-framework",
1061+
MobileCoreServices,
1062+
"$(LLDB_ENERGY_LDFLAGS)",
1063+
"$(LLDB_COMPRESSION_LDFLAGS)",
1064+
"-framework",
1065+
CarouselServices,
1066+
);
10141067
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
10151068
PRODUCT_NAME = debugserver;
10161069
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1385,27 +1438,6 @@
13851438
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
13861439
);
13871440
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
1388-
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
1389-
"-framework",
1390-
SpringBoardServices,
1391-
"-framework",
1392-
BackBoardServices,
1393-
"-llockdown",
1394-
"-framework",
1395-
FrontBoardServices,
1396-
"-framework",
1397-
MobileCoreServices,
1398-
"$(LLDB_ENERGY_LDFLAGS)",
1399-
"$(LLDB_COMPRESSION_LDFLAGS)",
1400-
);
1401-
"OTHER_LDFLAGS[sdk=macosx*]" = (
1402-
"-sectcreate",
1403-
__TEXT,
1404-
__info_plist,
1405-
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
1406-
"$(LLDB_ENERGY_LDFLAGS)",
1407-
"$(LLDB_COMPRESSION_LDFLAGS)",
1408-
);
14091441
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
14101442
PRODUCT_NAME = debugserver;
14111443
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1499,27 +1531,6 @@
14991531
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
15001532
);
15011533
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
1502-
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
1503-
"-framework",
1504-
SpringBoardServices,
1505-
"-framework",
1506-
BackBoardServices,
1507-
"-llockdown",
1508-
"-framework",
1509-
FrontBoardServices,
1510-
"-framework",
1511-
MobileCoreServices,
1512-
"$(LLDB_ENERGY_LDFLAGS)",
1513-
"$(LLDB_COMPRESSION_LDFLAGS)",
1514-
);
1515-
"OTHER_LDFLAGS[sdk=macosx*]" = (
1516-
"-sectcreate",
1517-
__TEXT,
1518-
__info_plist,
1519-
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
1520-
"$(LLDB_ENERGY_LDFLAGS)",
1521-
"$(LLDB_COMPRESSION_LDFLAGS)",
1522-
);
15231534
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
15241535
PRODUCT_NAME = debugserver;
15251536
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1690,28 +1701,6 @@
16901701
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
16911702
);
16921703
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
1693-
OTHER_LDFLAGS = "";
1694-
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
1695-
"-framework",
1696-
SpringBoardServices,
1697-
"-framework",
1698-
BackBoardServices,
1699-
"-llockdown",
1700-
"-framework",
1701-
FrontBoardServices,
1702-
"-framework",
1703-
MobileCoreServices,
1704-
"$(LLDB_ENERGY_LDFLAGS)",
1705-
"$(LLDB_COMPRESSION_LDFLAGS)",
1706-
);
1707-
"OTHER_LDFLAGS[sdk=macosx*]" = (
1708-
"-sectcreate",
1709-
__TEXT,
1710-
__info_plist,
1711-
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
1712-
"$(LLDB_ENERGY_LDFLAGS)",
1713-
"$(LLDB_COMPRESSION_LDFLAGS)",
1714-
);
17151704
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
17161705
PRODUCT_NAME = debugserver;
17171706
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1806,27 +1795,6 @@
18061795
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
18071796
);
18081797
"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
1809-
"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
1810-
"-framework",
1811-
SpringBoardServices,
1812-
"-framework",
1813-
BackBoardServices,
1814-
"-llockdown",
1815-
"-framework",
1816-
FrontBoardServices,
1817-
"-framework",
1818-
MobileCoreServices,
1819-
"$(LLDB_ENERGY_LDFLAGS)",
1820-
"$(LLDB_COMPRESSION_LDFLAGS)",
1821-
);
1822-
"OTHER_LDFLAGS[sdk=macosx*]" = (
1823-
"-sectcreate",
1824-
__TEXT,
1825-
__info_plist,
1826-
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
1827-
"$(LLDB_ENERGY_LDFLAGS)",
1828-
"$(LLDB_COMPRESSION_LDFLAGS)",
1829-
);
18301798
OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
18311799
PRODUCT_NAME = debugserver;
18321800
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";

lldb/tools/debugserver/source/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ if(APPLE)
109109
find_library(MOBILESERVICES_LIBRARY MobileCoreServices
110110
PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks)
111111
find_library(LOCKDOWN_LIBRARY lockdown)
112+
if (APPLE_EMBEDDED STREQUAL "watchos")
113+
find_library(CAROUSELSERVICES_LIBRARY CarouselServices
114+
PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks)
115+
endif()
112116

113117
if(NOT BACKBOARD_LIBRARY)
114118
set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE)
@@ -214,6 +218,7 @@ target_link_libraries(lldbDebugserverCommon
214218
${SPRINGBOARD_LIBRARY}
215219
${MOBILESERVICES_LIBRARY}
216220
${LOCKDOWN_LIBRARY}
221+
${CAROUSELSERVICES_LIBRARY}
217222
lldbDebugserverArchSupport
218223
lldbDebugserverDarwin_DarwinLog
219224
${FOUNDATION_LIBRARY}
@@ -266,6 +271,11 @@ if(APPLE_EMBEDDED)
266271
WITH_FBS
267272
WITH_BKS
268273
)
274+
if(CAROUSELSERVICES_LIBRARY)
275+
set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_DEFINITIONS
276+
WITH_CAROUSEL
277+
)
278+
endif()
269279
set_property(TARGET debugserver APPEND PROPERTY COMPILE_DEFINITIONS
270280
WITH_LOCKDOWN
271281
WITH_FBS

lldb/tools/debugserver/source/MacOSX/MachProcess.mm

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@
7979

8080
#endif // WITH_SPRINGBOARD
8181

82+
#if WITH_CAROUSEL
83+
// For definition of CSLSOpenApplicationOptionForClockKit.
84+
#include <CarouselServices/CSLSOpenApplicationOptions.h>
85+
#endif // WITH_CAROUSEL
86+
8287
#if defined(WITH_SPRINGBOARD) || defined(WITH_BKS) || defined(WITH_FBS)
8388
// This returns a CFRetained pointer to the Bundle ID for app_bundle_path,
8489
// or NULL if there was some problem getting the bundle id.
@@ -402,6 +407,12 @@ static bool FBSAddEventDataToOptions(NSMutableDictionary *options,
402407
DNBLog("Setting ActivateSuspended key in options dictionary.");
403408
[options setObject:@YES forKey: FBSOpenApplicationOptionKeyActivateSuspended];
404409
found_one = true;
410+
#if WITH_CAROUSEL
411+
} else if (value.compare("WatchComplicationLaunch") == 0) {
412+
DNBLog("Setting FBSOpenApplicationOptionKeyActivateSuspended key in options dictionary.");
413+
[options setObject:@YES forKey: CSLSOpenApplicationOptionForClockKit];
414+
found_one = true;
415+
#endif // WITH_CAROUSEL
405416
} else {
406417
DNBLogError("Unrecognized event type: %s. Ignoring.", value.c_str());
407418
option_error.SetErrorString("Unrecognized event data.");

0 commit comments

Comments
 (0)