Scripts for building OpenDDS against various combinations of Android NDK and API versions on GitHub Actions. Also can be used to build OpenDDS for Android locally on a Linux or macOS machine.
M
= doc_group_master
6
= doc_group_ace6_tao2
16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
r23b | M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
M ,6 |
r22b | M |
- | - | - | - | - | - | - | - | - | - | - | M |
r20b | M |
- | - | - | - | - | - | - | - | - | - | M |
- |
r19c | M ,6 |
- | - | - | - | - | - | - | - | - | M ,6 |
- | - |
r18b | M ,6 |
- | - | - | - | - | - | - | - | - | M ,6 |
- | - |
r12b | 6 |
- | - | - | - | - | - | 6 |
- | - | - | - | - |
The matrix defines the combinations of Android NDK revisions, API levels, and
other information used for the builds. To change the matrix, edit the early
parts of matrix.py
and run the script with Python 3. It will update
.github/workflows/matrix.yml
, maybe default.settings.sh
, and README.md
(this file).
These instructions are for doing a single build. Doing multiple builds in a row with the same workspace is possible, but will require figuring out what should be kept and what should be cleaned up. There is no script here that will do that for you unfortunately.
In addition to standard Unix tools and the normal requirements of OpenDDS on Linux or macOS, the following programs are needed:
- CMake
- Python 3
md5sum
- A Java Development Kit (If building with OpenDDS with Java)
If using Linux, all of these are probably already installed or can be installed easily from the package manager. If using Homebrew on macOS, these can be installed using:
brew install cmake python3 md5sha1sum openjdk
Note that if using Homebrew's OpenJDK, it will not put itself on the $PATH
,
so you will have to do that yourself before running these scripts.
- Copy
default.settings.sh
tosettings.sh
and modify it as you see fit. You can also set the environment variables in this file instead. See next section about that. - Run
run.sh
.
That's it, assuming nothing goes wrong.
There are several environment variables that are the normal settings for the
build. These all can be found in default.settings.sh
. The first three: ndk
,
arch
, and api
are required. The rest are optional.
In addition to those, what ACE/TAO and OpenDDS it clones can optionally be
controlled using ACE_TAO_REPO
, ACE_TAO_BRANCH
, OPENDDS_REPO
, and
OPENDDS_BRANCH
.
By running this you are implicitly agreeing to the licences for the Android SDK and the Android NDK, as well as OpenDDS, ACE/TAO, as well as anything else.