[Scummvm-git-logs] scummvm master -> 4dc9ef2771537226b31311d0fed079d7c0b8ac05
sev-
noreply at scummvm.org
Tue Feb 27 16:12:18 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4dc9ef2771 DISTS: Move engine data defs to dedicated files
Commit: 4dc9ef2771537226b31311d0fed079d7c0b8ac05
https://github.com/scummvm/scummvm/commit/4dc9ef2771537226b31311d0fed079d7c0b8ac05
Author: elasota (1137273+elasota at users.noreply.github.com)
Date: 2024-02-27T17:12:15+01:00
Commit Message:
DISTS: Move engine data defs to dedicated files
Changed paths:
A dists/engine-data/engine_data.mk
A dists/engine-data/engine_data_big.mk
A dists/engine-data/engine_data_core.mk
.gitignore
Makefile.common
backends/platform/sdl/win32/win32.mk
devtools/create_project/create_project.cpp
devtools/create_project/create_project.h
devtools/create_project/msvc.cpp
devtools/create_project/msvc.h
devtools/create_project/xcode.cpp
dists/scummvm.rc
diff --git a/.gitignore b/.gitignore
index 0d6b9b7ebf4..42f087cbea5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -121,6 +121,8 @@ project.xcworkspace
/dists/engine-data/testbed-audiocd-files/testbed.out
/dists/engine-data/playground3d
+/dists/scummvm_rc_*.rh
+
/doc/*.aux
/doc/*.dvi
diff --git a/Makefile.common b/Makefile.common
index a1ffdc70e37..c381ead739f 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -406,110 +406,20 @@ DIST_FILES_VKEYBD:=$(addprefix $(srcdir)/backends/vkeybd/packs/,vkeybd_default.z
endif
# Engine data files
-DIST_FILES_ENGINEDATA=
-ifdef ENABLE_ACCESS
-DIST_FILES_ENGINEDATA+=access.dat
-endif
-ifdef ENABLE_CRYO
-DIST_FILES_ENGINEDATA+=cryo.dat
-endif
-ifdef ENABLE_CRYOMNI3D
-DIST_FILES_ENGINEDATA+=cryomni3d.dat
-endif
-ifdef ENABLE_DRASCULA
-DIST_FILES_ENGINEDATA+=drascula.dat
-endif
-ifdef ENABLE_HADESCH
-DIST_FILES_ENGINEDATA+=hadesch_translations.dat
-endif
-ifdef ENABLE_HUGO
-DIST_FILES_ENGINEDATA+=hugo.dat
-endif
-ifdef ENABLE_KYRA
-DIST_FILES_ENGINEDATA+=kyra.dat
-endif
-ifdef ENABLE_LURE
-DIST_FILES_ENGINEDATA+=lure.dat
-endif
-ifdef ENABLE_MACVENTURE
-DIST_FILES_ENGINEDATA+=macventure.dat
-endif
-ifdef ENABLE_MORTEVIELLE
-DIST_FILES_ENGINEDATA+=mort.dat
-endif
-ifdef ENABLE_NANCY
-DIST_FILES_ENGINEDATA+=nancy.dat
-endif
-ifdef ENABLE_NEVERHOOD
-DIST_FILES_ENGINEDATA+=neverhood.dat
-endif
-ifdef ENABLE_PRINCE
-DIST_FILES_ENGINEDATA+=prince_translation.dat
-endif
-ifdef ENABLE_QUEEN
-DIST_FILES_ENGINEDATA+=queen.tbl
-endif
-ifdef ENABLE_SKY
-DIST_FILES_ENGINEDATA+=sky.cpt
-endif
-ifdef ENABLE_SUPERNOVA
-DIST_FILES_ENGINEDATA+=supernova.dat
-endif
-ifdef ENABLE_TEENAGENT
-DIST_FILES_ENGINEDATA+=teenagent.dat
-endif
-ifdef ENABLE_TITANIC
-DIST_FILES_ENGINEDATA+=titanic.dat
-endif
-ifdef ENABLE_TONY
-DIST_FILES_ENGINEDATA+=tony.dat
-endif
-ifdef ENABLE_TOON
-DIST_FILES_ENGINEDATA+=toon.dat
-endif
-ifdef ENABLE_ULTIMA
-DIST_FILES_ENGINEDATA+=ultima.dat
-DIST_FILES_ENGINEDATA+=ultima8.dat
-endif
-ifdef ENABLE_WINTERMUTE
-DIST_FILES_ENGINEDATA+=wintermute.zip
-endif
-ifdef ENABLE_MM
-DIST_FILES_ENGINEDATA+=mm.dat
-endif
-ifdef ENABLE_FREESCAPE
-DIST_FILES_ENGINEDATA+=freescape.dat
-endif
-ifdef USE_FREETYPE2
-DIST_FILES_ENGINEDATA+=fonts.dat
-endif
-ifdef ENABLE_GRIM
-DIST_FILES_ENGINEDATA+=grim-patch.lab
-endif
-ifdef ENABLE_MONKEY4
-DIST_FILES_ENGINEDATA+=monkey4-patch.m4b
-endif
-ifdef ENABLE_MYST3
-DIST_FILES_ENGINEDATA+=myst3.dat
-endif
-DIST_FILES_ENGINEDATA+=achievements.dat
-DIST_FILES_ENGINEDATA+=classicmacfonts.dat
-DIST_FILES_ENGINEDATA+=encoding.dat
-DIST_FILES_ENGINEDATA+=helpdialog.zip
-DIST_FILES_ENGINEDATA+=macgui.dat
-DIST_FILES_ENGINEDATA:=$(addprefix $(srcdir)/dists/engine-data/,$(DIST_FILES_ENGINEDATA))
+DIST_FILES_LIST=
+-include $(srcdir)/dists/engine-data/engine_data_core.mk
+DIST_FILES_ENGINEDATA_BASE_CORE:=$(DIST_FILES_LIST)
-# pred.dic is currently only used for the AGI engine
-ifdef ENABLE_AGI
-DIST_FILES_ENGINEDATA+=$(srcdir)/dists/pred.dic
-endif
+DIST_FILES_LIST=
+-include $(srcdir)/dists/engine-data/engine_data.mk
+DIST_FILES_ENGINEDATA_BASE:=$(DIST_FILES_LIST)
-# fonts-cjk.dat is used only on systems with plenty of memory
-ifdef USE_FREETYPE2
-DIST_FILES_ENGINEDATA_BIG+=fonts-cjk.dat
-endif
+DIST_FILES_LIST=
+-include $(srcdir)/dists/engine-data/engine_data_big.mk
+DIST_FILES_ENGINEDATA_BASE_BIG:=$(DIST_FILES_LIST)
-DIST_FILES_ENGINEDATA_BIG:=$(addprefix $(srcdir)/dists/engine-data/,$(DIST_FILES_ENGINEDATA_BIG))
+DIST_FILES_ENGINEDATA:=$(addprefix $(srcdir)/,$(DIST_FILES_ENGINEDATA_BASE_CORE) $(DIST_FILES_ENGINEDATA_BASE))
+DIST_FILES_ENGINEDATA_BIG:=$(addprefix $(srcdir)/,$(DIST_FILES_ENGINEDATA_BASE_BIG))
# Shaders: install if USE_OPENGL_SHADERS is defined
DIST_FILES_SHADERS=
diff --git a/backends/platform/sdl/win32/win32.mk b/backends/platform/sdl/win32/win32.mk
index b8ea9b28da8..3340c0dd439 100644
--- a/backends/platform/sdl/win32/win32.mk
+++ b/backends/platform/sdl/win32/win32.mk
@@ -4,6 +4,32 @@
WIN32PATH ?= $(DESTDIR)
+clean-win32-resource-embed:
+
+clean: clean-win32-resource-embed
+
+.PHONY: clean-win32-resource-embed
+
+define win32-resource-embed-macro=
+$(1): configure.stamp
+ @echo ' GENERATE' $$@
+ @echo $$(foreach filename,$$($(2)),$$(filename)) | sed -e 's/ /\n/g' | sed -E 's/(.*\/)(.+)/\2 FILE "\1\2"/g' >> $$@
+
+dists/scummvm.o: $(1)
+
+clean-win32-resource-embed-$(1):
+ $(RM) $(srcdir)/$(1)
+
+clean-win32-resource-embed: clean-win32-resource-embed-$(1)
+
+.PHONY: clean-win32-resource-embed-$(1)
+
+endef
+
+$(eval $(call win32-resource-embed-macro,dists/scummvm_rc_engine_data_core.rh,DIST_FILES_ENGINEDATA_BASE_CORE))
+$(eval $(call win32-resource-embed-macro,dists/scummvm_rc_engine_data.rh,DIST_FILES_ENGINEDATA_BASE))
+$(eval $(call win32-resource-embed-macro,dists/scummvm_rc_engine_data_big.rh,DIST_FILES_ENGINEDATA_BASE_BIG))
+
# Special target to create a win32 snapshot binary (for Inno Setup)
win32-data: all
mkdir -p $(WIN32PATH)
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index e315c090314..8e8e67c1fa8 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -1638,6 +1638,11 @@ void ProjectProvider::createProject(BuildSetup &setup) {
_allProjUuidMap[detProject] = _engineUuidMap[detProject] = detUUID;
}
+ // Scan for resources
+ for (int i = 0; i < kEngineDataGroupCount; i++) {
+ createDataFilesList(static_cast<EngineDataGroup>(i), setup.srcDir, setup.defines, _engineDataGroupDefs[i].dataFiles, _engineDataGroupDefs[i].winHeaderPath);
+ }
+
createWorkspace(setup);
StringList in, ex, pchDirs, pchEx;
@@ -2264,6 +2269,117 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
error("Malformed file " + moduleMkFile);
}
+static EngineDataGroupResolution s_engineDataResolutions[] = {
+ {kEngineDataGroupNormal, "dists/engine-data/engine_data.mk", "dists/scummvm_rc_engine_data.rh"},
+ {kEngineDataGroupBig, "dists/engine-data/engine_data_big.mk", "dists/scummvm_rc_engine_data_big.rh"},
+ {kEngineDataGroupCore, "dists/engine-data/engine_data_core.mk", "dists/scummvm_rc_engine_data_core.rh"},
+};
+
+void ProjectProvider::createDataFilesList(EngineDataGroup engineDataGroup, const std::string &baseDir, const StringList &defines, StringList &outDataFiles, std::string &outWinHeaderPath) const {
+ outDataFiles.clear();
+
+ const EngineDataGroupResolution *resolution = nullptr;
+
+ for (const EngineDataGroupResolution &resolutionCandidate : s_engineDataResolutions) {
+ if (resolutionCandidate.engineDataGroup == engineDataGroup) {
+ resolution = &resolutionCandidate;
+ break;
+ }
+ }
+
+ if (!resolution)
+ error("Engine data group resolution wasn't defined");
+
+ std::string mkFile = baseDir + "/" + resolution->mkFilePath;
+ std::ifstream moduleMk(mkFile.c_str());
+ if (!moduleMk)
+ error(mkFile + " is not present");
+
+ outWinHeaderPath = resolution->winHeaderPath;
+
+ std::stack<bool> shouldInclude;
+ shouldInclude.push(true);
+
+ std::string line;
+ for (;;) {
+ std::getline(moduleMk, line);
+
+ if (moduleMk.eof())
+ break;
+
+ if (moduleMk.fail())
+ error(std::string("Failed while reading from ") + mkFile);
+
+ TokenList tokens = tokenize(line);
+ if (tokens.empty())
+ continue;
+
+ TokenList::const_iterator i = tokens.begin();
+ if (*i == "DIST_FILES_LIST") {
+ if (tokens.size() < 3)
+ error("Malformed DIST_FILES_LIST definition in " + mkFile);
+ ++i;
+
+ if (*i != "+=")
+ error("Malformed DIST_FILES_LIST definition in " + mkFile);
+
+ ++i;
+
+ while (i != tokens.end()) {
+ if (*i == "\\") {
+ std::getline(moduleMk, line);
+ tokens = tokenize(line);
+ i = tokens.begin();
+ } else {
+ const std::string filename = unifyPath(*i);
+
+ if (shouldInclude.top()) {
+ outDataFiles.push_back(filename);
+ }
+ ++i;
+ }
+ }
+ } else if (*i == "ifdef") {
+ if (tokens.size() < 2)
+ error("Malformed ifdef in " + mkFile);
+ ++i;
+
+ if (std::find(defines.begin(), defines.end(), *i) == defines.end())
+ shouldInclude.push(false);
+ else
+ shouldInclude.push(true && shouldInclude.top());
+ } else if (*i == "ifndef") {
+ if (tokens.size() < 2)
+ error("Malformed ifndef in " + mkFile);
+ ++i;
+
+ if (std::find(defines.begin(), defines.end(), *i) == defines.end())
+ shouldInclude.push(true && shouldInclude.top());
+ else
+ shouldInclude.push(false);
+ } else if (*i == "else") {
+ bool last = shouldInclude.top();
+ shouldInclude.pop();
+ shouldInclude.push(!last && shouldInclude.top());
+ } else if (*i == "endif") {
+ if (shouldInclude.size() <= 1)
+ error("endif without ifdef found in " + mkFile);
+ shouldInclude.pop();
+ } else if (*i == "elif") {
+ error("Unsupported operation 'elif' in " + mkFile);
+ } else if (*i == "ifeq" || *i == "ifneq") {
+ // XXX
+ shouldInclude.push(false);
+ } else if (*i == "#") {
+ // Comment, ignore
+ } else
+ error("Unknown definition line in " + mkFile);
+ }
+
+ if (shouldInclude.size() != 1)
+ error("Malformed file " + mkFile);
+}
+
void ProjectProvider::createEnginePluginsTable(const BuildSetup &setup) {
// First we need to create the "engines" directory.
createDirectory(setup.outputDir + "/engines");
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index 36785291359..e225f3ede35 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -107,6 +107,9 @@ struct EngineDesc {
bool operator==(const std::string &n) const {
return (name == n);
}
+
+ EngineDesc() : enable(false) {
+ }
};
typedef std::list<EngineDesc> EngineDescList;
@@ -315,6 +318,20 @@ enum MSVC_Architecture {
std::string getMSVCArchName(MSVC_Architecture arch);
std::string getMSVCConfigName(MSVC_Architecture arch);
+enum EngineDataGroup {
+ kEngineDataGroupNormal,
+ kEngineDataGroupCore,
+ kEngineDataGroupBig,
+
+ kEngineDataGroupCount,
+};
+
+struct EngineDataGroupResolution {
+ EngineDataGroup engineDataGroup;
+ const char *mkFilePath;
+ const char *winHeaderPath;
+};
+
/**
* Creates a list of all supported versions of Visual Studio.
*
@@ -500,6 +517,11 @@ struct FileNode {
class ProjectProvider {
public:
+ struct EngineDataGroupDef {
+ StringList dataFiles;
+ std::string winHeaderPath;
+ };
+
typedef std::map<std::string, std::string> UUIDMap;
/**
@@ -536,6 +558,8 @@ protected:
UUIDMap _engineUuidMap; ///< List of (project name, UUID) pairs
UUIDMap _allProjUuidMap;
+ EngineDataGroupDef _engineDataGroupDefs[kEngineDataGroupCount];
+
/**
* Create workspace/solution file
*
@@ -623,6 +647,16 @@ protected:
*/
void createModuleList(const std::string &moduleDir, const StringList &defines, StringList &testDirs, StringList &includeList, StringList &excludeList, StringList &pchDirs, StringList &pchExclude, bool forDetection = false) const;
+ /**
+ * Creates a list of data files from a specified .mk file
+ *
+ * @param makeFilePath Path to the engine data makefile.
+ * @param defines List of set defines.
+ * @param outDataFiles Output list of data files.
+ * @param outWinHeaderPath Output Windows resource header path.
+ */
+ void createDataFilesList(EngineDataGroup engineDataGroup, const std::string &baseDir, const StringList &defines, StringList &outDataFiles, std::string &outWinHeaderPath) const;
+
/**
* Creates an UUID for every enabled engine of the
* passed build description.
diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp
index 97e3966c419..2c32e6ccecf 100644
--- a/devtools/create_project/msvc.cpp
+++ b/devtools/create_project/msvc.cpp
@@ -227,11 +227,19 @@ void MSVCProvider::createOtherBuildFiles(const BuildSetup &setup) {
createBuildProp(setup, false, *arch, "Analysis");
createBuildProp(setup, false, *arch, "LLVM");
}
+
+ createResourceEmbeds(setup);
}
void MSVCProvider::addResourceFiles(const BuildSetup &setup, StringList &includeList, StringList &excludeList) {
includeList.push_back(setup.srcDir + "/icons/" + setup.projectName + ".ico");
includeList.push_back(setup.srcDir + "/dists/" + setup.projectName + ".rc");
+
+ for (int i = 0; i < kEngineDataGroupCount; i++) {
+ const EngineDataGroupDef &groupDef = _engineDataGroupDefs[i];
+
+ includeList.push_back(setup.srcDir + "/" + groupDef.winHeaderPath);
+ }
}
void MSVCProvider::createGlobalProp(const BuildSetup &setup) {
@@ -314,4 +322,33 @@ std::string MSVCProvider::getPostBuildEvent(MSVC_Architecture arch, const BuildS
return cmdLine;
}
+void MSVCProvider::createResourceEmbeds(const BuildSetup &setup) const {
+ for (int i = 0; i < kEngineDataGroupCount; i++) {
+ const EngineDataGroupDef &groupDef = _engineDataGroupDefs[i];
+
+ std::string outPath = setup.srcDir + "/" + groupDef.winHeaderPath;
+
+ std::ofstream resEmbedFile(outPath.c_str());
+
+ if (!resEmbedFile || !resEmbedFile.is_open()) {
+ error("Could not open \"" + outPath + "\" for writing");
+ return;
+ }
+
+ resEmbedFile << "// This file was generated by create_project" << std::endl;
+ resEmbedFile << "// Do not edit this file manually" << std::endl;
+ resEmbedFile << std::endl;
+
+ for (const std::string &fileName : groupDef.dataFiles) {
+ size_t lastSlashPos = fileName.find_last_of('/');
+ if (lastSlashPos == std::string::npos)
+ error("Data file definition " + fileName + " wasn't located in a subdirectory");
+
+ std::string shortName = fileName.substr(lastSlashPos + 1);
+
+ resEmbedFile << shortName << " FILE \"" << fileName << "\"" << std::endl;
+ }
+ }
+}
+
} // namespace CreateProjectTool
diff --git a/devtools/create_project/msvc.h b/devtools/create_project/msvc.h
index 86ea9c61ba5..6e610abe0bd 100644
--- a/devtools/create_project/msvc.h
+++ b/devtools/create_project/msvc.h
@@ -118,6 +118,11 @@ protected:
* @return The post build event.
*/
std::string getPostBuildEvent(MSVC_Architecture arch, const BuildSetup &setup, bool isRelease) const;
+
+ /**
+ * Creates resource embed files
+ */
+ void createResourceEmbeds(const BuildSetup &setup) const;
};
} // namespace CreateProjectTool
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index 74198561ee3..0da5e13d8c2 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -1038,45 +1038,9 @@ XcodeProvider::ValueList& XcodeProvider::getResourceFiles(const BuildSetup &setu
files.push_back("gui/themes/gui-icons.dat");
files.push_back("gui/themes/shaders.dat");
files.push_back("gui/themes/translations.dat");
- files.push_back("dists/engine-data/access.dat");
- files.push_back("dists/engine-data/achievements.dat");
- files.push_back("dists/engine-data/classicmacfonts.dat");
- files.push_back("dists/engine-data/cryo.dat");
- files.push_back("dists/engine-data/cryomni3d.dat");
- files.push_back("dists/engine-data/drascula.dat");
- files.push_back("dists/engine-data/encoding.dat");
- files.push_back("dists/engine-data/fonts.dat");
- files.push_back("dists/engine-data/fonts-cjk.dat");
- files.push_back("dists/engine-data/freescape.dat");
- files.push_back("dists/engine-data/hadesch_translations.dat");
- files.push_back("dists/engine-data/helpdialog.zip");
- files.push_back("dists/engine-data/hugo.dat");
- files.push_back("dists/engine-data/kyra.dat");
- files.push_back("dists/engine-data/lure.dat");
- files.push_back("dists/engine-data/macgui.dat");
- files.push_back("dists/engine-data/myst3.dat");
- files.push_back("dists/engine-data/monkey4-patch.m4b");
- files.push_back("dists/engine-data/grim-patch.lab");
- files.push_back("dists/engine-data/macventure.dat");
- files.push_back("dists/engine-data/mm.dat");
- files.push_back("dists/engine-data/mort.dat");
- files.push_back("dists/engine-data/nancy.dat");
- files.push_back("dists/engine-data/neverhood.dat");
- files.push_back("dists/engine-data/prince_translation.dat");
- files.push_back("dists/engine-data/queen.tbl");
- files.push_back("dists/engine-data/sky.cpt");
- files.push_back("dists/engine-data/supernova.dat");
- files.push_back("dists/engine-data/teenagent.dat");
- files.push_back("dists/engine-data/titanic.dat");
- files.push_back("dists/engine-data/tony.dat");
- files.push_back("dists/engine-data/toon.dat");
- files.push_back("dists/engine-data/ultima.dat");
- files.push_back("dists/engine-data/ultima8.dat");
- files.push_back("dists/engine-data/wintermute.zip");
files.push_back("dists/ios7/ios-help.zip");
files.push_back("dists/ios7/LaunchScreen_ios.storyboard");
files.push_back("dists/tvos/LaunchScreen_tvos.storyboard");
- files.push_back("dists/pred.dic");
files.push_back("dists/networking/wwwroot.zip");
if (CONTAINS_DEFINE(setup.defines, "ENABLE_GRIM")) {
files.push_back("engines/grim/shaders/grim_dim.fragment");
@@ -1184,7 +1148,17 @@ XcodeProvider::ValueList& XcodeProvider::getResourceFiles(const BuildSetup &setu
files.push_back("LICENSES/CatharonLicense.txt");
files.push_back("NEWS.md");
files.push_back("README.md");
+
+ for (int i = 0; i < kEngineDataGroupCount; i++) {
+ for (const std::string &filename : _engineDataGroupDefs[i].dataFiles) {
+ if (std::find(files.begin(), files.end(), filename) != files.end())
+ error("Resource file " + filename + " was included multiple times");
+
+ files.push_back(filename);
+ }
+ }
}
+
return files;
}
diff --git a/dists/engine-data/engine_data.mk b/dists/engine-data/engine_data.mk
new file mode 100644
index 00000000000..51cb4df42bc
--- /dev/null
+++ b/dists/engine-data/engine_data.mk
@@ -0,0 +1,91 @@
+ifdef ENABLE_ACCESS
+DIST_FILES_LIST += dists/engine-data/access.dat
+endif
+ifdef ENABLE_CRYO
+DIST_FILES_LIST += dists/engine-data/cryo.dat
+endif
+ifdef ENABLE_CRYOMNI3D
+DIST_FILES_LIST += dists/engine-data/cryomni3d.dat
+endif
+ifdef ENABLE_DRASCULA
+DIST_FILES_LIST += dists/engine-data/drascula.dat
+endif
+ifdef ENABLE_HADESCH
+DIST_FILES_LIST += dists/engine-data/hadesch_translations.dat
+endif
+ifdef ENABLE_HUGO
+DIST_FILES_LIST += dists/engine-data/hugo.dat
+endif
+ifdef ENABLE_KYRA
+DIST_FILES_LIST += dists/engine-data/kyra.dat
+endif
+ifdef ENABLE_LURE
+DIST_FILES_LIST += dists/engine-data/lure.dat
+endif
+ifdef ENABLE_MACVENTURE
+DIST_FILES_LIST += dists/engine-data/macventure.dat
+endif
+ifdef ENABLE_MORTEVIELLE
+DIST_FILES_LIST += dists/engine-data/mort.dat
+endif
+ifdef ENABLE_NANCY
+DIST_FILES_LIST += dists/engine-data/nancy.dat
+endif
+ifdef ENABLE_NEVERHOOD
+DIST_FILES_LIST += dists/engine-data/neverhood.dat
+endif
+ifdef ENABLE_PRINCE
+DIST_FILES_LIST += dists/engine-data/prince_translation.dat
+endif
+ifdef ENABLE_QUEEN
+DIST_FILES_LIST += dists/engine-data/queen.tbl
+endif
+ifdef ENABLE_SKY
+DIST_FILES_LIST += dists/engine-data/sky.cpt
+endif
+ifdef ENABLE_SUPERNOVA
+DIST_FILES_LIST += dists/engine-data/supernova.dat
+endif
+ifdef ENABLE_TEENAGENT
+DIST_FILES_LIST += dists/engine-data/teenagent.dat
+endif
+ifdef ENABLE_TITANIC
+DIST_FILES_LIST += dists/engine-data/titanic.dat
+endif
+ifdef ENABLE_TONY
+DIST_FILES_LIST += dists/engine-data/tony.dat
+endif
+ifdef ENABLE_TOON
+DIST_FILES_LIST += dists/engine-data/toon.dat
+endif
+ifdef ENABLE_ULTIMA
+DIST_FILES_LIST += dists/engine-data/ultima.dat
+DIST_FILES_LIST += dists/engine-data/ultima8.dat
+endif
+ifdef ENABLE_WINTERMUTE
+DIST_FILES_LIST += dists/engine-data/wintermute.zip
+endif
+ifdef ENABLE_MM
+DIST_FILES_LIST += dists/engine-data/mm.dat
+endif
+ifdef ENABLE_FREESCAPE
+DIST_FILES_LIST += dists/engine-data/freescape.dat
+endif
+ifdef USE_FREETYPE2
+DIST_FILES_LIST += dists/engine-data/fonts.dat
+endif
+ifdef ENABLE_GRIM
+DIST_FILES_LIST += dists/engine-data/grim-patch.lab
+endif
+ifdef ENABLE_MONKEY4
+DIST_FILES_LIST += dists/engine-data/monkey4-patch.m4b
+endif
+ifdef ENABLE_MYST3
+DIST_FILES_LIST += dists/engine-data/myst3.dat
+endif
+
+
+# pred.dic is currently only used for the AGI engine
+ifdef ENABLE_AGI
+DIST_FILES_LIST += dists/pred.dic
+endif
diff --git a/dists/engine-data/engine_data_big.mk b/dists/engine-data/engine_data_big.mk
new file mode 100644
index 00000000000..742fc5fe07e
--- /dev/null
+++ b/dists/engine-data/engine_data_big.mk
@@ -0,0 +1,4 @@
+# fonts-cjk.dat is used only on systems with plenty of memory
+ifdef USE_FREETYPE2
+DIST_FILES_LIST += dists/engine-data/fonts-cjk.dat
+endif
diff --git a/dists/engine-data/engine_data_core.mk b/dists/engine-data/engine_data_core.mk
new file mode 100644
index 00000000000..8e7309df014
--- /dev/null
+++ b/dists/engine-data/engine_data_core.mk
@@ -0,0 +1,5 @@
+DIST_FILES_LIST += dists/engine-data/achievements.dat
+DIST_FILES_LIST += dists/engine-data/classicmacfonts.dat
+DIST_FILES_LIST += dists/engine-data/encoding.dat
+DIST_FILES_LIST += dists/engine-data/helpdialog.zip
+DIST_FILES_LIST += dists/engine-data/macgui.dat
diff --git a/dists/scummvm.rc b/dists/scummvm.rc
index ed6f8f003fa..b01b9a967aa 100644
--- a/dists/scummvm.rc
+++ b/dists/scummvm.rc
@@ -26,11 +26,8 @@ scummremastered.zip FILE "gui/themes/scummremastered.zip"
residualvm.zip FILE "gui/themes/residualvm.zip"
gui-icons.dat FILE "gui/themes/gui-icons.dat"
shaders.dat FILE "gui/themes/shaders.dat"
-achievements.dat FILE "dists/engine-data/achievements.dat"
-encoding.dat FILE "dists/engine-data/encoding.dat"
-helpdialog.zip FILE "dists/engine-data/helpdialog.zip"
-macgui.dat FILE "dists/engine-data/macgui.dat"
-classicmacfonts.dat FILE "dists/engine-data/classicmacfonts.dat"
+
+#include "dists/scummvm_rc_engine_data_core.rh"
#ifdef USE_FLUIDSYNTH
Roland_SC-55.sf2 FILE "dists/soundfonts/Roland_SC-55.sf2"
@@ -38,100 +35,17 @@ Roland_SC-55.sf2 FILE "dists/soundfonts/Roland_SC-55.sf2"
// Engine or feature specific resources
#ifdef BUILTIN_RESOURCES
-#if PLUGIN_ENABLED_STATIC(FREESCAPE)
-freescape.dat FILE "dists/engine-data/freescape.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(GRIM)
-grim-patch.lab FILE "dists/engine-data/grim-patch.lab"
-monkey4-patch.m4b FILE "dists/engine-data/monkey4-patch.m4b"
-#endif
-#if PLUGIN_ENABLED_STATIC(MYST3)
-myst3.dat FILE "dists/engine-data/myst3.dat"
-#endif
+
+#include "dists/scummvm_rc_engine_data.rh"
+#include "dists/scummvm_rc_engine_data_big.rh"
+
#ifdef USE_TRANSLATION
translations.dat FILE "gui/themes/translations.dat"
#endif
#ifdef USE_SDL_NET
wwwroot.zip FILE "dists/networking/wwwroot.zip"
#endif
-#ifdef USE_FREETYPE2
-fonts.dat FILE "dists/engine-data/fonts.dat"
-fonts-cjk.dat FILE "dists/engine-data/fonts-cjk.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(ACCESS)
-access.dat FILE "dists/engine-data/access.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(CRYO)
-cryo.dat FILE "dists/engine-data/cryo.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(CRYOMNI3D)
-cryomni3d.dat FILE "dists/engine-data/cryomni3d.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(DRASCULA)
-drascula.dat FILE "dists/engine-data/drascula.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(HADESCH)
-hadesch_translations.dat FILE "dists/engine-data/hadesch_translations.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(HUGO)
-hugo.dat FILE "dists/engine-data/hugo.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(KYRA)
-kyra.dat FILE "dists/engine-data/kyra.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(LURE)
-lure.dat FILE "dists/engine-data/lure.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(MACVENTURE)
-macventure.dat FILE "dists/engine-data/macventure.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(MORTEVIELLE)
-mort.dat FILE "dists/engine-data/mort.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(NANCY)
-nancy.dat FILE "dists/engine-data/nancy.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(NEVERHOOD)
-neverhood.dat FILE "dists/engine-data/neverhood.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(PRINCE)
-prince_translation.dat FILE "dists/engine-data/prince_translation.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(QUEEN)
-queen.tbl FILE "dists/engine-data/queen.tbl"
-#endif
-#if PLUGIN_ENABLED_STATIC(SKY)
-sky.cpt FILE "dists/engine-data/sky.cpt"
-#endif
-#if PLUGIN_ENABLED_STATIC(SUPERNOVA)
-supernova.dat FILE "dists/engine-data/supernova.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(TEENAGENT)
-teenagent.dat FILE "dists/engine-data/teenagent.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(TITANIC)
-titanic.dat FILE "dists/engine-data/titanic.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(TONY)
-tony.dat FILE "dists/engine-data/tony.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(TOON)
-toon.dat FILE "dists/engine-data/toon.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(ULTIMA)
-ultima.dat FILE "dists/engine-data/ultima.dat"
-ultima8.dat FILE "dists/engine-data/ultima8.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(WINTERMUTE)
-wintermute.zip FILE "dists/engine-data/wintermute.zip"
-#endif
-#if PLUGIN_ENABLED_STATIC(MM)
-mm.dat FILE "dists/engine-data/mm.dat"
-#endif
-#if PLUGIN_ENABLED_STATIC(AGI)
-pred.dic FILE "dists/pred.dic"
-#endif
#if defined(USE_OPENGL_SHADERS)
#if PLUGIN_ENABLED_STATIC(GRIM)
shaders/grim_dim.fragment FILE "engines/grim/shaders/grim_dim.fragment"
More information about the Scummvm-git-logs
mailing list