aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2017-02-07 21:20:31 +0100
committerGitHub2017-02-07 21:20:31 +0100
commitc1edd6166907a332dca0f4037f934e56e0ab61f0 (patch)
treec8dafb82d4b696f81af9e96dda8f845003f0bfd9
parentb3784db8d55bde5db17aeebfd526e24b7ede54f2 (diff)
parent2f4d14aba50ef437c24af905aeec6e95437eb8fa (diff)
downloadscummvm-rg350-c1edd6166907a332dca0f4037f934e56e0ab61f0.tar.gz
scummvm-rg350-c1edd6166907a332dca0f4037f934e56e0ab61f0.tar.bz2
scummvm-rg350-c1edd6166907a332dca0f4037f934e56e0ab61f0.zip
Merge pull request #896 from criezy/create-project-fixes
DEVTOOLS: Create project fixes
-rw-r--r--base/commandLine.cpp6
-rw-r--r--common/scummsys.h17
-rw-r--r--devtools/create_project/create_project.cpp24
-rw-r--r--devtools/create_project/create_project.h5
-rw-r--r--devtools/create_project/xcode.cpp1
5 files changed, 51 insertions, 2 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 2d7b9f2d9f..51fee811d6 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -386,9 +386,15 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
} else {
// On MacOS X prior to 10.9 the OS is sometimes adding a -psn_X_XXXXXX argument (where X are digits)
// to pass the process serial number. We need to ignore it to avoid an error.
+ // When using XCode it also adds -NSDocumentRevisionsDebugMode YES argument if XCode option
+ // "Allow debugging when using document Versions Browser" is on (which is the default).
#ifdef MACOSX
if (strncmp(s, "-psn_", 5) == 0)
continue;
+ if (strcmp(s, "-NSDocumentRevisionsDebugMode") == 0) {
+ ++i; // Also skip the YES that follows
+ continue;
+ }
#endif
bool isLongCmd = (s[0] == '-' && s[1] == '-');
diff --git a/common/scummsys.h b/common/scummsys.h
index 27fcb84505..938770baa6 100644
--- a/common/scummsys.h
+++ b/common/scummsys.h
@@ -309,6 +309,23 @@
#endif
#endif
+//
+// Determine 64 bitness
+// Reference: http://nadeausoftware.com/articles/2012/02/c_c_tip_how_detect_processor_type_using_compiler_predefined_macros
+//
+#if !defined(HAVE_CONFIG_H)
+
+ #if defined(__x86_64__) || \
+ defined(_M_X64) || \
+ defined(__ppc64__) || \
+ defined(__powerpc64__) || \
+ defined(__LP64__)
+
+ #define SCUMM_64BITS
+
+ #endif
+
+#endif
//
// Some more system specific settings.
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 6072120a15..2baaf91a71 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -300,6 +300,19 @@ int main(int argc, char *argv[]) {
for (EngineDescList::iterator j = setup.engines.begin(); j != setup.engines.end(); ++j)
j->enable = false;
}
+
+ // Disable engines for which we are missing dependencies
+ for (EngineDescList::const_iterator i = setup.engines.begin(); i != setup.engines.end(); ++i) {
+ if (i->enable) {
+ for (StringList::const_iterator ef = i->requiredFeatures.begin(); ef != i->requiredFeatures.end(); ++ef) {
+ FeatureList::iterator feature = std::find(setup.features.begin(), setup.features.end(), *ef);
+ if (feature != setup.features.end() && !feature->enable) {
+ setEngineBuildState(i->name, setup.engines, false);
+ break;
+ }
+ }
+ }
+ }
// Print status
cout << "Enabled engines:\n\n";
@@ -906,7 +919,7 @@ namespace {
*/
bool parseEngine(const std::string &line, EngineDesc &engine) {
// Format:
- // add_engine engine_name "Readable Description" enable_default ["SubEngineList"]
+ // add_engine engine_name "Readable Description" enable_default ["SubEngineList"] ["base games"] ["dependencies"]
TokenList tokens = tokenize(line);
if (tokens.size() < 4)
@@ -921,8 +934,14 @@ bool parseEngine(const std::string &line, EngineDesc &engine) {
engine.name = *token; ++token;
engine.desc = *token; ++token;
engine.enable = (*token == "yes"); ++token;
- if (token != tokens.end())
+ if (token != tokens.end()) {
engine.subEngines = tokenize(*token);
+ ++token;
+ if (token != tokens.end())
+ ++token;
+ if (token != tokens.end())
+ engine.requiredFeatures = tokenize(*token);
+ }
return true;
}
@@ -1024,6 +1043,7 @@ const Feature s_features[] = {
{ "scalers", "USE_SCALERS", "", true, "Scalers" },
{ "hqscalers", "USE_HQ_SCALERS", "", true, "HQ scalers" },
{ "16bit", "USE_RGB_COLOR", "", true, "16bit color support" },
+ { "highres", "USE_HIGHRES", "", true, "high resolution" },
{ "mt32emu", "USE_MT32EMU", "", true, "integrated MT-32 emulator" },
{ "nasm", "USE_NASM", "", true, "IA-32 assembly support" }, // This feature is special in the regard, that it needs additional handling.
{ "opengl", "USE_OPENGL", "", true, "OpenGL support" },
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index bd0dcf6be9..9f662ae806 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -86,6 +86,11 @@ struct EngineDesc {
* Whether the engine should be included in the build or not.
*/
bool enable;
+
+ /**
+ * Features required for this engine.
+ */
+ StringList requiredFeatures;
/**
* A list of all available sub engine names. Sub engines are engines
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index 21fc25643f..221f28bb8e 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -950,6 +950,7 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
scummvmOSX_LdFlags.push_back("-lvorbis");
scummvmOSX_LdFlags.push_back("-lmad");
scummvmOSX_LdFlags.push_back("-lFLAC");
+ scummvmOSX_LdFlags.push_back("-lcurl");
if (setup.useSDL2) {
scummvmOSX_LdFlags.push_back("-lSDL2main");
scummvmOSX_LdFlags.push_back("-lSDL2");