Author: Jason Molenda
Date: 2020-10-13T16:28:16-07:00
New Revision: e763709d14e560915e04731c2fd6f1595d7ff8ba

URL: 
https://github.com/llvm/llvm-project/commit/e763709d14e560915e04731c2fd6f1595d7ff8ba
DIFF: 
https://github.com/llvm/llvm-project/commit/e763709d14e560915e04731c2fd6f1595d7ff8ba.diff

LOG: 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>

Added: 
    

Modified: 
    lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj
    lldb/tools/debugserver/source/CMakeLists.txt
    lldb/tools/debugserver/source/MacOSX/MachProcess.mm

Removed: 
    


################################################################################
diff  --git a/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj 
b/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj
index 1c7a55f7108a..d93f376322ec 100644
--- a/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj
+++ b/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj
@@ -850,6 +850,21 @@
                                        "-framework",
                                        Security,
                                );
+                               "OTHER_LDFLAGS[sdk=watchos*]" = (
+                                       "-framework",
+                                       SpringBoardServices,
+                                       "-framework",
+                                       BackBoardServices,
+                                       "-llockdown",
+                                       "-framework",
+                                       FrontBoardServices,
+                                       "-framework",
+                                       MobileCoreServices,
+                                       "$(LLDB_ENERGY_LDFLAGS)",
+                                       "$(LLDB_COMPRESSION_LDFLAGS)",
+                                       "-framework",
+                                       CarouselServices,
+                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                SDKROOT = macosx;
@@ -907,6 +922,10 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
+                               "OTHER_CPLUSPLUSFLAGS[sdk=watchos*]" = (
+                                       "$(OTHER_CFLAGS)",
+                                       "-DWITH_CAROUSEL=1",
+                               );
                                OTHER_LDFLAGS = "";
                                "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
                                        "-framework",
@@ -931,6 +950,21 @@
                                        "-framework",
                                        Security,
                                );
+                               "OTHER_LDFLAGS[sdk=watchos*]" = (
+                                       "-framework",
+                                       SpringBoardServices,
+                                       "-framework",
+                                       BackBoardServices,
+                                       "-llockdown",
+                                       "-framework",
+                                       FrontBoardServices,
+                                       "-framework",
+                                       MobileCoreServices,
+                                       "$(LLDB_ENERGY_LDFLAGS)",
+                                       "$(LLDB_COMPRESSION_LDFLAGS)",
+                                       "-framework",
+                                       CarouselServices,
+                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -987,6 +1021,10 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
+                               "OTHER_CPLUSPLUSFLAGS[sdk=watchos*]" = (
+                                       "$(OTHER_CFLAGS)",
+                                       "-DWITH_CAROUSEL=1",
+                               );
                                OTHER_LDFLAGS = "";
                                "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
                                        "-framework",
@@ -1011,6 +1049,21 @@
                                        "-framework",
                                        Security,
                                );
+                               "OTHER_LDFLAGS[sdk=watchos*]" = (
+                                       "-framework",
+                                       SpringBoardServices,
+                                       "-framework",
+                                       BackBoardServices,
+                                       "-llockdown",
+                                       "-framework",
+                                       FrontBoardServices,
+                                       "-framework",
+                                       MobileCoreServices,
+                                       "$(LLDB_ENERGY_LDFLAGS)",
+                                       "$(LLDB_COMPRESSION_LDFLAGS)",
+                                       "-framework",
+                                       CarouselServices,
+                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1385,27 +1438,6 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
-                               "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
-                                       "-framework",
-                                       SpringBoardServices,
-                                       "-framework",
-                                       BackBoardServices,
-                                       "-llockdown",
-                                       "-framework",
-                                       FrontBoardServices,
-                                       "-framework",
-                                       MobileCoreServices,
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
-                               "OTHER_LDFLAGS[sdk=macosx*]" = (
-                                       "-sectcreate",
-                                       __TEXT,
-                                       __info_plist,
-                                       
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1499,27 +1531,6 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
-                               "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
-                                       "-framework",
-                                       SpringBoardServices,
-                                       "-framework",
-                                       BackBoardServices,
-                                       "-llockdown",
-                                       "-framework",
-                                       FrontBoardServices,
-                                       "-framework",
-                                       MobileCoreServices,
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
-                               "OTHER_LDFLAGS[sdk=macosx*]" = (
-                                       "-sectcreate",
-                                       __TEXT,
-                                       __info_plist,
-                                       
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1690,28 +1701,6 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
-                               OTHER_LDFLAGS = "";
-                               "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
-                                       "-framework",
-                                       SpringBoardServices,
-                                       "-framework",
-                                       BackBoardServices,
-                                       "-llockdown",
-                                       "-framework",
-                                       FrontBoardServices,
-                                       "-framework",
-                                       MobileCoreServices,
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
-                               "OTHER_LDFLAGS[sdk=macosx*]" = (
-                                       "-sectcreate",
-                                       __TEXT,
-                                       __info_plist,
-                                       
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1806,27 +1795,6 @@
                                        
"$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders",
                                );
                                "OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = 
"$(OTHER_CFLAGS)";
-                               "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
-                                       "-framework",
-                                       SpringBoardServices,
-                                       "-framework",
-                                       BackBoardServices,
-                                       "-llockdown",
-                                       "-framework",
-                                       FrontBoardServices,
-                                       "-framework",
-                                       MobileCoreServices,
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
-                               "OTHER_LDFLAGS[sdk=macosx*]" = (
-                                       "-sectcreate",
-                                       __TEXT,
-                                       __info_plist,
-                                       
"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
-                                       "$(LLDB_ENERGY_LDFLAGS)",
-                                       "$(LLDB_COMPRESSION_LDFLAGS)",
-                               );
                                OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
                                PRODUCT_NAME = debugserver;
                                "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";

diff  --git a/lldb/tools/debugserver/source/CMakeLists.txt 
b/lldb/tools/debugserver/source/CMakeLists.txt
index 0ed6280168f3..6977fe734381 100644
--- a/lldb/tools/debugserver/source/CMakeLists.txt
+++ b/lldb/tools/debugserver/source/CMakeLists.txt
@@ -109,6 +109,10 @@ if(APPLE)
     find_library(MOBILESERVICES_LIBRARY MobileCoreServices
       PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks)
     find_library(LOCKDOWN_LIBRARY lockdown)
+    if (APPLE_EMBEDDED STREQUAL "watchos")
+      find_library(CAROUSELSERVICES_LIBRARY CarouselServices
+        PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks)
+    endif()
 
     if(NOT BACKBOARD_LIBRARY)
       set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE)
@@ -214,6 +218,7 @@ target_link_libraries(lldbDebugserverCommon
                       ${SPRINGBOARD_LIBRARY}
                       ${MOBILESERVICES_LIBRARY}
                       ${LOCKDOWN_LIBRARY}
+                      ${CAROUSELSERVICES_LIBRARY}
                       lldbDebugserverArchSupport
                       lldbDebugserverDarwin_DarwinLog
                       ${FOUNDATION_LIBRARY}
@@ -266,6 +271,11 @@ if(APPLE_EMBEDDED)
     WITH_FBS
     WITH_BKS
     )
+  if(CAROUSELSERVICES_LIBRARY)
+    set_property(TARGET lldbDebugserverCommon APPEND PROPERTY 
COMPILE_DEFINITIONS
+      WITH_CAROUSEL
+      )
+  endif()
   set_property(TARGET debugserver APPEND PROPERTY COMPILE_DEFINITIONS
     WITH_LOCKDOWN
     WITH_FBS

diff  --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm 
b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
index d3c2f52a972a..80792f07214b 100644
--- a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
+++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
@@ -79,6 +79,11 @@
 
 #endif // WITH_SPRINGBOARD
 
+#if WITH_CAROUSEL
+// For definition of CSLSOpenApplicationOptionForClockKit.
+#include <CarouselServices/CSLSOpenApplicationOptions.h>
+#endif // WITH_CAROUSEL
+
 #if defined(WITH_SPRINGBOARD) || defined(WITH_BKS) || defined(WITH_FBS)
 // This returns a CFRetained pointer to the Bundle ID for app_bundle_path,
 // or NULL if there was some problem getting the bundle id.
@@ -402,6 +407,12 @@ static bool FBSAddEventDataToOptions(NSMutableDictionary 
*options,
         DNBLog("Setting ActivateSuspended key in options dictionary.");
         [options setObject:@YES forKey: 
FBSOpenApplicationOptionKeyActivateSuspended];
         found_one = true;
+#if WITH_CAROUSEL
+      } else if (value.compare("WatchComplicationLaunch") == 0) {
+        DNBLog("Setting FBSOpenApplicationOptionKeyActivateSuspended key in 
options dictionary.");
+        [options setObject:@YES forKey: CSLSOpenApplicationOptionForClockKit];
+        found_one = true;
+#endif // WITH_CAROUSEL
       } else {
         DNBLogError("Unrecognized event type: %s.  Ignoring.", value.c_str());
         option_error.SetErrorString("Unrecognized event data.");


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to