rpav / c2ffi

Clang-based FFI wrapper generator
GNU Lesser General Public License v2.1
234 stars 39 forks source link

Add --frameworks, --sys-frameworks options #85

Open skissane opened 3 years ago

skissane commented 3 years ago

These can be used to specify the user and system framework directories. Frameworks are primarily a macOS concept (originally inherited from NeXTSTEP), so these options are likely to be mainly useful on macOS (and other closely related platforms such as iOS).

The most common use case is if you want to process headers for system frameworks provided with macOS. In that case you want to pass something like this:

--sys-frameworks $(xcrun --show-sdk-path)/System/Library/Frameworks

--frameworks is equivalent to the -F clang option.

--sys-frameworks is equivalent to the -iframework clang option.

Note originally I called these options with the singular framework not the plural frameworks. I switched to the plural because it makes clearer what they actually do. They don't take the directory of a single framework. They take a Frameworks directory which has *.framework subdirectories. Hence the plural – the Frameworks directory can (and usual will) contain more than one framework.

skissane commented 3 years ago

Failure of build has nothing to do with contents of this PR. Build only fails because of unrelated ArchLinux CI regression fixed by #86