Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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/`.

Expand Down
Loading