[Scummvm-cvs-logs] scummvm master -> 749c82b95152b61289fff6fe30086924eace59d9

bluegr md5 at scummvm.org
Wed Dec 28 04:17:40 CET 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
38c6865ab1 CREATE_PROJECT: Silence warnings 4510 and 4610 in the kyra engine
749c82b951 CREATE_PROJECT: Add a hack to handle the KYRARPG_COMMON_OBJ variable in the module.mk file of the kyra engine


Commit: 38c6865ab1d412c12aa367a108e5fd2d4c64882c
    https://github.com/scummvm/scummvm/commit/38c6865ab1d412c12aa367a108e5fd2d4c64882c
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-27T19:16:54-08:00

Commit Message:
CREATE_PROJECT: Silence warnings 4510 and 4610 in the kyra engine

Changed paths:
    devtools/create_project/create_project.cpp



diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 527136c..572d0bc 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -539,6 +539,8 @@ int main(int argc, char *argv[]) {
 		projectWarnings["lure"].push_back("4355");
 
 		projectWarnings["kyra"].push_back("4355");
+		projectWarnings["kyra"].push_back("4510");
+		projectWarnings["kyra"].push_back("4610");
 
 		projectWarnings["m4"].push_back("4355");
 


Commit: 749c82b95152b61289fff6fe30086924eace59d9
    https://github.com/scummvm/scummvm/commit/749c82b95152b61289fff6fe30086924eace59d9
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-27T19:16:55-08:00

Commit Message:
CREATE_PROJECT: Add a hack to handle the KYRARPG_COMMON_OBJ variable in the module.mk file of the kyra engine

Changed paths:
    devtools/create_project/create_project.cpp



diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 572d0bc..775e67c 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -1344,6 +1344,8 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
 	std::stack<bool> shouldInclude;
 	shouldInclude.push(true);
 
+	StringList filesInVariableList;
+
 	bool hadModule = false;
 	std::string line;
 	for (;;) {
@@ -1397,6 +1399,30 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
 					std::getline(moduleMk, line);
 					tokens = tokenize(line);
 					i = tokens.begin();
+				} else if (*i == "$(KYRARPG_COMMON_OBJ)") {
+					// HACK to fix EOB/LOL compilation in the kyra engine:
+					// replace the variable name with the stored files.
+					// This assumes that the file list has already been defined.
+					if (filesInVariableList.size() == 0)
+						error("$(KYRARPG_COMMON_OBJ) found, but the variable hasn't been set before it");
+					// Construct file list and replace the variable
+					for (StringList::iterator j = filesInVariableList.begin(); j != filesInVariableList.end(); ++j) {
+						const std::string filename = *j;
+
+						if (shouldInclude.top()) {
+							// In case we should include a file, we need to make
+							// sure it is not in the exclude list already. If it
+							// is we just drop it from the exclude list.
+							excludeList.remove(filename);
+
+							includeList.push_back(filename);
+						} else if (std::find(includeList.begin(), includeList.end(), filename) == includeList.end()) {
+							// We only add the file to the exclude list in case it
+							// has not yet been added to the include list.
+							excludeList.push_back(filename);
+						}
+					}
+					++i;
 				} else {
 					const std::string filename = moduleDir + "/" + unifyPath(*i);
 
@@ -1415,6 +1441,29 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
 					++i;
 				}
 			}
+		} else if (*i == "KYRARPG_COMMON_OBJ") {
+			// HACK to fix EOB/LOL compilation in the kyra engine: add the
+			// files defined in the KYRARPG_COMMON_OBJ variable in a list
+			if (tokens.size() < 3)
+				error("Malformed KYRARPG_COMMON_OBJ definition in " + moduleMkFile);
+			++i;
+
+			if (*i != ":=" && *i != "+=" && *i != "=")
+				error("Malformed KYRARPG_COMMON_OBJ definition in " + moduleMkFile);
+
+			++i;
+
+			while (i != tokens.end()) {
+				if (*i == "\\") {
+					std::getline(moduleMk, line);
+					tokens = tokenize(line);
+					i = tokens.begin();
+				} else {
+					const std::string filename = moduleDir + "/" + unifyPath(*i);
+					filesInVariableList.push_back(filename);
+					++i;
+				}
+			}
 		} else if (*i == "ifdef") {
 			if (tokens.size() < 2)
 				error("Malformed ifdef in " + moduleMkFile);






More information about the Scummvm-git-logs mailing list