diff --git a/data/com.redhat.spice.vdagent.plist b/data/com.redhat.spice.vdagent.plist new file mode 100644 index 0000000..daf99a0 --- /dev/null +++ b/data/com.redhat.spice.vdagent.plist @@ -0,0 +1,26 @@ + + + + + KeepAlive + + Crashed + + + Label + com.redhat.spice.vdagent + ProgramArguments + + /usr/local/bin/spice-vdagent + -x + -S + /var/run/spice-vdagent-sock + + RunAtLoad + + StandardErrorPath + /var/log/spice-vdagent.stderr.log + StandardOutPath + /var/log/spice-vdagent.stdout.log + + diff --git a/data/com.redhat.spice.vdagentd.plist b/data/com.redhat.spice.vdagentd.plist new file mode 100644 index 0000000..6195167 --- /dev/null +++ b/data/com.redhat.spice.vdagentd.plist @@ -0,0 +1,28 @@ + + + + + KeepAlive + + Crashed + + + Label + com.redhat.spice.vdagentd + ProgramArguments + + /usr/local/bin/spice-vdagentd + -x + -s + /dev/tty.com.redhat.spice.0 + -S + /var/run/spice-vdagent-sock + + RunAtLoad + + StandardErrorPath + /var/log/spice-vdagentd.stderr.log + StandardOutPath + /var/log/spice-vdagentd.stdout.log + + diff --git a/vd_agent.xcodeproj/project.pbxproj b/vd_agent.xcodeproj/project.pbxproj index e853a5a..49e544b 100644 --- a/vd_agent.xcodeproj/project.pbxproj +++ b/vd_agent.xcodeproj/project.pbxproj @@ -6,6 +6,23 @@ objectVersion = 77; objects = { +/* Begin PBXAggregateTarget section */ + CE03A11A2CEA8429006884EE /* vd_agent */ = { + isa = PBXAggregateTarget; + buildConfigurationList = CE03A11B2CEA8429006884EE /* Build configuration list for PBXAggregateTarget "vd_agent" */; + buildPhases = ( + ); + dependencies = ( + CE03A11F2CEA8442006884EE /* PBXTargetDependency */, + CE03A1212CEA8442006884EE /* PBXTargetDependency */, + ); + name = vd_agent; + packageProductDependencies = ( + ); + productName = vd_agent; + }; +/* End PBXAggregateTarget section */ + /* Begin PBXBuildFile section */ CE03A0BC2CE9012D006884EE /* udscs.c in Sources */ = {isa = PBXBuildFile; fileRef = CE03A0B62CE900A0006884EE /* udscs.c */; }; CE03A0BD2CE9012D006884EE /* vdagent-connection.c in Sources */ = {isa = PBXBuildFile; fileRef = CE03A0B82CE900A0006884EE /* vdagent-connection.c */; }; @@ -23,6 +40,26 @@ CE03A0EF2CE97931006884EE /* libgio-2.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A0C52CE904C4006884EE /* libgio-2.0.a */; }; CE03A0F02CE97933006884EE /* libglib-2.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A0C62CE904C4006884EE /* libglib-2.0.a */; }; CE03A0F12CE97936006884EE /* libgobject-2.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A0CB2CE904EA006884EE /* libgobject-2.0.a */; }; + CE03A1172CEA83AF006884EE /* com.redhat.spice.vdagentd.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE03A10D2CEA838C006884EE /* com.redhat.spice.vdagentd.plist */; }; + CE03A1192CEA83C6006884EE /* com.redhat.spice.vdagent.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE03A10C2CEA838C006884EE /* com.redhat.spice.vdagent.plist */; }; + CE03A1262CEA8EF1006884EE /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1232CEA8EF1006884EE /* libiconv.tbd */; }; + CE03A1272CEA8EF1006884EE /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1242CEA8EF1006884EE /* libz.tbd */; }; + CE03A1282CEA8EF1006884EE /* libpcre2-8.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1252CEA8EF1006884EE /* libpcre2-8.tbd */; }; + CE03A12A2CEA8F18006884EE /* libffi.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1292CEA8F18006884EE /* libffi.tbd */; }; + CE03A12C2CEA8F6A006884EE /* libgmodule-2.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12B2CEA8F60006884EE /* libgmodule-2.0.a */; }; + CE03A12E2CEA8F75006884EE /* libintl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12D2CEA8F75006884EE /* libintl.a */; }; + CE03A1302CEA8FBA006884EE /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12F2CEA8FBA006884EE /* libresolv.tbd */; }; + CE03A1322CEA8FCE006884EE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1312CEA8FCE006884EE /* Foundation.framework */; }; + CE03A1342CEA8FE4006884EE /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1332CEA8FE4006884EE /* AppKit.framework */; }; + CE54BD8E2CEA90F200FE3930 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1332CEA8FE4006884EE /* AppKit.framework */; }; + CE54BD8F2CEA90F400FE3930 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1312CEA8FCE006884EE /* Foundation.framework */; }; + CE54BD902CEA90F600FE3930 /* libgmodule-2.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12B2CEA8F60006884EE /* libgmodule-2.0.a */; }; + CE54BD912CEA90FD00FE3930 /* libintl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12D2CEA8F75006884EE /* libintl.a */; }; + CE54BD922CEA910000FE3930 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A12F2CEA8FBA006884EE /* libresolv.tbd */; }; + CE54BD932CEA910200FE3930 /* libffi.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1292CEA8F18006884EE /* libffi.tbd */; }; + CE54BD942CEA910600FE3930 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1232CEA8EF1006884EE /* libiconv.tbd */; }; + CE54BD952CEA910700FE3930 /* libpcre2-8.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1252CEA8EF1006884EE /* libpcre2-8.tbd */; }; + CE54BD962CEA910E00FE3930 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE03A1242CEA8EF1006884EE /* libz.tbd */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -33,15 +70,40 @@ remoteGlobalIDString = CE03A0892CE90065006884EE; remoteInfo = "spice-vdagentd"; }; + CE03A11E2CEA8442006884EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE03A0822CE90065006884EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = CE03A0DC2CE90CE8006884EE; + remoteInfo = "spice-vdagent"; + }; + CE03A1202CEA8442006884EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE03A0822CE90065006884EE /* Project object */; + proxyType = 1; + remoteGlobalIDString = CE03A0892CE90065006884EE; + remoteInfo = "spice-vdagentd"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ CE03A0882CE90065006884EE /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; + dstPath = /Library/LaunchDaemons; + dstSubfolderSpec = 0; + files = ( + CE03A1172CEA83AF006884EE /* com.redhat.spice.vdagentd.plist in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + CE03A1182CEA83C0006884EE /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /Library/LaunchAgents; dstSubfolderSpec = 0; files = ( + CE03A1192CEA83C6006884EE /* com.redhat.spice.vdagent.plist in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 1; }; @@ -62,13 +124,24 @@ CE03A0B92CE900A0006884EE /* vdagentd-proto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "vdagentd-proto.h"; sourceTree = ""; }; CE03A0BA2CE900A0006884EE /* vdagentd-proto-strings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "vdagentd-proto-strings.h"; sourceTree = ""; }; CE03A0BE2CE9036C006884EE /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; - CE03A0C52CE904C4006884EE /* libgio-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libgio-2.0.a"; path = "/opt/homebrew/lib/libgio-2.0.a"; sourceTree = ""; }; - CE03A0C62CE904C4006884EE /* libglib-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libglib-2.0.a"; path = "/opt/homebrew/lib/libglib-2.0.a"; sourceTree = ""; }; - CE03A0CB2CE904EA006884EE /* libgobject-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libgobject-2.0.a"; path = "/opt/homebrew/lib/libgobject-2.0.a"; sourceTree = ""; }; + CE03A0C52CE904C4006884EE /* libgio-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libgio-2.0.a"; path = "$(DERIVED_FILE_DIR)/lib/libgio-2.0.a"; sourceTree = ""; }; + CE03A0C62CE904C4006884EE /* libglib-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libglib-2.0.a"; path = "$(DERIVED_FILE_DIR)/lib/libglib-2.0.a"; sourceTree = ""; }; + CE03A0CB2CE904EA006884EE /* libgobject-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libgobject-2.0.a"; path = "$(DERIVED_FILE_DIR)/lib/libgobject-2.0.a"; sourceTree = ""; }; CE03A0DD2CE90CE8006884EE /* spice-vdagent */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "spice-vdagent"; sourceTree = BUILT_PRODUCTS_DIR; }; CE03A0E42CE90CFC006884EE /* vdagent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vdagent.h; sourceTree = ""; }; CE03A0E52CE90CFC006884EE /* vdagent.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vdagent.c; sourceTree = ""; }; CE03A0E62CE90CFC006884EE /* Vdagent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Vdagent.swift; sourceTree = ""; }; + CE03A10C2CEA838C006884EE /* com.redhat.spice.vdagent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = com.redhat.spice.vdagent.plist; sourceTree = ""; }; + CE03A10D2CEA838C006884EE /* com.redhat.spice.vdagentd.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = com.redhat.spice.vdagentd.plist; sourceTree = ""; }; + CE03A1232CEA8EF1006884EE /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; + CE03A1242CEA8EF1006884EE /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + CE03A1252CEA8EF1006884EE /* libpcre2-8.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libpcre2-8.tbd"; path = "usr/lib/libpcre2-8.tbd"; sourceTree = SDKROOT; }; + CE03A1292CEA8F18006884EE /* libffi.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libffi.tbd; path = usr/lib/libffi.tbd; sourceTree = SDKROOT; }; + CE03A12B2CEA8F60006884EE /* libgmodule-2.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libgmodule-2.0.a"; path = "$(DERIVED_FILE_DIR)/lib/libgmodule-2.0.a"; sourceTree = ""; }; + CE03A12D2CEA8F75006884EE /* libintl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libintl.a; path = "$(DERIVED_FILE_DIR)/lib/libintl.a"; sourceTree = ""; }; + CE03A12F2CEA8FBA006884EE /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; + CE03A1312CEA8FCE006884EE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + CE03A1332CEA8FE4006884EE /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -76,9 +149,18 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CE03A1342CEA8FE4006884EE /* AppKit.framework in Frameworks */, + CE03A1322CEA8FCE006884EE /* Foundation.framework in Frameworks */, + CE03A1302CEA8FBA006884EE /* libresolv.tbd in Frameworks */, + CE03A12E2CEA8F75006884EE /* libintl.a in Frameworks */, + CE03A12A2CEA8F18006884EE /* libffi.tbd in Frameworks */, + CE03A1262CEA8EF1006884EE /* libiconv.tbd in Frameworks */, + CE03A1272CEA8EF1006884EE /* libz.tbd in Frameworks */, + CE03A1282CEA8EF1006884EE /* libpcre2-8.tbd in Frameworks */, CE03A0C82CE904D3006884EE /* libgio-2.0.a in Frameworks */, CE03A0C92CE904D4006884EE /* libglib-2.0.a in Frameworks */, CE03A0CC2CE90506006884EE /* libgobject-2.0.a in Frameworks */, + CE03A12C2CEA8F6A006884EE /* libgmodule-2.0.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -87,8 +169,17 @@ buildActionMask = 2147483647; files = ( CE03A0ED2CE90D55006884EE /* ArgumentParser in Frameworks */, + CE54BD8E2CEA90F200FE3930 /* AppKit.framework in Frameworks */, + CE54BD8F2CEA90F400FE3930 /* Foundation.framework in Frameworks */, + CE54BD912CEA90FD00FE3930 /* libintl.a in Frameworks */, + CE54BD922CEA910000FE3930 /* libresolv.tbd in Frameworks */, + CE54BD932CEA910200FE3930 /* libffi.tbd in Frameworks */, + CE54BD942CEA910600FE3930 /* libiconv.tbd in Frameworks */, + CE54BD952CEA910700FE3930 /* libpcre2-8.tbd in Frameworks */, + CE54BD962CEA910E00FE3930 /* libz.tbd in Frameworks */, CE03A0EF2CE97931006884EE /* libgio-2.0.a in Frameworks */, CE03A0F02CE97933006884EE /* libglib-2.0.a in Frameworks */, + CE54BD902CEA90F600FE3930 /* libgmodule-2.0.a in Frameworks */, CE03A0F12CE97936006884EE /* libgobject-2.0.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -99,6 +190,7 @@ CE03A0812CE90065006884EE = { isa = PBXGroup; children = ( + CE03A1162CEA838C006884EE /* data */, CE03A0BB2CE900A0006884EE /* src */, CE03A0C42CE904C4006884EE /* Frameworks */, CE03A08B2CE90065006884EE /* Products */, @@ -164,6 +256,15 @@ CE03A0C42CE904C4006884EE /* Frameworks */ = { isa = PBXGroup; children = ( + CE03A1332CEA8FE4006884EE /* AppKit.framework */, + CE03A1312CEA8FCE006884EE /* Foundation.framework */, + CE03A12B2CEA8F60006884EE /* libgmodule-2.0.a */, + CE03A12D2CEA8F75006884EE /* libintl.a */, + CE03A12F2CEA8FBA006884EE /* libresolv.tbd */, + CE03A1292CEA8F18006884EE /* libffi.tbd */, + CE03A1232CEA8EF1006884EE /* libiconv.tbd */, + CE03A1252CEA8EF1006884EE /* libpcre2-8.tbd */, + CE03A1242CEA8EF1006884EE /* libz.tbd */, CE03A0C52CE904C4006884EE /* libgio-2.0.a */, CE03A0C62CE904C4006884EE /* libglib-2.0.a */, CE03A0CB2CE904EA006884EE /* libgobject-2.0.a */, @@ -171,6 +272,15 @@ name = Frameworks; sourceTree = ""; }; + CE03A1162CEA838C006884EE /* data */ = { + isa = PBXGroup; + children = ( + CE03A10C2CEA838C006884EE /* com.redhat.spice.vdagent.plist */, + CE03A10D2CEA838C006884EE /* com.redhat.spice.vdagentd.plist */, + ); + path = data; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -178,7 +288,8 @@ isa = PBXNativeTarget; buildConfigurationList = CE03A0912CE90065006884EE /* Build configuration list for PBXNativeTarget "spice-vdagentd" */; buildPhases = ( - CE03A0F42CE9EDB0006884EE /* ShellScript */, + CE03A0F42CE9EDB0006884EE /* Fetch SPICE headers */, + CE03A1222CEA86DC006884EE /* Build universal GLib */, CE03A0862CE90065006884EE /* Sources */, CE03A0872CE90065006884EE /* Frameworks */, CE03A0882CE90065006884EE /* CopyFiles */, @@ -198,8 +309,10 @@ isa = PBXNativeTarget; buildConfigurationList = CE03A0E12CE90CE8006884EE /* Build configuration list for PBXNativeTarget "spice-vdagent" */; buildPhases = ( + CE54BD972CEA914E00FE3930 /* Build universal GLib */, CE03A0D92CE90CE8006884EE /* Sources */, CE03A0DA2CE90CE8006884EE /* Frameworks */, + CE03A1182CEA83C0006884EE /* CopyFiles */, ); buildRules = ( ); @@ -231,6 +344,9 @@ CreatedOnToolsVersion = 16.0; LastSwiftMigration = 1600; }; + CE03A11A2CEA8429006884EE = { + CreatedOnToolsVersion = 16.0; + }; }; }; buildConfigurationList = CE03A0852CE90065006884EE /* Build configuration list for PBXProject "vd_agent" */; @@ -250,6 +366,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( + CE03A11A2CEA8429006884EE /* vd_agent */, CE03A0892CE90065006884EE /* spice-vdagentd */, CE03A0DC2CE90CE8006884EE /* spice-vdagent */, ); @@ -257,7 +374,7 @@ /* End PBXProject section */ /* Begin PBXShellScriptBuildPhase section */ - CE03A0F42CE9EDB0006884EE /* ShellScript */ = { + CE03A0F42CE9EDB0006884EE /* Fetch SPICE headers */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -266,6 +383,7 @@ ); inputPaths = ( ); + name = "Fetch SPICE headers"; outputFileListPaths = ( ); outputPaths = ( @@ -276,6 +394,54 @@ shellScript = "set -e\nif [ ! -d \"$SCRIPT_OUTPUT_FILE_0\" ]; then\n URL=\"https://www.spice-space.org/download/releases/spice-protocol-0.14.4.tar.xz\"\n FILE=\"$(basename $URL)\"\n NAME=\"${FILE%.tar.*}\"\n cd /tmp\n curl -L -O \"$URL\"\n tar -xf \"$FILE\"\n mv \"$NAME/spice\" \"$SCRIPT_OUTPUT_FILE_0\"\n rm -rf \"$DIR\" \"$FILE\"\nfi\n"; showEnvVarsInLog = 0; }; + CE03A1222CEA86DC006884EE /* Build universal GLib */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build universal GLib"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/lib/libgio-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libglib-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libgobject-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libgmodule-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libintl.a", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nfor ((i=0; i<$SCRIPT_OUTPUT_FILE_COUNT; i++)); do\n output_var=\"SCRIPT_OUTPUT_FILE_$i\"\n output_path=\"${!output_var}\"\n output_dir=\"$(dirname \"$output_path\")\"\n name=\"$(basename \"$output_path\")\"\n intel_input=\"/usr/local/lib/$name\"\n arm64_input=\"/opt/homebrew/lib/$name\"\n tmp_output=\"/tmp/$name.$$\"\n \n echo \"Creating $output_path\"\n lipo -output \"$tmp_output\" -create \"$intel_input\" \"$arm64_input\"\n if [ ! -d \"$output_dir\" ]; then\n mkdir -p \"$output_dir\"\n fi\n mv \"$tmp_output\" \"$output_path\"\ndone\n"; + showEnvVarsInLog = 0; + }; + CE54BD972CEA914E00FE3930 /* Build universal GLib */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build universal GLib"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/lib/libgio-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libglib-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libgobject-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libgmodule-2.0.a", + "$(DERIVED_FILE_DIR)/lib/libintl.a", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nfor ((i=0; i<$SCRIPT_OUTPUT_FILE_COUNT; i++)); do\n output_var=\"SCRIPT_OUTPUT_FILE_$i\"\n output_path=\"${!output_var}\"\n output_dir=\"$(dirname \"$output_path\")\"\n name=\"$(basename \"$output_path\")\"\n intel_input=\"/usr/local/lib/$name\"\n arm64_input=\"/opt/homebrew/lib/$name\"\n tmp_output=\"/tmp/$name.$$\"\n \n echo \"Creating $output_path\"\n lipo -output \"$tmp_output\" -create \"$intel_input\" \"$arm64_input\"\n if [ ! -d \"$output_dir\" ]; then\n mkdir -p \"$output_dir\"\n fi\n mv \"$tmp_output\" \"$output_path\"\ndone\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -310,6 +476,16 @@ target = CE03A0892CE90065006884EE /* spice-vdagentd */; targetProxy = CE03A0F22CE9ED98006884EE /* PBXContainerItemProxy */; }; + CE03A11F2CEA8442006884EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CE03A0DC2CE90CE8006884EE /* spice-vdagent */; + targetProxy = CE03A11E2CEA8442006884EE /* PBXContainerItemProxy */; + }; + CE03A1212CEA8442006884EE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CE03A0892CE90065006884EE /* spice-vdagentd */; + targetProxy = CE03A1202CEA8442006884EE /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -348,6 +524,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_HARDENED_RUNTIME = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -373,10 +550,10 @@ ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", - /opt/homebrew/lib, + "$(DERIVED_FILE_DIR)/lib", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 15.0; + MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -419,6 +596,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_HARDENED_RUNTIME = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -438,10 +616,10 @@ ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", - /opt/homebrew/lib, + "$(DERIVED_FILE_DIR)/lib", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 15.0; + MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; @@ -451,8 +629,6 @@ CE03A0922CE90065006884EE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_STYLE = Automatic; - LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -460,8 +636,6 @@ CE03A0932CE90065006884EE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_STYLE = Automatic; - LIBRARY_SEARCH_PATHS = "$(inherited)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -470,7 +644,10 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/$(DERIVED_FILE_DIR)/lib", + ); PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OBJC_BRIDGING_HEADER = src/darwin/vdagent.h; @@ -483,7 +660,10 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/$(DERIVED_FILE_DIR)/lib", + ); PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OBJC_BRIDGING_HEADER = src/darwin/vdagent.h; @@ -491,6 +671,22 @@ }; name = Release; }; + CE03A11C2CEA8429006884EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + CE03A11D2CEA8429006884EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -521,6 +717,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + CE03A11B2CEA8429006884EE /* Build configuration list for PBXAggregateTarget "vd_agent" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE03A11C2CEA8429006884EE /* Debug */, + CE03A11D2CEA8429006884EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */