X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidtools.cpp;h=13ebc2530556413b97afd0fc57ab31ccc35eacd8;hb=43a748b89ce120b9f837f8a49c613680011653b3;hp=b89af6e53d2c23cdc4a5de4c5626f20f7f9ffa07;hpb=cee450d7cc932811b0d119a132bc9981eb480584;p=builder.git diff --git a/source/androidtools.cpp b/source/androidtools.cpp index b89af6e..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,30 +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) - { - string tca = *i; - for(string::iterator j=tca.begin(); j!=tca.end(); ++j) - if(*j=='_') - *j = '-'; - if(native_arch.match_name(tca)) - { - 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; @@ -117,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())); }