]> git.tdb.fi Git - builder.git/blobdiff - source/androidtools.cpp
Better incpath logic in AndroidCxxCompiler
[builder.git] / source / androidtools.cpp
index b89af6e53d2c23cdc4a5de4c5626f20f7f9ffa07..1042595fd9423802006136791e0ab9cf0587f40a 100644 (file)
@@ -75,20 +75,8 @@ void AndroidNdk::find_toolchain_dir()
 
        const Architecture &native_arch = builder.get_native_arch();
 
-       list<string> tc_archs = list_files(toolchains_dir/use_toolchain/"prebuilt");
-       string use_arch;
-       for(list<string>::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";
+       string use_arch = native_arch.best_match(list_files(tc_archs_dir));
 
        if(use_arch.empty())
                throw runtime_error("No matching toolchain found");
@@ -117,14 +105,10 @@ void AndroidNdk::find_platform_dir()
        if(use_platform.empty())
                throw runtime_error("No applicable platforms found");
 
-       list<string> platform_archs = list_files(platforms_dir/use_platform);
-       string use_arch;
-       for(list<string>::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;
-               }
+       list<string> platform_archs = list_filtered(platforms_dir/use_platform, "^arch-");
+       for(list<string>::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");