ndk_library()
ndk_library()
is used to define a set of C/C++ files, an Android.mk
and an Application.mk
file that are used by the NDK's ndk-build
tool to generate one or more shared objects.Arguments
name
(required) #The short name for this build target.
srcs
(defaults to[**/*.{cpp,c,cc,cxx,h,hpp,mk}]
) #The set of files to compile for this rule. If not provided,
buck
assumes that all files with the following extensions are part of the build:c, cpp, cc, cxx, h, hpp, mk
.deps
(defaults to[]
) #List of build targets to build before this rule.
flags
(defaults to[]
) #Array of strings passed verbatim to
ndk-build
. Normally this is not needed, but in some cases you may want to put something here. For example, this can be used to build the libraries in debug mode (NDK_DEBUG=1
) or set the number of jobs spawned byndk-build
(by default, the same as the number of cores).is_asset
(defaults toFalse
) #Normally native shared objects end up in a directory in the root of the APK named
lib/
. If this parameter is set toTrue
, then these objects are placed inassets/lib/
. Placing shared objects in a non-standard location prevents Android from extracting them to the device's internal storage.visibility
(defaults to[]
) #List of build target patterns that identify the build rules that can include this rule as a dependency, for example, by listing it in their
deps
orexported_deps
attributes. For more information, see visibility.licenses
(defaults to[]
) #Set of license files for this library. To get the list of license files for a given build rule and all of its dependencies, you can use
buck query
.labels
(defaults to[]
) #Set of arbitrary strings which allow you to annotate a build rule with tags that can be searched for over an entire dependency tree using
buck query attrfilter()
.
An android_binary()
that includes this library will aggregate all of the native shared objects into a directory in the root of the APK named lib/
or assets/lib/
.
Unlike the default invocation of ndk-build
, buck
will put all intermediate files and build output into a subdirectory under buck-out/gen
.