X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidtools.cpp;h=eeb6edf532d379948739e5efde7ee3b028c6bc06;hb=cd27d59419ae2bb5947583b0b3dca8bd06ff2975;hp=22a893e7bdcf41aac5912aaa8f0b40a09145f138;hpb=266697cea92aed098fff31c1ddd4a4bfab3a683f;p=builder.git diff --git a/source/androidtools.cpp b/source/androidtools.cpp index 22a893e..eeb6edf 100644 --- a/source/androidtools.cpp +++ b/source/androidtools.cpp @@ -32,12 +32,14 @@ unsigned parse_version(const std::string &version_str) } -AndroidDevKit::AndroidDevKit(Builder &b, const string &type): +AndroidDevKit::AndroidDevKit(Builder &b, const string &type, const FS::Path &default_path): builder(b) { string var = format("ANDROID_%s_ROOT", type); if(const char *value = getenv(var.c_str())) root = value; + else if(!default_path.empty() && FS::exists(default_path)) + root = default_path; else { builder.get_logger().log("problems", format("Android %s not found", type)); @@ -110,13 +112,30 @@ void AndroidSdk::init_api_level(unsigned api) } -AndroidNdk::AndroidNdk(Builder &b, const Architecture &a): - AndroidDevKit(b, "NDK"), +AndroidNdk::AndroidNdk(Builder &b, const Architecture &a, const AndroidSdk &sdk): + AndroidDevKit(b, "NDK", create_default_path(sdk)), architecture(a) { + if(!root.empty()) + { + FS::Path csr = root/"sysroot"; + if(FS::exists(csr)) + { + common_sysroot = csr; + builder.get_logger().log("tools", format("Android NDK common sysroot is %s", common_sysroot)); + } + } + find_toolchain_dir(); } +FS::Path AndroidNdk::create_default_path(const AndroidSdk &sdk) +{ + if(sdk.get_root_dir().empty()) + return FS::Path(); + return sdk.get_root_dir()/"ndk-bundle"; +} + void AndroidNdk::find_toolchain_dir() { if(root.empty()) @@ -196,13 +215,13 @@ void AndroidNdk::init_api_level(unsigned api) } platform_sysroot = platform_archs_dir/("arch-"+use_arch); - builder.get_logger().log("tools", format("Android NDK sysroot is %s", platform_sysroot.str())); + builder.get_logger().log("tools", format("Android NDK platform sysroot is %s", platform_sysroot)); } AndroidTools::AndroidTools(Builder &builder, const Architecture &arch): sdk(builder), - ndk(builder, arch) + ndk(builder, arch, sdk) { const set &sdk_api_levels = sdk.get_supported_api_levels(); const set &ndk_api_levels = ndk.get_supported_api_levels();