# ObjcProvider

A provider for compilation and linking of objc.

## Members

- direct_module_maps
- direct_sources
- dynamic_framework_file
- dynamic_framework_names
- dynamic_framework_paths
- force_load_library
- imported_library
- j2objc_library
- library
- link_inputs
- linkopt
- module_map
- sdk_dylib
- sdk_framework
- source
- static_framework_file
- static_framework_names
- static_framework_paths
- strict_include
- umbrella_header
- weak_sdk_framework

## direct_module_maps

    sequence ObjcProvider.direct_module_maps

Module map files from this target directly (no transitive module maps). Used to enforce proper use of private header files and for Swift compilation.

## direct_sources

    sequence ObjcProvider.direct_sources

All direct source files from this target (no transitive files), including any headers in the 'srcs' attribute.

## dynamic_framework_file

    depset ObjcProvider.dynamic_framework_file

The library files in .framework directories belonging to a dynamically linked framework.

## dynamic_framework_names

    depset ObjcProvider.dynamic_framework_names

Returns all names of dynamic frameworks in this provider.

## dynamic_framework_paths

    depset ObjcProvider.dynamic_framework_paths

Returns all framework paths to dynamic frameworks in this provider.

## force_load_library

    depset ObjcProvider.force_load_library

Libraries to load with -force_load.

## imported_library

    depset ObjcProvider.imported_library

Imported precompiled static libraries (.a files) to be linked into the binary.

## j2objc_library

    depset ObjcProvider.j2objc_library

Static libraries that are built from J2ObjC-translated Java code.

## library

    depset ObjcProvider.library

Library (.a) files compiled by dependencies of the current target.

## link_inputs

    depset ObjcProvider.link_inputs

Link time artifacts from dependencies that do not fall into any other category such as libraries or archives. This catch-all provides a way to add arbitrary data (e.g. Swift AST files) to the linker. The rule that adds these is also responsible to add the necessary linker flags to 'linkopt'.

## linkopt

    depset ObjcProvider.linkopt

Linking options.

## module_map

    depset ObjcProvider.module_map

Clang module maps, used to enforce proper use of private header files.

## sdk_dylib

    depset ObjcProvider.sdk_dylib

Names of SDK .dylib libraries to link with. For instance, 'libz' or 'libarchive'.

## sdk_framework

    depset ObjcProvider.sdk_framework

Names of SDK frameworks to link with (e.g. 'AddressBook', 'QuartzCore').

## source

    depset ObjcProvider.source

All transitive source files.

## static_framework_file

    depset ObjcProvider.static_framework_file

The library files in .framework directories that should be statically linked.

## static_framework_names

    depset ObjcProvider.static_framework_names

Returns all names of static frameworks in this provider.

## static_framework_paths

    depset ObjcProvider.static_framework_paths

Returns all framework paths to static frameworks in this provider.

## strict_include

    depset ObjcProvider.strict_include

Non-propagated include search paths specified with '-I' on the command line. Also known as header search paths (and distinct from user header search paths).

## umbrella_header

    depset ObjcProvider.umbrella_header

Clang umbrella header. Public headers are #included in umbrella headers to be compatible with J2ObjC segmented headers.

## weak_sdk_framework

    depset ObjcProvider.weak_sdk_framework

Names of SDK frameworks to weakly link with. For instance, 'MediaAccessibility'. In difference to regularly linked SDK frameworks, symbols from weakly linked frameworks do not cause an error if they are not present at runtime.