From 2bffce5e72b679f187554bfc00398d7666b3a948 Mon Sep 17 00:00:00 2001 From: Vincent Bénony Date: Wed, 2 Dec 2015 11:46:25 +0100 Subject: IOS: Adds the image asset catalog to the iOS targer --- devtools/create_project/xcode.cpp | 24 +++++++++++++++++++++--- devtools/create_project/xcode.h | 11 +++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) (limited to 'devtools') diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp index ff1ea9984a..6398bae741 100644 --- a/devtools/create_project/xcode.cpp +++ b/devtools/create_project/xcode.cpp @@ -258,7 +258,6 @@ XcodeProvider::XcodeProvider(StringList &global_warnings, std::map\""); properties["toon.dat"] = FileProperty("file", "", "toon.dat", "\"\""); - properties["Images.xcassets"] = FileProperty("Images.xcassets", "", "Images.xcassets", "\"\""); properties["Default.png"] = FileProperty("image.png", "", "Default.png", "\"\""); properties["icon.png"] = FileProperty("image.png", "", "icon.png", "\"\""); properties["icon-72.png"] = FileProperty("image.png", "", "icon-72.png", "\"\""); @@ -659,7 +658,6 @@ void XcodeProvider::setupResourcesBuildPhase() { files_list.push_back("hugo.dat"); files_list.push_back("teenagent.dat"); files_list.push_back("toon.dat"); - files_list.push_back("Images.xcassets"); int order = 0; for (ValueList::iterator file = files_list.begin(); file != files_list.end(); file++) { @@ -719,6 +717,8 @@ void XcodeProvider::setupSourcesBuildPhase() { ADD_SETTING_ORDER_NOVALUE(files, getHash((*file)->id), comment, order++); } + addAdditionalSources(targetName, files, order); + source->properties["files"] = files; source->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue); @@ -791,6 +791,8 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) { ADD_DEFINE(scummvmIOS_defines, "IPHONE"); ADD_DEFINE(scummvmIOS_defines, "IPHONE_OFFICIAL"); ADD_SETTING_LIST(iPhone_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmIOS_defines, SettingsNoQuote|SettingsAsList, 5); + ADD_SETTING(iPhone_Debug, "ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon"); + ADD_SETTING(iPhone_Debug, "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage"); iPhone_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue); iPhone_Debug_Object->properties["buildSettings"] = iPhone_Debug; @@ -961,6 +963,22 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) { } } +void XcodeProvider::setupImageAssetCatalog(const BuildSetup &setup) { + const std::string filename = "Images.xcassets"; + const std::string absoluteCatalogPath = _projectRoot + "/dists/iphone/" + filename; + const std::string id = "FileReference_" + absoluteCatalogPath; + Group *group = touchGroupsForPath(absoluteCatalogPath); + group->addChildFile(filename); + addBuildFile(absoluteCatalogPath, filename, getHash(id), "Image Asset Catalog"); +} + +void XcodeProvider::addAdditionalSources(std::string targetName, Property &files, int &order) { + if (targetIsIOS(targetName)) { + const std::string absoluteCatalogPath = _projectRoot + "/dists/iphone/Images.xcassets"; + ADD_SETTING_ORDER_NOVALUE(files, getHash(absoluteCatalogPath), "Image Asset Catalog", order++); + } +} + ////////////////////////////////////////////////////////////////////////// // Misc ////////////////////////////////////////////////////////////////////////// diff --git a/devtools/create_project/xcode.h b/devtools/create_project/xcode.h index a5f0fc1cf0..a4aedb0fac 100644 --- a/devtools/create_project/xcode.h +++ b/devtools/create_project/xcode.h @@ -244,6 +244,15 @@ private: objectMap[obj->id] = true; } + Object *find(std::string id) { + for (std::vector::iterator it = objects.begin(); it != objects.end(); ++it) { + if ((*it)->id == id) { + return *it; + } + } + return NULL; + } + std::string toString() { std::string output; @@ -320,6 +329,8 @@ private: void setupResourcesBuildPhase(); void setupSourcesBuildPhase(); void setupBuildConfiguration(const BuildSetup &setup); + void setupImageAssetCatalog(const BuildSetup &setup); + void addAdditionalSources(std::string targetName, Property &files, int &order); // Misc void setupDefines(const BuildSetup &setup); // Setup the list of defines to be used on build configurations -- cgit v1.2.3