X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidtools.cpp;h=13ebc2530556413b97afd0fc57ab31ccc35eacd8;hb=43a748b89ce120b9f837f8a49c613680011653b3;hp=c0fe6d1557e5f3b9beb92f510d60e7e9b86eaf28;hpb=276a7c7c046a8f1b692cecbd53f17595ed23264d;p=builder.git diff --git a/source/androidtools.cpp b/source/androidtools.cpp index c0fe6d1..13ebc25 100644 --- a/source/androidtools.cpp +++ b/source/androidtools.cpp @@ -37,6 +37,7 @@ AndroidNdk::AndroidNdk(Builder &b, const Architecture &a): void AndroidNdk::find_toolchain_dir() { FS::Path toolchains_dir = ndk_root/"toolchains"; + builder.get_logger().log("files", format("Traversing %s", toolchains_dir.str())); list toolchains = list_files(toolchains_dir); string prefix = architecture.get_cross_prefix()+"-"; @@ -75,24 +76,21 @@ void AndroidNdk::find_toolchain_dir() const Architecture &native_arch = builder.get_native_arch(); - list tc_archs = list_files(toolchains_dir/use_toolchain/"prebuilt"); - string use_arch; - for(list::const_iterator i=tc_archs.begin(); i!=tc_archs.end(); ++i) - if(native_arch.match_name(*i)) - { - use_arch = *i; - break; - } + FS::Path tc_archs_dir = toolchains_dir/use_toolchain/"prebuilt"; + builder.get_logger().log("files", format("Traversing %s", tc_archs_dir.str())); + string use_arch = native_arch.best_match(list_files(tc_archs_dir)); if(use_arch.empty()) throw runtime_error("No matching toolchain found"); bin_dir = toolchains_dir/use_toolchain/"prebuilt"/use_arch/"bin"; + builder.get_logger().log("tools", format("Android toolchain binaries are in %s", bin_dir.str())); } void AndroidNdk::find_platform_dir() { FS::Path platforms_dir = ndk_root/"platforms"; + builder.get_logger().log("files", format("Traversing %s", platforms_dir.str())); list platforms = list_files(platforms_dir); string use_platform; @@ -111,17 +109,16 @@ void AndroidNdk::find_platform_dir() if(use_platform.empty()) throw runtime_error("No applicable platforms found"); - list platform_archs = list_files(platforms_dir/use_platform); - string use_arch; - for(list::const_iterator i=platform_archs.begin(); i!=platform_archs.end(); ++i) - if(!i->compare(0, 5, "arch-") && architecture.match_name(i->substr(5))) - { - use_arch = *i; - break; - } + FS::Path platform_archs_dir = platforms_dir/use_platform; + builder.get_logger().log("files", format("Traversing %s", platform_archs_dir.str())); + list platform_archs = list_filtered(platform_archs_dir, "^arch-"); + for(list::iterator i=platform_archs.begin(); i!=platform_archs.end(); ++i) + i->erase(0, 5); + string use_arch = architecture.best_match(platform_archs); if(use_arch.empty()) throw runtime_error("No matching platform found"); platform_sysroot = platforms_dir/use_platform/use_arch; + builder.get_logger().log("tools", format("Android platform sysroot is %s", platform_sysroot.str())); }