.. _link_apple_framework: How to link with Apple Frameworks ================================= It is common in OSx that your conan package needs to link with a complete Apple framework, and, of course, you want to propagate this information to all projects/libraries that uses your package. With regular libraries we use ``self.cpp_info.libs`` object to append to it all the libraries: .. code-block:: python def package_info(self): self.cpp_info.libs = ["SDL2"] self.cpp_info.libs.append("OpenGL32") With frameworks we need to declare the "-framework flag" as a linker flag: .. code-block:: python def package_info(self): self.cpp_info.libs = ["SDL2"] self.cpp_info.exelinkflags.append("-framework Carbon") self.cpp_info.exelinkflags.append("-framework CoreAudio") self.cpp_info.exelinkflags.append("-framework Security") self.cpp_info.exelinkflags.append("-framework IOKit") self.cpp_info.sharedlinkflags = self.cpp_info.exelinkflags In the previous example we are using ``self.cpp_info.exelinkflags``. If we are using CMake to consume this package, it will only link those frameworks if we are building an executable and ``sharedlinkflags`` will only apply if we are building a shared library. If we are not using CMake to consume this package ``sharedlinkflags`` and ``exelinkflags`` are used indistinctly. In the example above we are assigning in the last line ``sharedlinkflags`` with ``exelinkflags``, so no matter what the consumer will build, it will indicate to the linker to link with the specified frameworks.