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/`.