瀏覽代碼

project: rename preprocessor identifier for conditional features

osy 1 年之前
父節點
當前提交
4706e2280f

+ 2 - 2
Configuration/UTMQemuConfiguration+Arguments.swift

@@ -318,7 +318,7 @@ import Virtualization // for getting network interfaces
             }
             let tbSize = system.jitCacheSize > 0 ? system.jitCacheSize : system.memorySize / 4
             "tb-size=\(tbSize)"
-            #if !WITH_QEMU_TCI
+            #if WITH_JIT
             // use mirror mapping when we don't have JIT entitlements
             if !jb_has_jit_entitlement() {
                 "split-wx=on"
@@ -671,7 +671,7 @@ import Virtualization // for getting network interfaces
         f("usb-mouse,bus=usb-bus.0")
         f("-device")
         f("usb-kbd,bus=usb-bus.0")
-        #if !WITH_QEMU_TCI
+        #if WITH_USB
         let maxDevices = input.maximumUsbShare
         let buses = (maxDevices + 2) / 3
         if input.usbBusSupport == .usb3_0 {

+ 1 - 1
Platform/Main.swift

@@ -34,7 +34,7 @@ class Main {
     static var jitAvailable = true
     
     static func main() {
-        #if (os(iOS) || os(visionOS)) && !WITH_QEMU_TCI
+        #if (os(iOS) || os(visionOS)) && WITH_JIT
         // check if we have jailbreak
         if jb_spawn_ptrace_child(CommandLine.argc, CommandLine.unsafeArgv) {
             logger.info("JIT: ptrace() child spawn trick")

+ 1 - 1
Platform/Shared/ContentView.swift

@@ -78,7 +78,7 @@ struct ContentView: View {
             #if !os(visionOS)
             IQKeyboardManager.shared.enable = true
             #endif
-            #if !WITH_QEMU_TCI
+            #if WITH_JIT
             if !Main.jitAvailable {
                 data.busyWorkAsync {
                     let jitStreamerAttach = UserDefaults.standard.bool(forKey: "JitStreamerAttach")

+ 1 - 1
Platform/Shared/VMConfigInputView.swift

@@ -26,7 +26,7 @@ struct VMConfigInputView: View {
                     VMConfigConstantPicker("USB Support", selection: $config.usbBusSupport)
                 }
                 
-                #if !WITH_QEMU_TCI
+                #if WITH_USB
                 if config.usbBusSupport != .disabled {
                     Section(header: Text("USB Sharing")) {
                         if !jb_has_usb_entitlement() {

+ 1 - 1
Platform/Shared/VMWizardStartView.swift

@@ -31,7 +31,7 @@ struct VMWizardStartView: View {
     }
     
     var isEmulationSupported: Bool {
-        #if WITH_QEMU_TCI
+        #if !WITH_JIT
         true
         #else
         Main.jitAvailable

+ 2 - 2
Platform/UTMData.swift

@@ -21,7 +21,7 @@ import AppKit
 import UIKit
 import SwiftUI
 #endif
-#if canImport(AltKit) && !WITH_QEMU_TCI
+#if canImport(AltKit) && WITH_JIT
 import AltKit
 #endif
 
@@ -868,7 +868,7 @@ struct AlertMessage: Identifiable {
 
     // MARK: - AltKit
     
-#if canImport(AltKit) && !WITH_QEMU_TCI
+#if canImport(AltKit) && WITH_JIT
     /// Detect if we are installed from AltStore and can use AltJIT
     var isAltServerCompatible: Bool {
         guard let _ = Bundle.main.infoDictionary?["ALTServerID"] else {

+ 1 - 1
Platform/iOS/Display/VMDisplayMetalViewController.h

@@ -16,7 +16,7 @@
 
 #import <UIKit/UIKit.h>
 #import "VMDisplayViewController.h"
-#if defined(WITH_QEMU_TCI)
+#if !defined(WITH_USB)
 @import CocoaSpiceNoUsb;
 #else
 @import CocoaSpice;

+ 4 - 4
Platform/iOS/VMSessionState.swift

@@ -51,7 +51,7 @@ import SwiftUI
     
     @Published var primaryInput: CSInput?
     
-    #if !WITH_QEMU_TCI
+    #if WITH_USB
     private var primaryUsbManager: CSUSBManager?
     
     private var usbManagerQueue = DispatchQueue(label: "USB Manager Queue", qos: .utility)
@@ -148,7 +148,7 @@ extension VMSessionState: UTMVirtualMachineDelegate {
         Task { @MainActor in
             vmState = state
             if state == .stopped {
-                #if !WITH_QEMU_TCI
+                #if WITH_USB
                 clearDevices()
                 #endif
             }
@@ -281,7 +281,7 @@ extension VMSessionState: UTMSpiceIODelegate {
         }
     }
     
-    #if !WITH_QEMU_TCI
+    #if WITH_USB
     nonisolated func spiceDidChangeUsbManager(_ usbManager: CSUSBManager?) {
         Task { @MainActor in
             primaryUsbManager?.delegate = nil
@@ -293,7 +293,7 @@ extension VMSessionState: UTMSpiceIODelegate {
     #endif
 }
 
-#if !WITH_QEMU_TCI
+#if WITH_USB
 extension VMSessionState: CSUSBManagerDelegate {
     nonisolated func spiceUsbManager(_ usbManager: CSUSBManager, deviceError error: String, for device: CSUSBDevice) {
         Task { @MainActor in

+ 1 - 1
Platform/iOS/VMToolbarView.swift

@@ -110,7 +110,7 @@ struct VMToolbarView: View {
                 } label: {
                     Label("Zoom", systemImage: state.isViewportChanged ? "arrow.down.right.and.arrow.up.left" : "arrow.up.left.and.arrow.down.right")
                 }.offset(offset(for: 5))
-                #if !WITH_QEMU_TCI
+                #if WITH_USB
                 if session.vm.hasUsbRedirection {
                     VMToolbarUSBMenuView()
                     .offset(offset(for: 4))

+ 2 - 2
Platform/iOS/VMWindowState.swift

@@ -82,7 +82,7 @@ extension VMWindowState {
             case .powerDown: return 0
             case .terminateApp: return 1
             case .restart: return 2
-            #if !WITH_QEMU_TCI
+            #if WITH_USB
             case .deviceConnected(_): return 3
             #endif
             case .nonfatalError(_): return 4
@@ -94,7 +94,7 @@ extension VMWindowState {
         case powerDown
         case terminateApp
         case restart
-        #if !WITH_QEMU_TCI
+        #if WITH_USB
         case deviceConnected(CSUSBDevice)
         #endif
         case nonfatalError(String)

+ 2 - 2
Platform/iOS/VMWindowView.swift

@@ -114,7 +114,7 @@ struct VMWindowView: View {
                 return Alert(title: Text("Are you sure you want to reset this VM? Any unsaved changes will be lost."), primaryButton: .destructive(Text("Yes")) {
                     session.reset()
                 }, secondaryButton: .cancel(Text("No")))
-            #if !WITH_QEMU_TCI
+            #if WITH_USB
             case .deviceConnected(let device):
                 return Alert(title: Text("Would you like to connect '\(device.name ?? device.description)' to this virtual machine?"), primaryButton: .default(Text("Yes")) {
                     session.mostRecentConnectedDevice = nil
@@ -151,7 +151,7 @@ struct VMWindowView: View {
             state.saveWindow(to: session.vm.registryEntry, device: oldDevice)
             state.restoreWindow(from: session.vm.registryEntry, device: newDevice)
         }
-        #if !WITH_QEMU_TCI
+        #if WITH_USB
         .onChange(of: session.mostRecentConnectedDevice) { newValue in
             if session.activeWindow == state.id, let device = newValue {
                 state.alert = .deviceConnected(device)

+ 1 - 1
Platform/visionOS/VMToolbarOrnamentModifier.swift

@@ -56,7 +56,7 @@ struct VMToolbarOrnamentModifier: ViewModifier {
                     }
                     .disabled(state.isBusy)
                 }
-                #if !WITH_QEMU_TCI
+                #if WITH_USB
                 if session.vm.hasUsbRedirection {
                     VMToolbarUSBMenuView()
                         .disabled(state.isBusy)

+ 5 - 5
Services/UTMJailbreak.m

@@ -65,7 +65,7 @@ typedef struct memorystatus_memlimit_properties {
 
 int memorystatus_control(uint32_t command, int32_t pid, uint32_t flags, user_addr_t buffer, size_t buffersize);
 
-#if !TARGET_OS_OSX && !defined(WITH_QEMU_TCI)
+#if !TARGET_OS_OSX && defined(WITH_JIT)
 extern int csops(pid_t pid, unsigned int ops, void * useraddr, size_t usersize);
 extern boolean_t exc_server(mach_msg_header_t *, mach_msg_header_t *);
 extern int ptrace(int request, pid_t pid, caddr_t addr, int data);
@@ -100,7 +100,7 @@ static bool jb_has_debugger_attached(void) {
 #endif
 
 bool jb_has_cs_disabled(void) {
-#if TARGET_OS_OSX || defined(WITH_QEMU_TCI)
+#if TARGET_OS_OSX || !defined(WITH_JIT)
     return false;
 #else
     int flags;
@@ -236,7 +236,7 @@ static bool is_device_A12_or_newer(void) {
 bool jb_has_jit_entitlement(void) {
 #if TARGET_OS_OSX
     return true;
-#elif defined(WITH_QEMU_TCI)
+#elif !defined(WITH_JIT)
     return false;
 #else
     NSDictionary *entitlements = cached_app_entitlements();
@@ -330,7 +330,7 @@ bool jb_has_cs_execseg_allow_unsigned(void) {
 }
 
 bool jb_enable_ptrace_hack(void) {
-#if TARGET_OS_OSX || defined(WITH_QEMU_TCI)
+#if TARGET_OS_OSX || !defined(WITH_JIT)
     return false;
 #else
     bool debugged = jb_has_debugger_attached();
@@ -380,7 +380,7 @@ bool jb_increase_memlimit(void) {
     return ret1 == 0 && ret2 == 0;
 }
 
-#if !TARGET_OS_OSX && !defined(WITH_QEMU_TCI)
+#if !TARGET_OS_OSX && defined(WITH_JIT)
 extern const char *environ[];
 
 static char *childArgv[] = {NULL, "debugme", NULL};

+ 1 - 1
Services/UTMPasteboard.swift

@@ -26,7 +26,7 @@ typealias SystemPasteboardType = NSPasteboard.PasteboardType
 #else
 #error("Neither UIKit nor AppKit found!")
 #endif
-#if WITH_QEMU_TCI
+#if !WITH_USB
 import CocoaSpiceNoUsb
 #else
 import CocoaSpice

+ 1 - 1
Services/UTMQemuPort.swift

@@ -15,7 +15,7 @@
 //
 
 import QEMUKitInternal
-#if WITH_QEMU_TCI
+#if !WITH_USB
 import CocoaSpiceNoUsb
 #else
 import CocoaSpice

+ 2 - 2
Services/UTMSpiceIO.h

@@ -17,7 +17,7 @@
 #import <Foundation/Foundation.h>
 #import "UTMSpiceIODelegate.h"
 @import QEMUKitInternal;
-#if defined(WITH_QEMU_TCI)
+#if !defined(WITH_USB)
 @import CocoaSpiceNoUsb;
 #else
 @import CocoaSpice;
@@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, readonly, nullable) CSPort *primarySerial;
 @property (nonatomic, readonly) NSArray<CSDisplay *> *displays;
 @property (nonatomic, readonly) NSArray<CSPort *> *serials;
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
 @property (nonatomic, readonly, nullable) CSUSBManager *primaryUsbManager;
 #endif
 @property (nonatomic, weak, nullable) id<UTMSpiceIODelegate> delegate;

+ 4 - 4
Services/UTMSpiceIO.m

@@ -29,7 +29,7 @@ NSString *const kUTMErrorDomain = @"com.utmapp.utm";
 @property (nonatomic, readwrite, nullable) CSInput *primaryInput;
 @property (nonatomic, readwrite, nullable) CSPort *primarySerial;
 @property (nonatomic) NSMutableArray<CSPort *> *mutableSerials;
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
 @property (nonatomic, readwrite, nullable) CSUSBManager *primaryUsbManager;
 #endif
 @property (nonatomic, nullable) CSConnection *spiceConnection;
@@ -135,7 +135,7 @@ NSString *const kUTMErrorDomain = @"com.utmapp.utm";
     self.primaryInput = nil;
     self.primarySerial = nil;
     [self.mutableSerials removeAllObjects];
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
     self.primaryUsbManager = nil;
 #endif
 }
@@ -154,7 +154,7 @@ NSString *const kUTMErrorDomain = @"com.utmapp.utm";
 - (void)spiceConnected:(CSConnection *)connection {
     NSAssert(connection == self.spiceConnection, @"Unknown connection");
     self.isConnected = YES;
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
     self.primaryUsbManager = connection.usbManager;
     [self.delegate spiceDidChangeUsbManager:connection.usbManager];
 #endif
@@ -285,7 +285,7 @@ NSString *const kUTMErrorDomain = @"com.utmapp.utm";
     if (self.primarySerial) {
         [self.delegate spiceDidCreateSerial:self.primarySerial];
     }
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
     if (self.primaryUsbManager) {
         [self.delegate spiceDidChangeUsbManager:self.primaryUsbManager];
     }

+ 1 - 1
Services/UTMSpiceIODelegate.h

@@ -32,7 +32,7 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)spiceDidUpdateDisplay:(CSDisplay *)display NS_SWIFT_NAME(spiceDidUpdateDisplay(_:));
 - (void)spiceDidCreateSerial:(CSPort *)serial NS_SWIFT_NAME(spiceDidCreateSerial(_:));
 - (void)spiceDidDestroySerial:(CSPort *)serial NS_SWIFT_NAME(spiceDidDestroySerial(_:));
-#if !defined(WITH_QEMU_TCI)
+#if defined(WITH_USB)
 - (void)spiceDidChangeUsbManager:(nullable CSUSBManager *)usbManager NS_SWIFT_NAME(spiceDidChangeUsbManager(_:));
 #endif
 

+ 28 - 3
UTM.xcodeproj/project.pbxproj

@@ -3720,6 +3720,11 @@
 				CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_IOS:default=Apple Development)";
 				ENABLE_BITCODE = NO;
 				ENABLE_PREVIEWS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"WITH_JIT=1",
+					"WITH_USB=1",
+					"$(inherited)",
+				);
 				INFOPLIST_FILE = Platform/iOS/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3731,6 +3736,7 @@
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
 				SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_JIT WITH_USB $(inherited)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
@@ -3748,6 +3754,11 @@
 				CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_IOS:default=Apple Development)";
 				ENABLE_BITCODE = NO;
 				ENABLE_PREVIEWS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"WITH_JIT=1",
+					"WITH_USB=1",
+					"$(inherited)",
+				);
 				INFOPLIST_FILE = Platform/iOS/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3759,6 +3770,7 @@
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
 				SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_JIT WITH_USB $(inherited)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2,7";
@@ -3777,6 +3789,11 @@
 				CODE_SIGN_STYLE = Manual;
 				COMBINE_HIDPI_IMAGES = YES;
 				ENABLE_PREVIEWS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"WITH_JIT=1",
+					"WITH_USB=1",
+					"$(inherited)",
+				);
 				INFOPLIST_FILE = Platform/macOS/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3786,7 +3803,7 @@
 				PRODUCT_NAME = "$(PROJECT_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "$(PROVISIONING_PROFILE_SPECIFIER_MAC:default=)";
 				SUPPORTED_PLATFORMS = macosx;
-				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_JIT WITH_USB $(inherited)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
@@ -3805,6 +3822,11 @@
 				CODE_SIGN_STYLE = Manual;
 				COMBINE_HIDPI_IMAGES = YES;
 				ENABLE_PREVIEWS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"WITH_JIT=1",
+					"WITH_USB=1",
+					"$(inherited)",
+				);
 				INFOPLIST_FILE = Platform/macOS/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
@@ -3814,6 +3836,7 @@
 				PRODUCT_NAME = "$(PROJECT_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "$(PROVISIONING_PROFILE_SPECIFIER_MAC:default=)";
 				SUPPORTED_PLATFORMS = macosx;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_JIT WITH_USB $(inherited)";
 				SWIFT_COMPILATION_MODE = wholemodule;
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-O";
@@ -3902,6 +3925,7 @@
 				QUOTED_SYSROOT_DIR = "\"$(SYSROOT_DIR)\"";
 				SDKROOT = auto;
 				SUPPORTED_PLATFORMS = "";
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
 				SYSROOT_DIR = "sysroot-$(PLATFORM_DISPLAY_NAME:identifier)$(PLATFORM_SUFFIX)-$(ARCHS:identifier)";
 			};
 			name = Debug;
@@ -3980,6 +4004,7 @@
 				QUOTED_SYSROOT_DIR = "\"$(SYSROOT_DIR)\"";
 				SDKROOT = auto;
 				SUPPORTED_PLATFORMS = "";
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)";
 				SWIFT_COMPILATION_MODE = wholemodule;
 				SYSROOT_DIR = "sysroot-$(PLATFORM_DISPLAY_NAME:identifier)$(PLATFORM_SUFFIX)-$(ARCHS:identifier)";
 				VALIDATE_PRODUCT = YES;
@@ -4065,7 +4090,7 @@
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
 				SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
-				SWIFT_ACTIVE_COMPILATION_CONDITIONS = WITH_QEMU_TCI;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_QEMU_TCI $(inherited)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
@@ -4100,7 +4125,7 @@
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
 				SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
-				SWIFT_ACTIVE_COMPILATION_CONDITIONS = WITH_QEMU_TCI;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "WITH_QEMU_TCI $(inherited)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Services/Swift-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2,7";