commit | ccb50936470af0c6ccf35bc463a0723b637fd1cd | [log] [tgz] |
---|---|---|
author | Dan Albert <[email protected]> | Fri Jul 14 16:32:52 2017 -0700 |
committer | Dan Albert <[email protected]> | Thu Jul 20 12:02:33 2017 -0700 |
tree | 69d3ff2424b68143ff1cf2ffc14b565fd7474511 | |
parent | 86deed10e65bc164b84efca489f194c392505b27 [diff] |
Move a bunch of tests to importable paths. I'm not sure why I've been getting away with this until now, presumably some update got installed, but test_config.py needs to be in an importable path, so fix a bunch of names. Test: nose2 && ./checkbuild.py Bug: None Change-Id: Ia010b5108ea821f9fb14f088828748b22f5e2801
The latest version of this document is available at https://android.googlesource.com/platform/ndk/+/master/README.md.
Note: This document is for developers of the NDK, not developers that use the NDK.
The NDK allows Android application developers to include native code in their Android application packages, compiled as JNI shared libraries.
Both Linux and Windows host binaries are built on Linux machines. Windows host binaries are built via MinGW cross compiler. Systems without a working MinGW compiler can use build/tools/build-mingw64-toolchain.sh
to generate their own and be added to the PATH
for build scripts to discover.
Building binaries for Mac OS X requires at least 10.8.
Target headers and binaries are built on Linux.
The NDK consists of three parts: host binaries, target prebuilts, and others (build system, docs, samples, tests).
toolchains/
contains GCC and Clang toolchains.$TOOLCHAIN/config.mk
contains ARCH and ABIS this toolchain can handle.$TOOLCHAIN/setup.mk
contains toolchain-specific default CFLAGS/LDFLAGS when this toolchain is used.prebuilt/$HOST_TAG
contains build dependencies and additional tools.ndk-depends
, ndk-stack
and ndk-gdb
can also be found here.platforms/android-$VERSION/arch-$ARCH_NAME/
contains headers and libraries for each API level.--sysroot
to one of these directories based on user-specified APP_ABI
and APP_PLATFORM
.sources/cxx-stl/$STL
contains the headers and libraries for the various C++ STLs.prebuilt/android-$ARCH/gdbserver
contains gdbserver.build/
contains the ndk-build system and scripts to rebuild NDK.sources/android
and sources/third_party
contain modules that can be used in apps (cpufeatures, native_app_glue, etc) via $(call import-module, $MODULE)
tests/
Check out the branch master-ndk
repo init -u https://android.googlesource.com/platform/manifest \ -b master-ndk # Googlers, use repo init -u \ persistent-https://android.git.corp.google.com/platform/manifest \ -b master-ndk
Additional Linux Dependencies (available from apt):
Mac OS X also requires Xcode.
Running tests requires that adb
is in your PATH
. This is provided as part of the Android SDK.
$ python checkbuild.py
$ python checkbuild.py --system windows # Or windows64.
checkbuild.py
also accepts a variety of other options to speed up local builds, namely --arch
and --module
.
By default, checkbuild.py
will also package the NDK and run basic tests. To skip the packaging step, use the --no-package
flag. Note that running the tests does require the packaging step.
TODO(danalbert): Make package only easy.