Skip to content
forked from DavidEGrayson/tapi

DavidEGrayson's fork of ributzka/tapi, to fix bit rot.

License

Notifications You must be signed in to change notification settings

PureDarwin/tapi

 
 

Repository files navigation

TAPI

TAPI is a Text-based Application Programming Interface. It replaces the Mach-O Dynamic Library Stub files in Apple's SDKs to reduce SDK size even further.

The text-based dynamic library stub file format (.tbd) is a human readable and editable YAML text file. The TAPI projects uses the LLVM YAML parser to read those files and provides this functionality to the linker as a dynamic library.

Building TAPI

TAPI is a CLANG project and requires the LLVM and CLANG sources to compile.

Create a separate build directory and configure the project with CMake:

cmake -G Ninja -C <src_dir>/tapi/cmake/caches/apple-tapi.cmake -DCMAKE_INSTALL_PREFIX=<install_dir> -DLLVM_ENABLE_PROJECTS="clang;tapi" <src_dir>/llvm

The CMake cache file defines most of the settings for you, such as enabling LTO, etc. It also specifies the distribution components to include all the files needed for TAPI.

To build and install the TAPI project invoke:

ninja install-distribution

in the build directory.

About

DavidEGrayson's fork of ributzka/tapi, to fix bit rot.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.7%
  • CMake 4.3%
  • Python 1.6%
  • Objective-C 0.8%
  • LLVM 0.5%
  • C 0.4%
  • Other 0.7%