X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fandroidassetpackagingtool.cpp;h=0ef99a7dca4ea9d150203b0205aaab8a7f18f356;hb=690b9c5f340504517cf6ba8aad0c168dcdff4efa;hp=cca30b806168f615124058e0d028d27530d826d7;hpb=68f084e4ed817da0c25cefa1772cadf97b8cfe5e;p=builder.git diff --git a/source/androidassetpackagingtool.cpp b/source/androidassetpackagingtool.cpp index cca30b8..0ef99a7 100644 --- a/source/androidassetpackagingtool.cpp +++ b/source/androidassetpackagingtool.cpp @@ -14,18 +14,26 @@ AndroidAssetPackagingTool::AndroidAssetPackagingTool(Builder &b, const AndroidSd Tool(b, "AAPT"), sdk(s) { - set_command((sdk.get_build_tools_dir()/"aapt").str()); + if(sdk.get_root_dir().empty()) + problems.push_back("Android SDK not found"); + else if(sdk.get_build_tools_dir().empty()) + problems.push_back("Android build-tools not found"); + else + set_command((sdk.get_build_tools_dir()/"aapt").str()); + + if(sdk.get_platform_jar().empty()) + problems.push_back("Android platform not found"); } Target *AndroidAssetPackagingTool::create_target(const list &sources, const string &) { AndroidManifestFile *manifest = 0; list resources; - for(list::const_iterator i=sources.begin(); i!=sources.end(); ++i) + for(Target *s: sources) { - if(AndroidManifestFile *m = dynamic_cast(*i)) + if(AndroidManifestFile *m = dynamic_cast(s)) manifest = m; - else if(FileTarget *f = dynamic_cast(*i)) + else if(FileTarget *f = dynamic_cast(s)) resources.push_back(f); } @@ -53,12 +61,11 @@ Task *AndroidAssetPackagingTool::run(const Target &tgt) const argv.push_back("-F"); argv.push_back(FS::relative(res.get_path(), work_dir).str()); - const Target::Dependencies &depends = res.get_dependencies(); list resource_dirs; - for(Target::Dependencies::const_iterator i=depends.begin(); i!=depends.end(); ++i) + for(Target *d: res.get_dependencies()) { - FileTarget *file = dynamic_cast(*i); - Target *real = (*i)->get_real_target(); + FileTarget *file = dynamic_cast(d); + Target *real = d->get_real_target(); if(dynamic_cast(real)) { @@ -73,11 +80,11 @@ Task *AndroidAssetPackagingTool::run(const Target &tgt) const } set seen_dirs; - for(list::const_iterator i=resource_dirs.begin(); i!=resource_dirs.end(); ++i) - if(seen_dirs.insert(i->str()).second) + for(const FS::Path &d: resource_dirs) + if(seen_dirs.insert(d.str()).second) { argv.push_back("-S"); - argv.push_back(FS::relative(*i, work_dir).str()); + argv.push_back(FS::relative(d, work_dir).str()); } return new ExternalTask(argv, work_dir);