From dc7b04e85c797b964b6a33ea94df909b1ec0679e Mon Sep 17 00:00:00 2001 From: ggallon Date: Tue, 11 Aug 2026 15:48:25 +0200 Subject: [PATCH] docs: state that it builds on Intel, drop the toolchain commentary The build section claimed 'expect this not to build as-is on a modern Mac'. That is wrong: it builds and runs on an Intel Mac, per the maintainer. Replaced with that, attributed, since CI here only parses the sources and cannot confirm it. The real portability limit is narrower and now stated as such: the vendored libusb binaries are x86_64 only, so Apple Silicon needs them rebuilt or replaced before it links. Verified with lipo -info. Also corrects the project format note. It reads objectVersion 46, not the Xcode 3 era format claimed here - the Xcode 3 artefacts were the .pbxuser and .mode1v3 files, which were removed when the repository was reorganised. --- README.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 844fb41..4a9f015 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ captured geometry to mesh files. ├── THIRD-PARTY-LICENSES.md Licensing of every vendored dependency — read before redistributing ├── notes.txt Original author's notes (2010), verbatim └── src/ - ├── cocoaKinect.xcodeproj/ Xcode project (Xcode 3 era, SDK 10.6) + ├── cocoaKinect.xcodeproj/ Project file (objectVersion 46, SDKROOT macosx10.6) ├── AppDelegate.{h,m} Kinect device handling, stream callbacks, mesh export ├── GLView.{h,m} OpenGL view — rendering of points/mesh/2D modes ├── GLProgram.{h,m} GLSL shader loading and linking helper @@ -47,20 +47,23 @@ captured geometry to mesh files. └── COPYING AUTHORS LGPL-2.1 text and copyright holders ``` -The vendored dependencies stay inside `src/` because the Xcode project references -them relative to `SOURCE_ROOT` (`HEADER_SEARCH_PATHS`, `LIBRARY_SEARCH_PATHS`). +The vendored dependencies stay inside `src/` because the project references them +relative to `SOURCE_ROOT` (`HEADER_SEARCH_PATHS`, `LIBRARY_SEARCH_PATHS`). Moving them would break the build. ## Building -Open `src/cocoaKinect.xcodeproj` in Xcode and build the `cocoaKinect` target. +Open `src/cocoaKinect.xcodeproj` and build the `cocoaKinect` target. -**Expect this not to build as-is on a modern Mac.** The project targets `macosx10.6`, -uses the Xcode 3 project format, links a 2010 32/64-bit `libusb-1.0` binary, and relies -on the legacy OpenGL and Objective-C garbage-collection era toolchain. Treat it as a -historical reference; getting it running today means retargeting the SDK, rebuilding -`libusb` for `arm64`, and replacing the vendored `libfreenect` snapshot with a current -one. +**It builds and runs on an Intel Mac.** That is the maintainer's report from an actual +machine — this repository's CI only parses the sources, so nothing here independently +confirms it. + +On Apple Silicon it will not link as-is: the vendored `libusb-1.0` binaries are x86_64 +only — `lipo -info` reports a non-fat x86_64 `.dylib` and `.a` — so they have to be +rebuilt or replaced with a universal build first. The project also declares +`SDKROOT = macosx10.6` and uses the legacy fixed-function OpenGL pipeline, deprecated +but still functional on current systems. A `Copy Frameworks` build phase stages `libusb` into `Contents/Frameworks/libusb-1.0`, and a run script rewrites the install name: @@ -77,7 +80,7 @@ From the original author's notes: - **libfreenect** — copy the `include` and `lib` folders from the `c` folder of the upstream git project into `src/kinect/`. Files may need to be added to or removed - from the Xcode project as upstream changes. + from the project as upstream changes. - **libusb** — after the usual configure / make / install, copy the files from `/usr/local/lib` and `/usr/local/include` into `src/libusb-1.0/`.