Per-target description: arch path layout, toolchain factory, extra CFLAGS, expected nm symbol.
@type t() :: %MobDev.Release.OpenSSL.CryptoNif.Target{ arch_dir: String.t(), default_prefix: Path.t(), extra_cflags: [String.t()], id: :android_arm64 | :android_arm32 | :ios_sim | :ios_device, nm_symbol: String.t(), tools_fn: (keyword() -> tools()) }
@type tools() :: %{ cc: [String.t()], ar: [String.t()], ranlib: [String.t()], nm: [String.t()] }