You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Technical fixes addressing all Joevt's feedback in PR #4:
• Fixed sw_vers typo in CI workflow (swvers → sw_vers)
• Added conditional compilation for kIOMainPortDefault/kIOMasterPortDefault
- kIOMainPortDefault for macOS 10.12+ SDKs
- kIOMasterPortDefault for older SDK compatibility
• Restored legacy macOS compatibility (IOConnectMethodStructureIStructureO)
- Preserves Mac OS X 10.4+ support
- Maintains ppc, ppc64, i386 architecture compatibility
• Fixed Makefile architecture and SDK issues
- Restored missing version variables (is10_4 through is10_8)
- Added arm64 support for universal binaries (Big Sur+)
- Restored important makefile comment
• Resolved duplicate postinstall scripts
- Both scripts now use /Library/Extensions for modern macOS
- Ensures SIP compatibility
All changes maintain backward compatibility while adding Apple Silicon support.
Build tested successfully on macOS 15.6 ARM64 with universal binaries.
# Choose appropriate Xcode project based on macOS version
38
+
if [ "$MACOS_VERSION" -ge 15 ]; then
39
+
echo "Using modern DirectHW.xcodeproj for macOS $MACOS_VERSION"
40
+
XCODE_PROJ="DirectHW.xcodeproj"
41
+
BUILD_DIR="build/build15"
42
+
elif [ "$MACOS_VERSION" -ge 11 ]; then
43
+
echo "Using modern DirectHW.xcodeproj for macOS $MACOS_VERSION"
44
+
XCODE_PROJ="DirectHW.xcodeproj"
45
+
BUILD_DIR="build/build11"
46
+
else
47
+
echo "Using legacy DirectHW10.6.xcodeproj for macOS $MACOS_VERSION"
48
+
XCODE_PROJ="DirectHW10.6.xcodeproj"
49
+
BUILD_DIR="build/build10.6"
50
+
fi
51
+
52
+
echo "=== Starting Xcode Build with $XCODE_PROJ ==="
53
+
xcodebuild -alltargets -project "$XCODE_PROJ" \
36
54
CODE_SIGN_IDENTITY="" \
37
55
CODE_SIGNING_REQUIRED=NO \
38
56
CODE_SIGNING_ALLOWED=NO \
39
-
-verbose || echo "Xcode build failed - this is expected with Xcode 16.4 and older SDKs"
57
+
SYMROOT="$BUILD_DIR" \
58
+
-verbose || echo "Xcode build failed - this is expected with modern Xcode and older projects"
40
59
41
60
# Check if build succeeded
42
-
if [ -d "build/buildlatest/Release" ]; then
43
-
echo "✅ Build succeeded - found build artifacts"
44
-
ls -la build/buildlatest/Release/
61
+
if [ -d "$BUILD_DIR/Release" ] && [ -f "$BUILD_DIR/Release/libDirectHW.dylib" ]; then
62
+
echo "✅ Xcode build succeeded"
63
+
ls -la "$BUILD_DIR/Release/"
45
64
else
46
-
echo "❌ Build failed - no artifacts found"
47
-
echo "This is likely due to Xcode 16.4 SDK compatibility issues"
48
-
echo "For production builds, use Xcode 15.x or earlier"
65
+
echo "❌ Xcode build failed or incomplete - will use make libs fallback"
49
66
fi
50
67
51
68
- name: libs
52
69
working-directory: ./DirectHW
53
-
run: make libs
70
+
run: make main
54
71
55
72
- name: Create Package
56
73
working-directory: ./DirectHW
@@ -61,8 +78,9 @@ jobs:
61
78
BUILD_ROOT=""
62
79
BUILD_SUCCESS=false
63
80
64
-
for BUILD_DIR in "build/buildlatest/Release" "build/Release" "build/*/Release"; do
65
-
if [ -d "./$BUILD_DIR" ]; then
81
+
# Check version-specific build directories first
82
+
for BUILD_DIR in "build/build15/Release" "build/build11/Release" "build/buildlatest/Release" "build/Release" "build/*/Release"; do
83
+
if [ -d "./$BUILD_DIR" ] && [ -f "./$BUILD_DIR/libDirectHW.dylib" ]; then
66
84
BUILD_ROOT="./$BUILD_DIR"
67
85
echo "✅ Found build directory: $BUILD_ROOT"
68
86
BUILD_SUCCESS=true
@@ -187,13 +205,22 @@ jobs:
187
205
188
206
# Copy build artifacts - check multiple possible build directories
189
207
ARTIFACTS_FOUND=false
190
-
for BUILD_DIR in "DirectHW/build/buildlatest/Release" "DirectHW/build/Release" "DirectHW/build/*/Release"; do
208
+
for BUILD_DIR in "DirectHW/build/build15/Release" "DirectHW/build/build11/Release" "DirectHW/build/buildlatest/Release" "DirectHW/build/Release" "DirectHW/build/*/Release"; do
191
209
if [ -d "$BUILD_DIR" ]; then
192
210
echo "📁 Found build directory for DMG: $BUILD_DIR"
0 commit comments