[Scummvm-git-logs] scummvm master -> b58abb64d79ec8ece5157de4d4811479697b54ce

SupSuper supsuper at gmail.com
Tue Nov 3 07:10:18 UTC 2020


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:
803d8f1ba5 CREATE_PROJECT: Put detection in a separate project
b58abb64d7 CREATE_PROJECT: Only create detection project if feature is enabled


Commit: 803d8f1ba5edec1515ef7ff1455052fbf1d7fd23
    https://github.com/scummvm/scummvm/commit/803d8f1ba5edec1515ef7ff1455052fbf1d7fd23
Author: Henrik "Henke37" Andersson (henke at henke37.cjb.net)
Date: 2020-11-03T07:10:13Z

Commit Message:
CREATE_PROJECT: Put detection in a separate project

Keeps the main project clean and is a prerequisite for loading detection as a plugin

Changed paths:
    devtools/create_project/codeblocks.cpp
    devtools/create_project/create_project.cpp
    devtools/create_project/create_project.h
    devtools/create_project/msbuild.cpp
    devtools/create_project/msvc.cpp
    devtools/create_project/visualstudio.cpp


diff --git a/devtools/create_project/codeblocks.cpp b/devtools/create_project/codeblocks.cpp
index 4d00d31bc1..ff596bf53d 100644
--- a/devtools/create_project/codeblocks.cpp
+++ b/devtools/create_project/codeblocks.cpp
@@ -45,7 +45,7 @@ void CodeBlocksProvider::createWorkspace(const BuildSetup &setup) {
 	writeReferences(setup, workspace);
 
 	// Note we assume that the UUID map only includes UUIDs for enabled engines!
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		if (i->first == setup.projectName)
 			continue;
 
@@ -153,7 +153,7 @@ void CodeBlocksProvider::createProjectFile(const std::string &name, const std::s
 		for (StringList::const_iterator i = libraries.begin(); i != libraries.end(); ++i)
 			project << "\t\t\t\t\t<Add library=\"" << (*i) << "\" />\n";
 
-		for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+		for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 			if (i->first == setup.projectName)
 				continue;
 
@@ -277,7 +277,7 @@ void CodeBlocksProvider::writeFileListToProject(const FileNode &dir, std::ofstre
 void CodeBlocksProvider::writeReferences(const BuildSetup &setup, std::ofstream &output) {
 	output << "\t\t<Project filename=\"" << setup.projectName << ".cbp\" active=\"1\">\n";
 
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		if (i->first == " << PROJECT_NAME << ")
 			continue;
 
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index b2f539526d..4db92312f5 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -1500,22 +1500,26 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 	std::string targetFolder;
 
 	if (setup.devTools) {
-		_uuidMap = createToolsUUIDMap();
+		_engineUuidMap = createToolsUUIDMap();
 		targetFolder = "/devtools/";
 	} else if (!setup.tests) {
-		_uuidMap = createUUIDMap(setup);
+		_engineUuidMap = createUUIDMap(setup);
 		targetFolder = "/engines/";
 	}
 
+	_allProjUuidMap = _engineUuidMap;
+
 	// We also need to add the UUID of the main project file.
-	const std::string svmUUID = _uuidMap[setup.projectName] = createUUID(setup.projectName);
+	const std::string svmUUID = _allProjUuidMap[setup.projectName] = createUUID(setup.projectName);
+	// Add the uuid of the detection project
+	const std::string detUUID = _allProjUuidMap["scummvm-detection"] = createUUID("scummvm-detection");
 
 	createWorkspace(setup);
 
 	StringList in, ex;
 
 	// Create project files
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _engineUuidMap.begin(); i != _engineUuidMap.end(); ++i) {
 		if (i->first == setup.projectName)
 			continue;
 		// Retain the files between engines if we're creating a single project
@@ -1528,6 +1532,28 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 		createProjectFile(i->first, i->second, setup, moduleDir, in, ex);
 	}
 
+	// Create engine-detection submodules.
+	{
+		in.clear();
+		ex.clear();
+		std::vector<std::string> detectionModuleDirs;
+		detectionModuleDirs.reserve(setup.engines.size());
+
+		for (EngineDescList::const_iterator i = setup.engines.begin(), end = setup.engines.end(); i != end; ++i) {
+			// We ignore all sub engines here because they require no special handling.
+			if (isSubEngine(i->name, setup.engines)) {
+				continue;
+			}
+			detectionModuleDirs.push_back(setup.srcDir + "/engines/" + i->name);
+		}
+
+		for (std::string &str : detectionModuleDirs) {
+			createModuleList(str, setup.defines, setup.testDirs, in, ex, true);
+		}
+
+		createProjectFile("Detection", detUUID, setup, setup.srcDir, in, ex);
+	}
+
 	if (setup.tests) {
 		// Create the main project file.
 		in.clear();
@@ -1561,24 +1587,6 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 		createModuleList(setup.srcDir + "/image", setup.defines, setup.testDirs, in, ex);
 		createModuleList(setup.srcDir + "/math", setup.defines, setup.testDirs, in, ex);
 
-		// Create engine-detection submodules.
-		if (setup.useStaticDetection) {
-			std::vector<std::string> detectionModuleDirs;
-			detectionModuleDirs.reserve(setup.engines.size());
-
-			for (EngineDescList::const_iterator i = setup.engines.begin(), end = setup.engines.end(); i != end; ++i) {
-				// We ignore all sub engines here because they require no special handling.
-				if (isSubEngine(i->name, setup.engines)) {
-					continue;
-				}
-				detectionModuleDirs.push_back(setup.srcDir + "/engines/" + i->name);
-			}
-
-			for (std::string &str : detectionModuleDirs) {
-				createModuleList(str, setup.defines, setup.testDirs, in, ex, true);
-			}
-		}
-
 		// Resource files
 		addResourceFiles(setup, in, ex);
 
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index 1c4aaac7ec..b40509648b 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -482,7 +482,8 @@ protected:
 	StringList &_globalWarnings;                         ///< Global warnings
 	std::map<std::string, StringList> &_projectWarnings; ///< Per-project warnings
 
-	UUIDMap _uuidMap; ///< List of (project name, UUID) pairs
+	UUIDMap _engineUuidMap; ///< List of (project name, UUID) pairs
+	UUIDMap _allProjUuidMap;
 
 	/**
 	 *  Create workspace/solution file
diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp
index efe91d2586..421a8f6afb 100644
--- a/devtools/create_project/msbuild.cpp
+++ b/devtools/create_project/msbuild.cpp
@@ -255,7 +255,7 @@ void MSBuildProvider::outputFilter(std::ostream &filters, const FileEntries &fil
 void MSBuildProvider::writeReferences(const BuildSetup &setup, std::ofstream &output) {
 	output << "\t<ItemGroup>\n";
 
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		if (i->first == setup.projectName)
 			continue;
 
diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp
index 6719f0c4b2..b7aa183718 100644
--- a/devtools/create_project/msvc.cpp
+++ b/devtools/create_project/msvc.cpp
@@ -144,8 +144,8 @@ std::string MSVCProvider::outputLibraryDependencies(const BuildSetup &setup, boo
 }
 
 void MSVCProvider::createWorkspace(const BuildSetup &setup) {
-	UUIDMap::const_iterator svmUUID = _uuidMap.find(setup.projectName);
-	if (svmUUID == _uuidMap.end())
+	UUIDMap::const_iterator svmUUID = _allProjUuidMap.find(setup.projectName);
+	if (svmUUID == _allProjUuidMap.end())
 		error("No UUID for \"" + setup.projectName + "\" project created");
 
 	const std::string svmProjectUUID = svmUUID->second;
@@ -174,7 +174,7 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
 	}
 
 	// Note we assume that the UUID map only includes UUIDs for enabled engines!
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		if (i->first == setup.projectName)
 			continue;
 
@@ -195,7 +195,7 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
 	solution << "\tEndGlobalSection\n"
 	            "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n";
 
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		for (std::list<MSVC_Architecture>::const_iterator arch = _archs.begin(); arch != _archs.end(); ++arch) {
 			solution << "\t\t{" << i->second << "}.Debug|" << getMSVCConfigName(*arch) << ".ActiveCfg = Debug|" << getMSVCConfigName(*arch) << "\n"
 			         << "\t\t{" << i->second << "}.Debug|" << getMSVCConfigName(*arch) << ".Build.0 = Debug|" << getMSVCConfigName(*arch) << "\n"
diff --git a/devtools/create_project/visualstudio.cpp b/devtools/create_project/visualstudio.cpp
index 9ce8b66a87..36c086bc91 100644
--- a/devtools/create_project/visualstudio.cpp
+++ b/devtools/create_project/visualstudio.cpp
@@ -175,7 +175,7 @@ void VisualStudioProvider::outputBuildEvents(std::ostream &project, const BuildS
 void VisualStudioProvider::writeReferences(const BuildSetup &setup, std::ofstream &output) {
 	output << "\tProjectSection(ProjectDependencies) = postProject\n";
 
-	for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) {
+	for (UUIDMap::const_iterator i = _allProjUuidMap.begin(); i != _allProjUuidMap.end(); ++i) {
 		if (i->first == setup.projectName)
 			continue;
 


Commit: b58abb64d79ec8ece5157de4d4811479697b54ce
    https://github.com/scummvm/scummvm/commit/b58abb64d79ec8ece5157de4d4811479697b54ce
Author: SupSuper (supsuper at gmail.com)
Date: 2020-11-03T07:10:13Z

Commit Message:
CREATE_PROJECT: Only create detection project if feature is enabled

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 4db92312f5..6730bd603c 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -1512,7 +1512,11 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 	// We also need to add the UUID of the main project file.
 	const std::string svmUUID = _allProjUuidMap[setup.projectName] = createUUID(setup.projectName);
 	// Add the uuid of the detection project
-	const std::string detUUID = _allProjUuidMap["scummvm-detection"] = createUUID("scummvm-detection");
+	const std::string detProject = setup.projectName + "-detection";
+	const std::string detUUID = createUUID(detProject);
+	if (setup.useStaticDetection) {
+		_allProjUuidMap[detProject] = _engineUuidMap[detProject] = detUUID;
+	}
 
 	createWorkspace(setup);
 
@@ -1520,7 +1524,7 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 
 	// Create project files
 	for (UUIDMap::const_iterator i = _engineUuidMap.begin(); i != _engineUuidMap.end(); ++i) {
-		if (i->first == setup.projectName)
+		if (i->first == detProject)
 			continue;
 		// Retain the files between engines if we're creating a single project
 		in.clear();
@@ -1533,7 +1537,7 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 	}
 
 	// Create engine-detection submodules.
-	{
+	if (setup.useStaticDetection) {
 		in.clear();
 		ex.clear();
 		std::vector<std::string> detectionModuleDirs;
@@ -1551,7 +1555,7 @@ void ProjectProvider::createProject(BuildSetup &setup) {
 			createModuleList(str, setup.defines, setup.testDirs, in, ex, true);
 		}
 
-		createProjectFile("Detection", detUUID, setup, setup.srcDir, in, ex);
+		createProjectFile(detProject, detUUID, setup, setup.srcDir, in, ex);
 	}
 
 	if (setup.tests) {




More information about the Scummvm-git-logs mailing list