[Scummvm-git-logs] scummvm branch-3-0 -> 8270de6cb8504906d7ee7d7ed0d57d9ae9c22ea5
lephilousophe
noreply at scummvm.org
Wed Dec 3 07:56:34 UTC 2025
This automated email contains information about 11 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
492cf942a1 DISTS: Set UIDesignRequiresCompatibility to true in ios7 Info.plist
2fe00db713 CI: Update configFlags when building iOS
3b7d79d738 CREATE_PROJECT: Minor cleanups on Xcode generator
40f20fbbdc CI: Don't disable nasm on Xcode
7963374dd2 CREATE_PROJECT: Remove useless attribute from ProjectProvider
2a3f5e2ead CREATE_PROJECT: Fix memory leaks and uninitialized variable
68f945b591 CREATE_PROJECT: Split iOS and tvOS from macOS XCode projects
adbe8679dd DOCPORTAL: Update build instructions for iOS and tvOS ports
bc46fb7a71 PS3: Disable windowed and iconify features
d121f4d940 VIDEO: Don't hardcode expected channels in PSX decoder
8270de6cb8 NEWS: Synchronize with master
Commit: 492cf942a107c34b2df21492bd6768afef6ac64c
https://github.com/scummvm/scummvm/commit/492cf942a107c34b2df21492bd6768afef6ac64c
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
DISTS: Set UIDesignRequiresCompatibility to true in ios7 Info.plist
The "Liquid Glass" material introduced in iOS 26 cause the custom
toolbar to look bad. Set UIDesignRequiresCompatibility to true to
force all the system elements to look the same as in previous iOS
versions.
Changed paths:
dists/ios7/Info.plist
dists/ios7/Info.plist.in
diff --git a/dists/ios7/Info.plist b/dists/ios7/Info.plist
index ac7a75c79e6..bd361618e9a 100644
--- a/dists/ios7/Info.plist
+++ b/dists/ios7/Info.plist
@@ -70,5 +70,7 @@
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
+ <key>UIDesignRequiresCompatibility</key>
+ <true/>
</dict>
</plist>
diff --git a/dists/ios7/Info.plist.in b/dists/ios7/Info.plist.in
index 247e7f0d568..5829bec7de7 100644
--- a/dists/ios7/Info.plist.in
+++ b/dists/ios7/Info.plist.in
@@ -70,5 +70,7 @@
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
+ <key>UIDesignRequiresCompatibility</key>
+ <true/>
</dict>
</plist>
Commit: 2fe00db71341908ab37c1446a2629dc30458c4f9
https://github.com/scummvm/scummvm/commit/2fe00db71341908ab37c1446a2629dc30458c4f9
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CI: Update configFlags when building iOS
Enable the A52 feature when building the iOS port in CI actions.
Changed paths:
.github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2a2b4c572a6..2f4813709b4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -159,7 +159,7 @@ jobs:
brewPackages: a52dec faad2 flac fluid-synth freetype fribidi giflib jpeg mad libmikmod libmpeg2 libogg libpng libvorbis libvpx sdl2 sdl2_net theora
- platform: ios7
buildFlags: -scheme ScummVM-iOS CODE_SIGN_IDENTITY="" CODE_SIGNING_ALLOWED=NO
- configFlags: --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --disable-nasm --disable-taskbar --disable-tts
+ configFlags: --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-nasm --disable-taskbar --disable-tts
packagesUrl: https://downloads.scummvm.org/frs/build/scummvm-ios7-libs-v4.zip
defaults:
run:
Commit: 3b7d79d7387645b4bea64b986dd31380252603c6
https://github.com/scummvm/scummvm/commit/3b7d79d7387645b4bea64b986dd31380252603c6
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CREATE_PROJECT: Minor cleanups on Xcode generator
Stay consistent between NASM and other defines.
Don't remove defines already removed.
Changed paths:
devtools/create_project/xcode.cpp
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index 626da62ecbd..b5875379b7e 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -1338,10 +1338,6 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
scummvm_WarningCFlags.push_back("-Werror=return-type");
ADD_SETTING_LIST(scummvm_Debug, "WARNING_CFLAGS", scummvm_WarningCFlags, kSettingsQuoteVariable | kSettingsAsList, 5);
ValueList scummvm_defines(_defines);
- REMOVE_DEFINE(scummvm_defines, "MACOSX");
- REMOVE_DEFINE(scummvm_defines, "IPHONE");
- REMOVE_DEFINE(scummvm_defines, "IPHONE_IOS7");
- REMOVE_DEFINE(scummvm_defines, "SDL_BACKEND");
ADD_SETTING_LIST(scummvm_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, kSettingsNoQuote | kSettingsAsList, 5);
ADD_SETTING(scummvm_Debug, "GCC_WARN_ABOUT_RETURN_TYPE", "YES");
ADD_SETTING(scummvm_Debug, "GCC_WARN_UNUSED_VARIABLE", "YES");
@@ -1677,11 +1673,9 @@ void XcodeProvider::setupAdditionalSources(std::string targetName, Property &fil
void XcodeProvider::setupDefines(const BuildSetup &setup) {
for (StringList::const_iterator i = setup.defines.begin(); i != setup.defines.end(); ++i) {
- if (*i == "USE_NASM") // Not supported on Mac
- continue;
-
ADD_DEFINE(_defines, *i);
}
+ REMOVE_DEFINE(_defines, "USE_NASM"); // Not supported on Mac
// Add special defines for Mac support
REMOVE_DEFINE(_defines, "MACOSX");
REMOVE_DEFINE(_defines, "IPHONE");
Commit: 40f20fbbdca413de343737fd7993bf38df6d99e1
https://github.com/scummvm/scummvm/commit/40f20fbbdca413de343737fd7993bf38df6d99e1
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CI: Don't disable nasm on Xcode
This is already handled in create_project
Changed paths:
.github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2f4813709b4..c3221364ccf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -155,11 +155,11 @@ jobs:
include:
- platform: macosx
buildFlags: -scheme ScummVM-macOS -destination 'platform=macOS,arch=x86_64'
- configFlags: --disable-nasm --enable-faad --enable-gif --enable-mikmod --enable-mpeg2 --enable-vpx
+ configFlags: --enable-faad --enable-gif --enable-mikmod --enable-mpeg2 --enable-vpx
brewPackages: a52dec faad2 flac fluid-synth freetype fribidi giflib jpeg mad libmikmod libmpeg2 libogg libpng libvorbis libvpx sdl2 sdl2_net theora
- platform: ios7
buildFlags: -scheme ScummVM-iOS CODE_SIGN_IDENTITY="" CODE_SIGNING_ALLOWED=NO
- configFlags: --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-nasm --disable-taskbar --disable-tts
+ configFlags: --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-taskbar --disable-tts
packagesUrl: https://downloads.scummvm.org/frs/build/scummvm-ios7-libs-v4.zip
defaults:
run:
Commit: 7963374dd21ca21686a62401a7a76667cbb4c12d
https://github.com/scummvm/scummvm/commit/7963374dd21ca21686a62401a7a76667cbb4c12d
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CREATE_PROJECT: Remove useless attribute from ProjectProvider
Move it to MSVC where it's really needed.
Changed paths:
devtools/create_project/cmake.cpp
devtools/create_project/cmake.h
devtools/create_project/codeblocks.cpp
devtools/create_project/codeblocks.h
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
devtools/create_project/xcode.h
diff --git a/devtools/create_project/cmake.cpp b/devtools/create_project/cmake.cpp
index c178cef2371..02fbcf9f609 100644
--- a/devtools/create_project/cmake.cpp
+++ b/devtools/create_project/cmake.cpp
@@ -29,8 +29,8 @@
namespace CreateProjectTool {
-CMakeProvider::CMakeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version)
- : ProjectProvider(global_warnings, project_warnings, global_errors, version) {
+CMakeProvider::CMakeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors)
+ : ProjectProvider(global_warnings, project_warnings, global_errors) {
}
const CMakeProvider::Library *CMakeProvider::getLibraryFromFeature(const char *feature, SDLVersion useSDL) const {
diff --git a/devtools/create_project/cmake.h b/devtools/create_project/cmake.h
index 91a5fb69eab..438c310ebc4 100644
--- a/devtools/create_project/cmake.h
+++ b/devtools/create_project/cmake.h
@@ -34,7 +34,7 @@ namespace CreateProjectTool {
*/
class CMakeProvider final : public ProjectProvider {
public:
- CMakeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version = 0);
+ CMakeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors);
protected:
diff --git a/devtools/create_project/codeblocks.cpp b/devtools/create_project/codeblocks.cpp
index 119417698e2..4d5d90b0100 100644
--- a/devtools/create_project/codeblocks.cpp
+++ b/devtools/create_project/codeblocks.cpp
@@ -27,8 +27,8 @@
namespace CreateProjectTool {
-CodeBlocksProvider::CodeBlocksProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version)
- : ProjectProvider(global_warnings, project_warnings, global_errors, version) {
+CodeBlocksProvider::CodeBlocksProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors)
+ : ProjectProvider(global_warnings, project_warnings, global_errors) {
}
void CodeBlocksProvider::createWorkspace(const BuildSetup &setup) {
diff --git a/devtools/create_project/codeblocks.h b/devtools/create_project/codeblocks.h
index 8718d47041a..ce9352cf228 100644
--- a/devtools/create_project/codeblocks.h
+++ b/devtools/create_project/codeblocks.h
@@ -28,7 +28,7 @@ namespace CreateProjectTool {
class CodeBlocksProvider final : public ProjectProvider {
public:
- CodeBlocksProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version = 0);
+ CodeBlocksProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors);
protected:
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 1720b04282f..6c038812032 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -1873,8 +1873,8 @@ FileNode *scanFiles(const std::string &dir, const StringList &includeList, const
//////////////////////////////////////////////////////////////////////////
// Project Provider methods
//////////////////////////////////////////////////////////////////////////
-ProjectProvider::ProjectProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version)
- : _version(version), _globalWarnings(global_warnings), _projectWarnings(project_warnings), _globalErrors(global_errors) {
+ProjectProvider::ProjectProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors)
+ : _globalWarnings(global_warnings), _projectWarnings(project_warnings), _globalErrors(global_errors) {
}
void ProjectProvider::createProject(BuildSetup &setup) {
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index b64c8e2b728..d80b6a2364c 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -566,7 +566,7 @@ public:
* @param project_warnings List of project-specific warnings
* @param version Target project version.
*/
- ProjectProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version = 0);
+ ProjectProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors);
virtual ~ProjectProvider() {}
/**
@@ -585,7 +585,6 @@ public:
static std::string getLastPathComponent(const std::string &path);
protected:
- const int _version; ///< Target project version
StringList &_globalWarnings; ///< Global (ignored) warnings
StringList &_globalErrors; ///< Global errors (promoted from warnings)
std::map<std::string, StringList> &_projectWarnings; ///< Per-project warnings
diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp
index c6d810673c1..5a866d9b1c3 100644
--- a/devtools/create_project/msvc.cpp
+++ b/devtools/create_project/msvc.cpp
@@ -32,7 +32,7 @@ namespace CreateProjectTool {
// MSVC Provider (Base class)
//////////////////////////////////////////////////////////////////////////
MSVCProvider::MSVCProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version, const MSVCVersion &msvc)
- : ProjectProvider(global_warnings, project_warnings, global_errors, version), _msvcVersion(msvc) {
+ : ProjectProvider(global_warnings, project_warnings, global_errors), _version(version), _msvcVersion(msvc) {
_enableLanguageExtensions = tokenize(ENABLE_LANGUAGE_EXTENSIONS, ',');
_disableEditAndContinue = tokenize(DISABLE_EDIT_AND_CONTINUE, ',');
diff --git a/devtools/create_project/msvc.h b/devtools/create_project/msvc.h
index 5266e28b32b..0de4b432fe1 100644
--- a/devtools/create_project/msvc.h
+++ b/devtools/create_project/msvc.h
@@ -31,6 +31,7 @@ public:
MSVCProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version, const MSVCVersion &msvcVersion);
protected:
+ const int _version;
const MSVCVersion _msvcVersion;
StringList _enableLanguageExtensions;
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index b5875379b7e..babed9dc5b3 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -297,8 +297,8 @@ void XcodeProvider::addBuildFile(const std::string &id, const std::string &name,
_buildFile._flags = kSettingsSingleItem;
}
-XcodeProvider::XcodeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version)
- : ProjectProvider(global_warnings, project_warnings, global_errors, version) {
+XcodeProvider::XcodeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors)
+ : ProjectProvider(global_warnings, project_warnings, global_errors) {
_rootSourceGroup = nullptr;
}
diff --git a/devtools/create_project/xcode.h b/devtools/create_project/xcode.h
index b4dfa6cd37f..ba87be74f73 100644
--- a/devtools/create_project/xcode.h
+++ b/devtools/create_project/xcode.h
@@ -31,7 +31,7 @@ namespace CreateProjectTool {
class XcodeProvider final : public ProjectProvider {
public:
- XcodeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors, const int version = 0);
+ XcodeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, StringList &global_errors);
protected:
Commit: 2a3f5e2eada25bd8299156f52a49570c1c659cac
https://github.com/scummvm/scummvm/commit/2a3f5e2eada25bd8299156f52a49570c1c659cac
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CREATE_PROJECT: Fix memory leaks and uninitialized variable
Changed paths:
devtools/create_project/xcode.h
diff --git a/devtools/create_project/xcode.h b/devtools/create_project/xcode.h
index ba87be74f73..0512952cc21 100644
--- a/devtools/create_project/xcode.h
+++ b/devtools/create_project/xcode.h
@@ -169,6 +169,7 @@ private:
addProperty("isa", objectType, "", kSettingsNoQuote | kSettingsNoValue);
}
+ virtual ~Object() {}
// Add a simple Property with just a name and a value
void addProperty(std::string propName, std::string propValue, std::string propComment = "", int propFlags = 0, int propIndent = 0) {
@@ -223,12 +224,20 @@ private:
public:
std::vector<Object *> _objects;
std::string _comment;
- int _flags;
+ int _flags = 0;
+
+ ~ObjectList() {
+ for (Object *obj : _objects) {
+ delete obj;
+ }
+ }
void add(Object *obj) {
std::map<std::string, bool>::iterator it = _objectMap.find(obj->_id);
- if (it != _objectMap.end() && it->second == true)
+ if (it != _objectMap.end() && it->second == true) {
+ delete obj;
return;
+ }
_objects.push_back(obj);
_objectMap[obj->_id] = true;
Commit: 68f945b591e20c339c45b52e5023b886a0ed2b5e
https://github.com/scummvm/scummvm/commit/68f945b591e20c339c45b52e5023b886a0ed2b5e
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
CREATE_PROJECT: Split iOS and tvOS from macOS XCode projects
Changed paths:
.github/workflows/ci.yml
devtools/create_project/create_project.cpp
devtools/create_project/create_project.h
devtools/create_project/xcode.cpp
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c3221364ccf..aa19879897e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -159,7 +159,7 @@ jobs:
brewPackages: a52dec faad2 flac fluid-synth freetype fribidi giflib jpeg mad libmikmod libmpeg2 libogg libpng libvorbis libvpx sdl2 sdl2_net theora
- platform: ios7
buildFlags: -scheme ScummVM-iOS CODE_SIGN_IDENTITY="" CODE_SIGNING_ALLOWED=NO
- configFlags: --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-taskbar --disable-tts
+ configFlags: --ios --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-taskbar --disable-tts
packagesUrl: https://downloads.scummvm.org/frs/build/scummvm-ios7-libs-v4.zip
defaults:
run:
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 6c038812032..15159cb7a00 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -188,6 +188,10 @@ int main(int argc, char *argv[]) {
}
projectType = kProjectXcode;
+ } else if (!std::strcmp(argv[i], "--ios")) {
+ setup.appleEmbedded = true;
+ } else if (!std::strcmp(argv[i], "--tvos")) {
+ setup.appleEmbedded = true;
#endif
} else if (!std::strcmp(argv[i], "--msvc-version")) {
@@ -447,14 +451,13 @@ int main(int argc, char *argv[]) {
if (projectType == kProjectXcode) {
setup.defines.push_back("POSIX");
- // Define both MACOSX, and IPHONE, but only one of them will be associated to the
- // correct target by the Xcode project provider.
- // This define will help catching up target-dependent files, like "browser_osx.mm"
- // The suffix ("_osx", or "_ios") will be used by the project provider to filter out
- // the files, according to the target.
- setup.defines.push_back("MACOSX");
- setup.defines.push_back("IPHONE");
- setup.defines.push_back("SCUMMVM_NEON");
+ if (setup.appleEmbedded) {
+ setup.defines.push_back("IPHONE");
+ setup.defines.push_back("IPHONE_IOS7");
+ setup.defines.push_back("SCUMMVM_NEON");
+ } else {
+ setup.defines.push_back("MACOSX");
+ }
} else if (projectType == kProjectMSVC || projectType == kProjectCodeBlocks) {
setup.defines.push_back("WIN32");
setup.win32 = true;
@@ -480,18 +483,20 @@ int main(int argc, char *argv[]) {
}
}
- setup.defines.push_back("SDL_BACKEND");
- if (setup.useSDL == kSDLVersion1) {
- cout << "\nBuilding against SDL 1.2\n\n";
- } else if (setup.useSDL == kSDLVersion2) {
- cout << "\nBuilding against SDL 2\n\n";
- setup.defines.push_back("USE_SDL2");
- } else if (setup.useSDL == kSDLVersion3) {
- cout << "\nBuilding against SDL 3\n\n";
- setup.defines.push_back("USE_SDL3");
- } else {
- std::cerr << "ERROR: Unsupported SDL version\n";
- return -1;
+ if (projectType != kProjectXcode || !setup.appleEmbedded) {
+ setup.defines.push_back("SDL_BACKEND");
+ if (setup.useSDL == kSDLVersion1) {
+ cout << "\nBuilding against SDL 1.2\n\n";
+ } else if (setup.useSDL == kSDLVersion2) {
+ cout << "\nBuilding against SDL 2\n\n";
+ setup.defines.push_back("USE_SDL2");
+ } else if (setup.useSDL == kSDLVersion3) {
+ cout << "\nBuilding against SDL 3\n\n";
+ setup.defines.push_back("USE_SDL3");
+ } else {
+ std::cerr << "ERROR: Unsupported SDL version\n";
+ return -1;
+ }
}
if (setup.useStaticDetection) {
@@ -824,6 +829,10 @@ void displayHelp(const char *exe) {
" --vcpkg Use vcpkg-provided libraries instead of pre-built libraries\n"
" (default: false)\n"
"\n"
+ "XCode specific settings:\n"
+ " --ios build for iOS or tvOS\n"
+ " --tvos build for iOS or tvOS\n"
+ "\n"
"Engines settings:\n"
" --list-engines list all available engines and their default state\n"
" --enable-engine=<name> enable building of the engine with the name \"name\"\n"
@@ -1287,6 +1296,18 @@ FeatureList getAllFeatures() {
* This means disabling conflicting features, enabling meta-features, ...
*/
static void fixupFeatures(ProjectType projectType, BuildSetup &setup) {
+#ifdef ENABLE_XCODE
+ // IMGUI and NASM are not available on Xcode
+ if (projectType == kProjectXcode) {
+ setFeatureBuildState("imgui", setup.features, false);
+ setFeatureBuildState("nasm", setup.features, false);
+ }
+ // OpenGL classic is not available on iOS/tvOS
+ if (projectType == kProjectXcode && setup.appleEmbedded) {
+ setFeatureBuildState("opengl_game_classic", setup.features, false);
+ }
+#endif
+
// Vorbis and Tremor can not be enabled simultaneously
if (getFeatureBuildState("tremor", setup.features)) {
setFeatureBuildState("vorbis", setup.features, false);
@@ -1321,18 +1342,13 @@ static void fixupFeatures(ProjectType projectType, BuildSetup &setup) {
}
// Check IMGUI dependencies
- if (!getFeatureBuildState("opengl", setup.features) ||
+ if (getFeatureBuildState("imgui", setup.features) && (
+ !getFeatureBuildState("opengl", setup.features) ||
!getFeatureBuildState("freetype2", setup.features) ||
- setup.useSDL == kSDLVersion1) {
+ setup.useSDL == kSDLVersion1)) {
std::cerr << "WARNING: imgui requires opengl, freetype2 and sdl2+\n";
setFeatureBuildState("imgui", setup.features, false);
}
- // IMGUI is not available on Xcode
-#ifdef ENABLE_XCODE
- if (projectType == kProjectXcode) {
- setFeatureBuildState("imgui", setup.features, false);
- }
-#endif
// Calculate 3D feature state
setFeatureBuildState("3d", setup.features,
@@ -1960,7 +1976,9 @@ void ProjectProvider::createProject(BuildSetup &setup) {
pchEx.clear();
// File list for the Project file
createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
- createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
+ if (std::find(setup.defines.begin(), setup.defines.end(), "SDL_BACKEND") != setup.defines.end()) {
+ createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
+ }
createModuleList(setup.srcDir + "/base", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
createModuleList(setup.srcDir + "/common", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
createModuleList(setup.srcDir + "/common/compression", setup.defines, setup.testDirs, in, ex, pchDirs, pchEx);
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index d80b6a2364c..d135719c043 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -298,6 +298,7 @@ struct BuildSetup {
bool useStaticDetection = true; ///< Whether to link detection features inside the executable or not.
bool useWindowsUnicode = true; ///< Whether to use Windows Unicode APIs or ANSI APIs.
bool useWindowsSubsystem = false; ///< Whether to use Windows subsystem or Console subsystem (default: Console)
+ bool appleEmbedded = false; ///< Whether the build will target iOS or tvOS instead of macOS.
bool useXCFramework = false; ///< Whether to use Apple XCFrameworks instead of static libraries
bool useVcpkg = false; ///< Whether to load libraries from vcpkg or SCUMMVM_LIBS
bool win32 = false; ///< Target is Windows
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index babed9dc5b3..9116d09447e 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -40,9 +40,9 @@ namespace CreateProjectTool {
#define DEBUG_XCODE_HASH 0
-#define IOS_TARGET 0
-#define OSX_TARGET 1
-#define TVOS_TARGET 2
+#define IOS_TARGET PROJECT_DESCRIPTION "-iOS"
+#define TVOS_TARGET PROJECT_DESCRIPTION "-tvOS"
+#define OSX_TARGET PROJECT_DESCRIPTION "-macOS"
#define ADD_DEFINE(defines, name) \
defines.push_back(name);
@@ -122,10 +122,6 @@ bool shouldSkipFileForTarget(const std::string &fileID, const std::string &targe
splitFilename(fileName, name, ext);
if (targetIsIOS(targetName) || targetIsTVOS(targetName)) {
- // iOS & tvOS target: we skip all files with the "_osx" suffix
- if (name.length() > 4 && name.substr(name.length() - 4) == "_osx") {
- return true;
- }
if (targetIsIOS(targetName)) {
// skip tvos dist files
if (fileID.find("dists/tvos/") != std::string::npos)
@@ -135,48 +131,6 @@ bool shouldSkipFileForTarget(const std::string &fileID, const std::string &targe
if (fileID.find("dists/ios7/") != std::string::npos)
return true;
}
- // We don't need SDL for the iOS target
- static const std::string sdl_directory = "/sdl/";
- static const std::string surfacesdl_directory = "/surfacesdl/";
- static const std::string openglsdl_directory = "/openglsdl/";
- static const std::string doublebufferdl_directory = "/doublebuffersdl/";
- if (fileID.find(sdl_directory) != std::string::npos
- || fileID.find(surfacesdl_directory) != std::string::npos
- || fileID.find(openglsdl_directory) != std::string::npos
- || fileID.find(doublebufferdl_directory) != std::string::npos) {
- return true;
- }
- if (ext == "icns") {
- return true;
- }
- }
- else {
- // macOS target: we skip all files with the "_ios" suffix
- if (name.length() > 4 && name.substr(name.length() - 4) == "_ios") {
- return true;
- }
- // macOS target: we skip all files with the "_tvos" suffix
- if (name.length() > 5 && name.substr(name.length() - 5) == "_tvos") {
- return true;
- }
- // macOS target: we skip all files with the "ios7_" prefix
- if (name.length() > 5 && name.substr(0, 5) == "ios7_") {
- return true;
- }
- // macOS target: we skip all files with the "ios-" prefix
- if (name.length() > 4 && name.substr(0, 4) == "ios-") {
- return true;
- }
- // macOS target: we skip the xcprivacy file required for iOS and tvOS targets
- if (ext == "xcprivacy") {
- return true;
- }
- // parent directory
- const std::string directory = fileID.substr(0, fileID.length() - fileName.length());
- static const std::string iphone_directory = "backends/platform/ios7";
- if (directory.length() > iphone_directory.length() && directory.substr(directory.length() - iphone_directory.length()) == iphone_directory) {
- return true;
- }
}
return false;
}
@@ -303,10 +257,12 @@ XcodeProvider::XcodeProvider(StringList &global_warnings, std::map<std::string,
}
void XcodeProvider::addResourceFiles(const BuildSetup &setup, StringList &includeList, StringList &excludeList) {
- includeList.push_back(setup.srcDir + "/dists/ios7/Info.plist");
- includeList.push_back(setup.srcDir + "/dists/ios7/PrivacyInfo.xcprivacy");
- includeList.push_back(setup.srcDir + "/dists/tvos/Info.plist");
- includeList.push_back(setup.srcDir + "/dists/tvos/PrivacyInfo.xcprivacy");
+ if (setup.appleEmbedded) {
+ includeList.push_back(setup.srcDir + "/dists/ios7/Info.plist");
+ includeList.push_back(setup.srcDir + "/dists/ios7/PrivacyInfo.xcprivacy");
+ includeList.push_back(setup.srcDir + "/dists/tvos/Info.plist");
+ includeList.push_back(setup.srcDir + "/dists/tvos/PrivacyInfo.xcprivacy");
+ }
ValueList &resources = getResourceFiles(setup);
for (ValueList::iterator it = resources.begin(); it != resources.end(); ++it) {
@@ -316,7 +272,9 @@ void XcodeProvider::addResourceFiles(const BuildSetup &setup, StringList &includ
StringList pchDirs, pchEx;
StringList td;
- createModuleList(setup.srcDir + "/backends/platform/ios7", setup.defines, td, includeList, excludeList, pchDirs, pchEx);
+ if (setup.appleEmbedded) {
+ createModuleList(setup.srcDir + "/backends/platform/ios7", setup.defines, td, includeList, excludeList, pchDirs, pchEx);
+ }
}
void XcodeProvider::createWorkspace(const BuildSetup &setup) {
@@ -328,9 +286,12 @@ void XcodeProvider::createWorkspace(const BuildSetup &setup) {
// Setup global objects
setupDefines(setup);
- _targets.push_back(PROJECT_DESCRIPTION "-iOS");
- _targets.push_back(PROJECT_DESCRIPTION "-macOS");
- _targets.push_back(PROJECT_DESCRIPTION "-tvOS");
+ if (setup.appleEmbedded) {
+ _targets.push_back(IOS_TARGET);
+ _targets.push_back(TVOS_TARGET);
+ } else {
+ _targets.push_back(OSX_TARGET);
+ }
setupCopyFilesBuildPhase();
setupFrameworksBuildPhase(setup);
setupNativeTarget();
@@ -600,19 +561,19 @@ void XcodeProvider::setupFrameworksBuildPhase(const BuildSetup &setup) {
}
if (setup.useSDL == kSDLVersion3) {
- DEF_LOCALLIB_STATIC("libSDL3");
+ if (!setup.appleEmbedded) DEF_LOCALLIB_STATIC("libSDL3");
if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
DEF_LOCALLIB_STATIC("libSDL3_net");
DEF_LOCALXCFRAMEWORK("SDL3_net", projectOutputDirectory);
}
} else if (setup.useSDL == kSDLVersion2) {
- DEF_LOCALLIB_STATIC("libSDL2");
+ if (!setup.appleEmbedded) DEF_LOCALLIB_STATIC("libSDL2");
if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
DEF_LOCALLIB_STATIC("libSDL2_net");
DEF_LOCALXCFRAMEWORK("SDL2_net", projectOutputDirectory);
}
} else if (setup.useSDL == kSDLVersion1) {
- DEF_LOCALLIB_STATIC("libSDL");
+ if (!setup.appleEmbedded) DEF_LOCALLIB_STATIC("libSDL");
if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
DEF_LOCALLIB_STATIC("libSDL_net");
}
@@ -624,355 +585,360 @@ void XcodeProvider::setupFrameworksBuildPhase(const BuildSetup &setup) {
_rootSourceGroup->addChildGroup(frameworksGroup);
- // Declare this here, as it's used across all the targets
- int order = 0;
-
//////////////////////////////////////////////////////////////////////////
- // ScummVM-iOS
- Object *framework_iPhone = new Object(this, "PBXFrameworksBuildPhase_" + _targets[IOS_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
-
- framework_iPhone->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
- framework_iPhone->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
-
- // List of frameworks
- Property iOS_files;
- iOS_files._hasOrder = true;
- iOS_files._flags = kSettingsAsList;
-
- ValueList frameworks_iOS;
- frameworks_iOS.push_back("CoreAudio.framework");
- frameworks_iOS.push_back("CoreGraphics.framework");
- frameworks_iOS.push_back("CoreFoundation.framework");
- frameworks_iOS.push_back("Foundation.framework");
- frameworks_iOS.push_back("GameController.framework");
- frameworks_iOS.push_back("UIKit.framework");
- frameworks_iOS.push_back("SystemConfiguration.framework");
- frameworks_iOS.push_back("AudioToolbox.framework");
- frameworks_iOS.push_back("QuartzCore.framework");
- frameworks_iOS.push_back("OpenGLES.framework");
+ // ScummVM-macOS
+ if (!setup.appleEmbedded) {
+ Object *framework_OSX = new Object(this, "PBXFrameworksBuildPhase_" OSX_TARGET, "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
+
+ framework_OSX->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
+ framework_OSX->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
+
+ // List of frameworks
+ Property osx_files;
+ osx_files._hasOrder = true;
+ osx_files._flags = kSettingsAsList;
+
+ ValueList frameworks_osx;
+ frameworks_osx.push_back("CoreFoundation.framework");
+ frameworks_osx.push_back("Foundation.framework");
+ frameworks_osx.push_back("AudioToolbox.framework");
+ frameworks_osx.push_back("CoreMIDI.framework");
+ frameworks_osx.push_back("CoreAudio.framework");
+ frameworks_osx.push_back("QuartzCore.framework");
+ frameworks_osx.push_back("Carbon.framework");
+ frameworks_osx.push_back("ApplicationServices.framework");
+ frameworks_osx.push_back("IOKit.framework");
+ frameworks_osx.push_back("Cocoa.framework");
+ frameworks_osx.push_back("OpenGL.framework");
+ frameworks_osx.push_back("AudioUnit.framework");
+
+ if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
+ frameworks_osx.push_back(getLibString("faad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
+ frameworks_osx.push_back(getLibString("FLAC", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
+ !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
+ frameworks_osx.push_back(getLibString("fluidsynth", setup.useXCFramework));
+ frameworks_osx.push_back(getLibString("glib-2.0", setup.useXCFramework));
+ frameworks_osx.push_back("libffi.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
+ frameworks_osx.push_back(getLibString("freetype", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
+ frameworks_osx.push_back(getLibString("jpeg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
+ frameworks_osx.push_back(getLibString("curl", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
+ frameworks_osx.push_back(getLibString("mad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
+ frameworks_osx.push_back("libmikmod.a");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
+ frameworks_osx.push_back("libopenmpt.a");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
+ frameworks_osx.push_back(getLibString("mpeg2", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
+ frameworks_osx.push_back(getLibString("fribidi", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
+ frameworks_osx.push_back(getLibString("png", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
+ frameworks_osx.push_back(getLibString("gif", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
+ frameworks_osx.push_back(getLibString("ogg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
+ frameworks_osx.push_back(getLibString("vorbis", setup.useXCFramework));
+ frameworks_osx.push_back(getLibString("vorbisfile", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
+ frameworks_osx.push_back(getLibString("vorbisidec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
+ frameworks_osx.push_back(getLibString("theoradec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_RETROWAVE")) {
+ frameworks_osx.push_back(getLibString("retrowave", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
+ frameworks_osx.push_back(getLibString("vpx", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
+ frameworks_osx.push_back("libz.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_DISCORD")) {
+ frameworks_osx.push_back(getLibString("discord-rpc", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
+ frameworks_osx.push_back(getLibString("a52", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
+ frameworks_osx.push_back(getLibString("mpcdec", setup.useXCFramework));
+ }
- if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
- frameworks_iOS.push_back(getLibString("faad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
- frameworks_iOS.push_back(getLibString("FLAC", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
- frameworks_iOS.push_back(getLibString("freetype", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
- frameworks_iOS.push_back(getLibString("jpeg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
- frameworks_iOS.push_back(getLibString("png", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
- frameworks_iOS.push_back(getLibString("gif", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
- frameworks_iOS.push_back(getLibString("ogg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
- frameworks_iOS.push_back(getLibString("vorbis", setup.useXCFramework));
- frameworks_iOS.push_back(getLibString("vorbisfile", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
- frameworks_iOS.push_back(getLibString("vorbisidec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
- frameworks_iOS.push_back(getLibString("theoradec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
- frameworks_iOS.push_back(getLibString("vpx", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
- frameworks_iOS.push_back(getLibString("mad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
- frameworks_iOS.push_back(getLibString("mikmod", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
- frameworks_iOS.push_back(getLibString("openmpt", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
- frameworks_iOS.push_back(getLibString("mpeg2", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
- frameworks_iOS.push_back(getLibString("fribidi", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
- frameworks_iOS.push_back(getLibString("a52", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
- frameworks_iOS.push_back(getLibString("mpcdec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
- !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
- frameworks_iOS.push_back(getLibString("fluidsynth", setup.useXCFramework));
- frameworks_iOS.push_back(getLibString("ffi", setup.useXCFramework));
- frameworks_iOS.push_back(getLibString("glib-2.0", setup.useXCFramework));
- if (setup.useXCFramework) {
- // The libintl and libbz2 libs are not combined into glib-2.0 in the xcframework libs
- frameworks_iOS.push_back(getLibString("intl", setup.useXCFramework));
- frameworks_iOS.push_back(getLibString("bz2", setup.useXCFramework));
- }
- frameworks_iOS.push_back("CoreMIDI.framework");
- frameworks_iOS.push_back("libiconv.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
- frameworks_iOS.push_back("libz.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
- frameworks_iOS.push_back(getLibString("curl", setup.useXCFramework));
- frameworks_iOS.push_back("Security.framework");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
- frameworks_iOS.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
- }
+ frameworks_osx.push_back(getLibString(libSDL, setup.useXCFramework));
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
+ frameworks_osx.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
- for (ValueList::iterator framework = frameworks_iOS.begin(); framework != frameworks_iOS.end(); framework++) {
- std::string id = "Frameworks_" + *framework + "_iphone";
- std::string comment = *framework + " in Frameworks";
+ int order = 0;
+ for (ValueList::iterator framework = frameworks_osx.begin(); framework != frameworks_osx.end(); framework++) {
+ std::string id = "Frameworks_" + *framework + "_osx";
+ std::string comment = *framework + " in Frameworks";
- ADD_SETTING_ORDER_NOVALUE(iOS_files, getHash(id), comment, order++);
- ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
- ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
- }
+ ADD_SETTING_ORDER_NOVALUE(osx_files, getHash(id), comment, order++);
+ ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
+ ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
+ }
- framework_iPhone->_properties["files"] = iOS_files;
+ framework_OSX->_properties["files"] = osx_files;
- _frameworksBuildPhase.add(framework_iPhone);
+ _frameworksBuildPhase.add(framework_OSX);
+ }
//////////////////////////////////////////////////////////////////////////
- // ScummVM-macOS
- Object *framework_OSX = new Object(this, "PBXFrameworksBuildPhase_" + _targets[OSX_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
-
- framework_OSX->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
- framework_OSX->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
-
- // List of frameworks
- Property osx_files;
- osx_files._hasOrder = true;
- osx_files._flags = kSettingsAsList;
-
- ValueList frameworks_osx;
- frameworks_osx.push_back("CoreFoundation.framework");
- frameworks_osx.push_back("Foundation.framework");
- frameworks_osx.push_back("AudioToolbox.framework");
- frameworks_osx.push_back("CoreMIDI.framework");
- frameworks_osx.push_back("CoreAudio.framework");
- frameworks_osx.push_back("QuartzCore.framework");
- frameworks_osx.push_back("Carbon.framework");
- frameworks_osx.push_back("ApplicationServices.framework");
- frameworks_osx.push_back("IOKit.framework");
- frameworks_osx.push_back("Cocoa.framework");
- frameworks_osx.push_back("OpenGL.framework");
- frameworks_osx.push_back("AudioUnit.framework");
+ // ScummVM-iOS
+ if (setup.appleEmbedded) {
+ Object *framework_iPhone = new Object(this, "PBXFrameworksBuildPhase_" IOS_TARGET, "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
+
+ framework_iPhone->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
+ framework_iPhone->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
+
+ // List of frameworks
+ Property iOS_files;
+ iOS_files._hasOrder = true;
+ iOS_files._flags = kSettingsAsList;
+
+ ValueList frameworks_iOS;
+ frameworks_iOS.push_back("CoreAudio.framework");
+ frameworks_iOS.push_back("CoreGraphics.framework");
+ frameworks_iOS.push_back("CoreFoundation.framework");
+ frameworks_iOS.push_back("Foundation.framework");
+ frameworks_iOS.push_back("GameController.framework");
+ frameworks_iOS.push_back("UIKit.framework");
+ frameworks_iOS.push_back("SystemConfiguration.framework");
+ frameworks_iOS.push_back("AudioToolbox.framework");
+ frameworks_iOS.push_back("QuartzCore.framework");
+ frameworks_iOS.push_back("OpenGLES.framework");
+
+ if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
+ frameworks_iOS.push_back(getLibString("faad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
+ frameworks_iOS.push_back(getLibString("FLAC", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
+ frameworks_iOS.push_back(getLibString("freetype", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
+ frameworks_iOS.push_back(getLibString("jpeg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
+ frameworks_iOS.push_back(getLibString("png", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
+ frameworks_iOS.push_back(getLibString("gif", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
+ frameworks_iOS.push_back(getLibString("ogg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
+ frameworks_iOS.push_back(getLibString("vorbis", setup.useXCFramework));
+ frameworks_iOS.push_back(getLibString("vorbisfile", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
+ frameworks_iOS.push_back(getLibString("vorbisidec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
+ frameworks_iOS.push_back(getLibString("theoradec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
+ frameworks_iOS.push_back(getLibString("vpx", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
+ frameworks_iOS.push_back(getLibString("mad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
+ frameworks_iOS.push_back(getLibString("mikmod", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
+ frameworks_iOS.push_back(getLibString("openmpt", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
+ frameworks_iOS.push_back(getLibString("mpeg2", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
+ frameworks_iOS.push_back(getLibString("fribidi", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
+ frameworks_iOS.push_back(getLibString("a52", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
+ frameworks_iOS.push_back(getLibString("mpcdec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
+ !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
+ frameworks_iOS.push_back(getLibString("fluidsynth", setup.useXCFramework));
+ frameworks_iOS.push_back(getLibString("ffi", setup.useXCFramework));
+ frameworks_iOS.push_back(getLibString("glib-2.0", setup.useXCFramework));
+ if (setup.useXCFramework) {
+ // The libintl and libbz2 libs are not combined into glib-2.0 in the xcframework libs
+ frameworks_iOS.push_back(getLibString("intl", setup.useXCFramework));
+ frameworks_iOS.push_back(getLibString("bz2", setup.useXCFramework));
+ }
+ frameworks_iOS.push_back("CoreMIDI.framework");
+ frameworks_iOS.push_back("libiconv.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
+ frameworks_iOS.push_back("libz.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
+ frameworks_iOS.push_back(getLibString("curl", setup.useXCFramework));
+ frameworks_iOS.push_back("Security.framework");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
+ frameworks_iOS.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
+ }
- if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
- frameworks_osx.push_back(getLibString("faad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
- frameworks_osx.push_back(getLibString("FLAC", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
- !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
- frameworks_osx.push_back(getLibString("fluidsynth", setup.useXCFramework));
- frameworks_osx.push_back(getLibString("glib-2.0", setup.useXCFramework));
- frameworks_osx.push_back("libffi.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
- frameworks_osx.push_back(getLibString("freetype", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
- frameworks_osx.push_back(getLibString("jpeg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
- frameworks_osx.push_back(getLibString("curl", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
- frameworks_osx.push_back(getLibString("mad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
- frameworks_osx.push_back("libmikmod.a");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
- frameworks_osx.push_back("libopenmpt.a");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
- frameworks_osx.push_back(getLibString("mpeg2", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
- frameworks_osx.push_back(getLibString("fribidi", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
- frameworks_osx.push_back(getLibString("png", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
- frameworks_osx.push_back(getLibString("gif", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
- frameworks_osx.push_back(getLibString("ogg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
- frameworks_osx.push_back(getLibString("vorbis", setup.useXCFramework));
- frameworks_osx.push_back(getLibString("vorbisfile", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
- frameworks_osx.push_back(getLibString("vorbisidec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
- frameworks_osx.push_back(getLibString("theoradec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_RETROWAVE")) {
- frameworks_osx.push_back(getLibString("retrowave", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
- frameworks_osx.push_back(getLibString("vpx", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
- frameworks_osx.push_back("libz.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_DISCORD")) {
- frameworks_osx.push_back(getLibString("discord-rpc", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
- frameworks_osx.push_back(getLibString("a52", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
- frameworks_osx.push_back(getLibString("mpcdec", setup.useXCFramework));
- }
+ int order = 0;
+ for (ValueList::iterator framework = frameworks_iOS.begin(); framework != frameworks_iOS.end(); framework++) {
+ std::string id = "Frameworks_" + *framework + "_iphone";
+ std::string comment = *framework + " in Frameworks";
- frameworks_osx.push_back(getLibString(libSDL, setup.useXCFramework));
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
- frameworks_osx.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
+ ADD_SETTING_ORDER_NOVALUE(iOS_files, getHash(id), comment, order++);
+ ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
+ ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
+ }
- order = 0;
- for (ValueList::iterator framework = frameworks_osx.begin(); framework != frameworks_osx.end(); framework++) {
- std::string id = "Frameworks_" + *framework + "_osx";
- std::string comment = *framework + " in Frameworks";
+ framework_iPhone->_properties["files"] = iOS_files;
- ADD_SETTING_ORDER_NOVALUE(osx_files, getHash(id), comment, order++);
- ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
- ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
+ _frameworksBuildPhase.add(framework_iPhone);
}
- framework_OSX->_properties["files"] = osx_files;
-
- _frameworksBuildPhase.add(framework_OSX);
-
//////////////////////////////////////////////////////////////////////////
// ScummVM-tvOS
- Object *framework_tvOS = new Object(this, "PBXFrameworksBuildPhase_" + _targets[TVOS_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
-
- framework_tvOS->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
- framework_tvOS->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
-
- // List of frameworks
- Property tvOS_files;
- tvOS_files._hasOrder = true;
- tvOS_files._flags = kSettingsAsList;
-
- ValueList frameworks_tvOS;
- frameworks_tvOS.push_back("CoreAudio.framework");
- frameworks_tvOS.push_back("CoreGraphics.framework");
- frameworks_tvOS.push_back("CoreFoundation.framework");
- frameworks_tvOS.push_back("Foundation.framework");
- frameworks_tvOS.push_back("GameController.framework");
- frameworks_tvOS.push_back("UIKit.framework");
- frameworks_tvOS.push_back("SystemConfiguration.framework");
- frameworks_tvOS.push_back("AudioToolbox.framework");
- frameworks_tvOS.push_back("QuartzCore.framework");
- frameworks_tvOS.push_back("OpenGLES.framework");
-
- if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
- frameworks_tvOS.push_back(getLibString("faad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
- frameworks_tvOS.push_back(getLibString("FLAC", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
- frameworks_tvOS.push_back(getLibString("freetype", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
- frameworks_tvOS.push_back(getLibString("jpeg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
- frameworks_tvOS.push_back(getLibString("png", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
- frameworks_tvOS.push_back(getLibString("gif", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
- frameworks_tvOS.push_back(getLibString("ogg", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
- frameworks_tvOS.push_back(getLibString("vorbis", setup.useXCFramework));
- frameworks_tvOS.push_back(getLibString("vorbisfile", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
- frameworks_tvOS.push_back(getLibString("vorbisidec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
- frameworks_tvOS.push_back(getLibString("theoradec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
- frameworks_tvOS.push_back(getLibString("vpx", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
- frameworks_tvOS.push_back(getLibString("mad", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
- frameworks_tvOS.push_back(getLibString("mikmod", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
- frameworks_tvOS.push_back(getLibString("openmpt", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
- frameworks_tvOS.push_back(getLibString("mpeg2", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
- frameworks_tvOS.push_back(getLibString("fribidi", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
- frameworks_tvOS.push_back(getLibString("a52", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
- frameworks_tvOS.push_back(getLibString("mpcdec", setup.useXCFramework));
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
- !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
- frameworks_tvOS.push_back(getLibString("fluidsynth", setup.useXCFramework));
- frameworks_tvOS.push_back(getLibString("ffi", setup.useXCFramework));
- frameworks_tvOS.push_back(getLibString("glib-2.0", setup.useXCFramework));
- frameworks_tvOS.push_back(getLibString("intl", setup.useXCFramework));
- frameworks_tvOS.push_back(getLibString("bz2", setup.useXCFramework));
- frameworks_tvOS.push_back("CoreMIDI.framework");
- frameworks_tvOS.push_back("libiconv.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
- frameworks_tvOS.push_back("libz.tbd");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
- frameworks_tvOS.push_back(getLibString("curl", setup.useXCFramework));
- frameworks_tvOS.push_back("Security.framework");
- }
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
- frameworks_tvOS.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
- }
+ if (setup.appleEmbedded) {
+ Object *framework_tvOS = new Object(this, "PBXFrameworksBuildPhase_" TVOS_TARGET, "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
+
+ framework_tvOS->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
+ framework_tvOS->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
+
+ // List of frameworks
+ Property tvOS_files;
+ tvOS_files._hasOrder = true;
+ tvOS_files._flags = kSettingsAsList;
+
+ ValueList frameworks_tvOS;
+ frameworks_tvOS.push_back("CoreAudio.framework");
+ frameworks_tvOS.push_back("CoreGraphics.framework");
+ frameworks_tvOS.push_back("CoreFoundation.framework");
+ frameworks_tvOS.push_back("Foundation.framework");
+ frameworks_tvOS.push_back("GameController.framework");
+ frameworks_tvOS.push_back("UIKit.framework");
+ frameworks_tvOS.push_back("SystemConfiguration.framework");
+ frameworks_tvOS.push_back("AudioToolbox.framework");
+ frameworks_tvOS.push_back("QuartzCore.framework");
+ frameworks_tvOS.push_back("OpenGLES.framework");
+
+ if (CONTAINS_DEFINE(setup.defines, "USE_FAAD")) {
+ frameworks_tvOS.push_back(getLibString("faad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLAC")) {
+ frameworks_tvOS.push_back(getLibString("FLAC", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FREETYPE2")) {
+ frameworks_tvOS.push_back(getLibString("freetype", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_JPEG")) {
+ frameworks_tvOS.push_back(getLibString("jpeg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_PNG")) {
+ frameworks_tvOS.push_back(getLibString("png", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_GIF")) {
+ frameworks_tvOS.push_back(getLibString("gif", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OGG")) {
+ frameworks_tvOS.push_back(getLibString("ogg", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VORBIS")) {
+ frameworks_tvOS.push_back(getLibString("vorbis", setup.useXCFramework));
+ frameworks_tvOS.push_back(getLibString("vorbisfile", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_TREMOR")) {
+ frameworks_tvOS.push_back(getLibString("vorbisidec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_THEORADEC")) {
+ frameworks_tvOS.push_back(getLibString("theoradec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_VPX")) {
+ frameworks_tvOS.push_back(getLibString("vpx", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MAD")) {
+ frameworks_tvOS.push_back(getLibString("mad", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MIKMOD")) {
+ frameworks_tvOS.push_back(getLibString("mikmod", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_OPENMPT")) {
+ frameworks_tvOS.push_back(getLibString("openmpt", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPEG2")) {
+ frameworks_tvOS.push_back(getLibString("mpeg2", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FRIBIDI")) {
+ frameworks_tvOS.push_back(getLibString("fribidi", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_A52")) {
+ frameworks_tvOS.push_back(getLibString("a52", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_MPCDEC")) {
+ frameworks_tvOS.push_back(getLibString("mpcdec", setup.useXCFramework));
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_FLUIDSYNTH") &&
+ !CONTAINS_DEFINE(setup.defines, "USE_FLUIDLITE")) {
+ frameworks_tvOS.push_back(getLibString("fluidsynth", setup.useXCFramework));
+ frameworks_tvOS.push_back(getLibString("ffi", setup.useXCFramework));
+ frameworks_tvOS.push_back(getLibString("glib-2.0", setup.useXCFramework));
+ frameworks_tvOS.push_back(getLibString("intl", setup.useXCFramework));
+ frameworks_tvOS.push_back(getLibString("bz2", setup.useXCFramework));
+ frameworks_tvOS.push_back("CoreMIDI.framework");
+ frameworks_tvOS.push_back("libiconv.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_ZLIB")) {
+ frameworks_tvOS.push_back("libz.tbd");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_LIBCURL")) {
+ frameworks_tvOS.push_back(getLibString("curl", setup.useXCFramework));
+ frameworks_tvOS.push_back("Security.framework");
+ }
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
+ frameworks_tvOS.push_back(getLibString(libSDL + "_net", setup.useXCFramework));
+ }
- for (ValueList::iterator framework = frameworks_tvOS.begin(); framework != frameworks_tvOS.end(); framework++) {
- std::string id = "Frameworks_" + *framework + "_appletv";
- std::string comment = *framework + " in Frameworks";
+ int order = 0;
+ for (ValueList::iterator framework = frameworks_tvOS.begin(); framework != frameworks_tvOS.end(); framework++) {
+ std::string id = "Frameworks_" + *framework + "_appletv";
+ std::string comment = *framework + " in Frameworks";
- ADD_SETTING_ORDER_NOVALUE(tvOS_files, getHash(id), comment, order++);
- ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
- ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
- }
+ ADD_SETTING_ORDER_NOVALUE(tvOS_files, getHash(id), comment, order++);
+ ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
+ ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
+ }
- framework_tvOS->_properties["files"] = tvOS_files;
+ framework_tvOS->_properties["files"] = tvOS_files;
- _frameworksBuildPhase.add(framework_tvOS);
+ _frameworksBuildPhase.add(framework_tvOS);
+ }
}
void XcodeProvider::setupNativeTarget() {
@@ -1039,9 +1005,9 @@ void XcodeProvider::setupProject() {
// List of targets
Property targets;
targets._flags = kSettingsAsList;
- targets._settings[getHash("PBXNativeTarget_" + _targets[IOS_TARGET])] = Setting("", _targets[IOS_TARGET], kSettingsNoValue, 0, 0);
- targets._settings[getHash("PBXNativeTarget_" + _targets[OSX_TARGET])] = Setting("", _targets[OSX_TARGET], kSettingsNoValue, 0, 1);
- targets._settings[getHash("PBXNativeTarget_" + _targets[TVOS_TARGET])] = Setting("", _targets[TVOS_TARGET], kSettingsNoValue, 0, 2);
+ for (unsigned int i = 0; i < _targets.size(); i++) {
+ targets._settings[getHash("PBXNativeTarget_" + _targets[i])] = Setting("", _targets[i], kSettingsNoValue, 0, i);
+ }
project->_properties["targets"] = targets;
// Force list even when there is only a single target
@@ -1060,11 +1026,13 @@ 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/ios7/ios-help.zip");
- files.push_back("dists/ios7/LaunchScreen_ios.storyboard");
- files.push_back("dists/ios7/PrivacyInfo.xcprivacy");
- files.push_back("dists/tvos/LaunchScreen_tvos.storyboard");
- files.push_back("dists/tvos/PrivacyInfo.xcprivacy");
+ if (setup.appleEmbedded) {
+ files.push_back("dists/ios7/ios-help.zip");
+ files.push_back("dists/ios7/LaunchScreen_ios.storyboard");
+ files.push_back("dists/ios7/PrivacyInfo.xcprivacy");
+ files.push_back("dists/tvos/LaunchScreen_tvos.storyboard");
+ files.push_back("dists/tvos/PrivacyInfo.xcprivacy");
+ }
files.push_back("dists/networking/wwwroot.zip");
if (CONTAINS_DEFINE(setup.defines, "ENABLE_GRIM")) {
files.push_back("engines/grim/shaders/grim_dim.fragment");
@@ -1338,6 +1306,10 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
scummvm_WarningCFlags.push_back("-Werror=return-type");
ADD_SETTING_LIST(scummvm_Debug, "WARNING_CFLAGS", scummvm_WarningCFlags, kSettingsQuoteVariable | kSettingsAsList, 5);
ValueList scummvm_defines(_defines);
+ // Add back USE_OPENGL_GAME for MacOS build if it was enabled
+ if (CONTAINS_DEFINE(setup.defines, "USE_OPENGL_GAME")) {
+ ADD_DEFINE(scummvm_defines, "USE_OPENGL_GAME");
+ }
ADD_SETTING_LIST(scummvm_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, kSettingsNoQuote | kSettingsAsList, 5);
ADD_SETTING(scummvm_Debug, "GCC_WARN_ABOUT_RETURN_TYPE", "YES");
ADD_SETTING(scummvm_Debug, "GCC_WARN_UNUSED_VARIABLE", "YES");
@@ -1375,251 +1347,250 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
_buildConfiguration.add(scummvm_Debug_Object);
_buildConfiguration.add(scummvm_Release_Object);
- ///****************************************
- // * ScummVM - iOS Target
- // ****************************************/
-
- // Debug
- Object *iPhone_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Debug", _targets[IOS_TARGET] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
- Property iPhone_Debug;
- ADD_SETTING_QUOTE(iPhone_Debug, "CODE_SIGN_IDENTITY", "iPhone Developer");
- ADD_SETTING_QUOTE_VAR(iPhone_Debug, "CODE_SIGN_IDENTITY[sdk=iphoneos*]", "iPhone Developer");
- ADD_SETTING(iPhone_Debug, "COPY_PHASE_STRIP", "NO");
- ADD_SETTING_QUOTE(iPhone_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
- ADD_SETTING(iPhone_Debug, "ENABLE_BITCODE", "NO");
- ValueList iPhone_FrameworkSearchPaths;
- iPhone_FrameworkSearchPaths.push_back("$(inherited)");
- iPhone_FrameworkSearchPaths.push_back("\"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"");
- ADD_SETTING_LIST(iPhone_Debug, "FRAMEWORK_SEARCH_PATHS", iPhone_FrameworkSearchPaths, kSettingsAsList, 5);
- ADD_SETTING(iPhone_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
- ADD_SETTING(iPhone_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
- ADD_SETTING(iPhone_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
- ADD_SETTING(iPhone_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
- ADD_SETTING_QUOTE(iPhone_Debug, "GCC_PREFIX_HEADER", "");
- ADD_SETTING(iPhone_Debug, "GCC_UNROLL_LOOPS", "YES");
- ValueList iPhone_HeaderSearchPaths;
- iPhone_HeaderSearchPaths.push_back("$(SRCROOT)/engines/");
- iPhone_HeaderSearchPaths.push_back("$(SRCROOT)");
- for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
- iPhone_HeaderSearchPaths.push_back("\"" + *i + "\"");
- iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "\"");
- if (!setup.useXCFramework) {
- iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include\"");
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
- iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include/" + libSDL + "\"");
- }
- }
- ADD_SETTING_LIST(iPhone_Debug, "HEADER_SEARCH_PATHS", iPhone_HeaderSearchPaths, kSettingsAsList | kSettingsQuoteVariable, 5);
- ADD_SETTING_QUOTE(iPhone_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/ios7/Info.plist");
- ValueList iPhone_LibPaths;
- for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
- iPhone_LibPaths.push_back("\"" + *i + "\"");
- iPhone_LibPaths.push_back("$(inherited)");
- if (!setup.useXCFramework)
- iPhone_LibPaths.push_back("\"" + projectOutputDirectory + "/lib\"");
- ADD_SETTING_LIST(iPhone_Debug, "LIBRARY_SEARCH_PATHS", iPhone_LibPaths, kSettingsAsList, 5);
- ADD_SETTING(iPhone_Debug, "ONLY_ACTIVE_ARCH", "YES");
- ADD_SETTING(iPhone_Debug, "PRODUCT_NAME", PROJECT_NAME);
- ADD_SETTING(iPhone_Debug, "PRODUCT_BUNDLE_IDENTIFIER", "\"org.scummvm.${PRODUCT_NAME}\"");
- ADD_SETTING(iPhone_Debug, "IPHONEOS_DEPLOYMENT_TARGET", "9.0");
- ADD_SETTING_QUOTE_VAR(iPhone_Debug, "PROVISIONING_PROFILE[sdk=iphoneos*]", "");
- ADD_SETTING(iPhone_Debug, "SDKROOT", "iphoneos");
- ADD_SETTING_QUOTE(iPhone_Debug, "TARGETED_DEVICE_FAMILY", "1,2");
- ValueList scummvmIOSsimulator_defines;
- ADD_DEFINE(scummvmIOSsimulator_defines, "\"$(inherited)\"");
- ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE");
- ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE_IOS7");
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
- ADD_DEFINE(scummvmIOSsimulator_defines, "WITHOUT_SDL");
- ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]\"", scummvmIOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
- // Separate iphoneos and iphonesimulator definitions since simulator running on x86_64
- // hosts doesn't support NEON
- ValueList scummvmIOS_defines = scummvmIOSsimulator_defines;
- ADD_DEFINE(scummvmIOS_defines, "SCUMMVM_NEON");
- ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]\"", scummvmIOS_defines, kSettingsNoQuote | kSettingsAsList, 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", "", kSettingsNoValue);
- iPhone_Debug_Object->_properties["buildSettings"] = iPhone_Debug;
-
- // Release
- Object *iPhone_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Release", _targets[IOS_TARGET] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
- Property iPhone_Release(iPhone_Debug);
- ADD_SETTING(iPhone_Release, "GCC_OPTIMIZATION_LEVEL", "3");
- ADD_SETTING(iPhone_Release, "COPY_PHASE_STRIP", "YES");
- REMOVE_SETTING(iPhone_Release, "GCC_DYNAMIC_NO_PIC");
- ADD_SETTING(iPhone_Release, "WRAPPER_EXTENSION", "app");
- REMOVE_SETTING(iPhone_Release, "DEBUG_INFORMATION_FORMAT");
- ADD_SETTING_QUOTE(iPhone_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
-
- iPhone_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
- iPhone_Release_Object->_properties["buildSettings"] = iPhone_Release;
-
- _buildConfiguration.add(iPhone_Debug_Object);
- _buildConfiguration.add(iPhone_Release_Object);
-
/****************************************
* ScummVM - macOS Target
****************************************/
- // Debug
- Object *scummvmOSX_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Debug", _targets[OSX_TARGET] /* ScummVM-macOS */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
- Property scummvmOSX_Debug;
- ADD_SETTING(scummvmOSX_Debug, "COMBINE_HIDPI_IMAGES", "YES");
- ADD_SETTING(scummvmOSX_Debug, "SDKROOT", "macosx");
- ADD_SETTING(scummvmOSX_Debug, "COPY_PHASE_STRIP", "NO");
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "FRAMEWORK_SEARCH_PATHS", "");
- ADD_SETTING(scummvmOSX_Debug, "CLANG_CXX_LANGUAGE_STANDARD", "\"c++11\"");
- ADD_SETTING(scummvmOSX_Debug, "GCC_C_LANGUAGE_STANDARD", "c99");
- ADD_SETTING(scummvmOSX_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
- ADD_SETTING(scummvmOSX_Debug, "GCC_ENABLE_CPP_RTTI", "YES");
- ADD_SETTING(scummvmOSX_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
- ADD_SETTING(scummvmOSX_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
- ADD_SETTING(scummvmOSX_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "GCC_PREFIX_HEADER", "");
- ValueList scummvmOSX_defines;
- ADD_DEFINE(scummvmOSX_defines, "\"$(inherited)\"");
- ADD_DEFINE(scummvmOSX_defines, "SDL_BACKEND");
- if (setup.useSDL == kSDLVersion2) {
- ADD_DEFINE(scummvmOSX_defines, "USE_SDL2");
- } else if (setup.useSDL == kSDLVersion3) {
- ADD_DEFINE(scummvmOSX_defines, "USE_SDL3");
+ if (!setup.appleEmbedded) {
+ // Debug
+ Object *scummvmOSX_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Debug", OSX_TARGET /* ScummVM-macOS */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
+ Property scummvmOSX_Debug;
+ ADD_SETTING(scummvmOSX_Debug, "COMBINE_HIDPI_IMAGES", "YES");
+ ADD_SETTING(scummvmOSX_Debug, "SDKROOT", "macosx");
+ ADD_SETTING(scummvmOSX_Debug, "COPY_PHASE_STRIP", "NO");
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "FRAMEWORK_SEARCH_PATHS", "");
+ ADD_SETTING(scummvmOSX_Debug, "CLANG_CXX_LANGUAGE_STANDARD", "\"c++11\"");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_C_LANGUAGE_STANDARD", "c99");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_ENABLE_CPP_RTTI", "YES");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
+ ADD_SETTING(scummvmOSX_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "GCC_PREFIX_HEADER", "");
+ /*
+ ValueList scummvmOSX_defines;
+ ADD_DEFINE(scummvmOSX_defines, "\"$(inherited)\"");
+ ADD_SETTING_LIST(scummvmOSX_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmOSX_defines, kSettingsNoQuote | kSettingsAsList, 5);
+ */
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "GCC_VERSION", "");
+ ValueList scummvmOSX_HeaderPaths;
+ for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
+ scummvmOSX_HeaderPaths.push_back("\"" + *i + "\"");
+ scummvmOSX_HeaderPaths.push_back("/usr/local/include/" + libSDL);
+ scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include/" + libSDL);
+ scummvmOSX_HeaderPaths.push_back("/opt/local/include/" + libSDL);
+ scummvmOSX_HeaderPaths.push_back("/usr/local/include");
+ scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include");
+ scummvmOSX_HeaderPaths.push_back("/opt/local/include");
+ scummvmOSX_HeaderPaths.push_back("/usr/local/include/freetype2");
+ scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include/freetype2");
+ scummvmOSX_HeaderPaths.push_back("/opt/local/include/freetype2");
+ scummvmOSX_HeaderPaths.push_back("include/");
+ scummvmOSX_HeaderPaths.push_back("$(SRCROOT)/engines/");
+ scummvmOSX_HeaderPaths.push_back("$(SRCROOT)");
+ ADD_SETTING_LIST(scummvmOSX_Debug, "HEADER_SEARCH_PATHS", scummvmOSX_HeaderPaths, kSettingsQuoteVariable | kSettingsAsList, 5);
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/macosx/Info.plist");
+ ValueList scummvmOSX_LibPaths;
+ for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
+ scummvmOSX_LibPaths.push_back("\"" + *i + "\"");
+ scummvmOSX_LibPaths.push_back("/usr/local/lib");
+ scummvmOSX_LibPaths.push_back("/opt/homebrew/lib");
+ scummvmOSX_LibPaths.push_back("/opt/local/lib");
+ scummvmOSX_LibPaths.push_back("\"$(inherited)\"");
+ scummvmOSX_LibPaths.push_back("\"\\\"$(SRCROOT)/lib\\\"\"");
+ ADD_SETTING_LIST(scummvmOSX_Debug, "LIBRARY_SEARCH_PATHS", scummvmOSX_LibPaths, kSettingsNoQuote | kSettingsAsList, 5);
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "MACOSX_DEPLOYMENT_TARGET", "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)");
+ ADD_SETTING_QUOTE(scummvmOSX_Debug, "OTHER_CFLAGS", "");
+ ADD_SETTING(scummvmOSX_Debug, "PRODUCT_NAME", PROJECT_NAME);
+
+ scummvmOSX_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
+ scummvmOSX_Debug_Object->_properties["buildSettings"] = scummvmOSX_Debug;
+
+ // Release
+ Object *scummvmOSX_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Release", OSX_TARGET /* ScummVM-macOS */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
+ Property scummvmOSX_Release(scummvmOSX_Debug);
+ ADD_SETTING(scummvmOSX_Release, "COPY_PHASE_STRIP", "YES");
+ REMOVE_SETTING(scummvmOSX_Release, "GCC_DYNAMIC_NO_PIC");
+ REMOVE_SETTING(scummvmOSX_Release, "GCC_OPTIMIZATION_LEVEL");
+ ADD_SETTING(scummvmOSX_Release, "GCC_OPTIMIZATION_LEVEL", "3");
+ ADD_SETTING(scummvmOSX_Release, "WRAPPER_EXTENSION", "app");
+ REMOVE_SETTING(scummvmOSX_Release, "DEBUG_INFORMATION_FORMAT");
+ ADD_SETTING_QUOTE(scummvmOSX_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
+
+ scummvmOSX_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
+ scummvmOSX_Release_Object->_properties["buildSettings"] = scummvmOSX_Release;
+
+ _buildConfiguration.add(scummvmOSX_Debug_Object);
+ _buildConfiguration.add(scummvmOSX_Release_Object);
}
- ADD_DEFINE(scummvmOSX_defines, "MACOSX");
- ADD_SETTING_LIST(scummvmOSX_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmOSX_defines, kSettingsNoQuote | kSettingsAsList, 5);
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "GCC_VERSION", "");
- ValueList scummvmOSX_HeaderPaths;
- for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
- scummvmOSX_HeaderPaths.push_back("\"" + *i + "\"");
- scummvmOSX_HeaderPaths.push_back("/usr/local/include/" + libSDL);
- scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include/" + libSDL);
- scummvmOSX_HeaderPaths.push_back("/opt/local/include/" + libSDL);
- scummvmOSX_HeaderPaths.push_back("/usr/local/include");
- scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include");
- scummvmOSX_HeaderPaths.push_back("/opt/local/include");
- scummvmOSX_HeaderPaths.push_back("/usr/local/include/freetype2");
- scummvmOSX_HeaderPaths.push_back("/opt/homebrew/include/freetype2");
- scummvmOSX_HeaderPaths.push_back("/opt/local/include/freetype2");
- scummvmOSX_HeaderPaths.push_back("include/");
- scummvmOSX_HeaderPaths.push_back("$(SRCROOT)/engines/");
- scummvmOSX_HeaderPaths.push_back("$(SRCROOT)");
- ADD_SETTING_LIST(scummvmOSX_Debug, "HEADER_SEARCH_PATHS", scummvmOSX_HeaderPaths, kSettingsQuoteVariable | kSettingsAsList, 5);
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/macosx/Info.plist");
- ValueList scummvmOSX_LibPaths;
- for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
- scummvmOSX_LibPaths.push_back("\"" + *i + "\"");
- scummvmOSX_LibPaths.push_back("/usr/local/lib");
- scummvmOSX_LibPaths.push_back("/opt/homebrew/lib");
- scummvmOSX_LibPaths.push_back("/opt/local/lib");
- scummvmOSX_LibPaths.push_back("\"$(inherited)\"");
- scummvmOSX_LibPaths.push_back("\"\\\"$(SRCROOT)/lib\\\"\"");
- ADD_SETTING_LIST(scummvmOSX_Debug, "LIBRARY_SEARCH_PATHS", scummvmOSX_LibPaths, kSettingsNoQuote | kSettingsAsList, 5);
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "MACOSX_DEPLOYMENT_TARGET", "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)");
- ADD_SETTING_QUOTE(scummvmOSX_Debug, "OTHER_CFLAGS", "");
- ADD_SETTING(scummvmOSX_Debug, "PRODUCT_NAME", PROJECT_NAME);
-
- scummvmOSX_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
- scummvmOSX_Debug_Object->_properties["buildSettings"] = scummvmOSX_Debug;
-
- // Release
- Object *scummvmOSX_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Release", _targets[OSX_TARGET] /* ScummVM-macOS */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
- Property scummvmOSX_Release(scummvmOSX_Debug);
- ADD_SETTING(scummvmOSX_Release, "COPY_PHASE_STRIP", "YES");
- REMOVE_SETTING(scummvmOSX_Release, "GCC_DYNAMIC_NO_PIC");
- REMOVE_SETTING(scummvmOSX_Release, "GCC_OPTIMIZATION_LEVEL");
- ADD_SETTING(scummvmOSX_Release, "GCC_OPTIMIZATION_LEVEL", "3");
- ADD_SETTING(scummvmOSX_Release, "WRAPPER_EXTENSION", "app");
- REMOVE_SETTING(scummvmOSX_Release, "DEBUG_INFORMATION_FORMAT");
- ADD_SETTING_QUOTE(scummvmOSX_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
-
- scummvmOSX_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
- scummvmOSX_Release_Object->_properties["buildSettings"] = scummvmOSX_Release;
-
- _buildConfiguration.add(scummvmOSX_Debug_Object);
- _buildConfiguration.add(scummvmOSX_Release_Object);
///****************************************
- // * ScummVM - tvOS Target
+ // * ScummVM - iOS Target
// ****************************************/
- // Debug
- Object *tvOS_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-tvOS_Debug", _targets[TVOS_TARGET] /* ScummVM-tvOS */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
- Property tvOS_Debug;
- ADD_SETTING_QUOTE(tvOS_Debug, "CODE_SIGN_IDENTITY", "iPhone Developer");
- ADD_SETTING_QUOTE_VAR(tvOS_Debug, "CODE_SIGN_IDENTITY[sdk=appletvos*]", "iPhone Developer");
- ADD_SETTING(tvOS_Debug, "COPY_PHASE_STRIP", "NO");
- ADD_SETTING_QUOTE(tvOS_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
- ADD_SETTING(tvOS_Debug, "ENABLE_BITCODE", "NO");
- ValueList tvOS_FrameworkSearchPaths;
- tvOS_FrameworkSearchPaths.push_back("$(inherited)");
- tvOS_FrameworkSearchPaths.push_back("\"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"");
- ADD_SETTING_LIST(tvOS_Debug, "FRAMEWORK_SEARCH_PATHS", tvOS_FrameworkSearchPaths, kSettingsAsList, 5);
- ADD_SETTING(tvOS_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
- ADD_SETTING(tvOS_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
- ADD_SETTING(tvOS_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
- ADD_SETTING(tvOS_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
- ADD_SETTING(tvOS_Debug, "GCC_WARN_64_TO_32_BIT_CONVERSION", "NO");
- ADD_SETTING_QUOTE(tvOS_Debug, "GCC_PREFIX_HEADER", "");
- ADD_SETTING(tvOS_Debug, "GCC_UNROLL_LOOPS", "YES");
- ValueList tvOS_HeaderSearchPaths;
- tvOS_HeaderSearchPaths.push_back("$(SRCROOT)/engines/");
- tvOS_HeaderSearchPaths.push_back("$(SRCROOT)");
- for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
- tvOS_HeaderSearchPaths.push_back("\"" + *i + "\"");
- tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "\"");
- tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include\"");
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
- tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include/" + libSDL + "\"");
+ if (setup.appleEmbedded) {
+ // Debug
+ Object *iPhone_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Debug", IOS_TARGET /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
+ Property iPhone_Debug;
+ ADD_SETTING_QUOTE(iPhone_Debug, "CODE_SIGN_IDENTITY", "iPhone Developer");
+ ADD_SETTING_QUOTE_VAR(iPhone_Debug, "CODE_SIGN_IDENTITY[sdk=iphoneos*]", "iPhone Developer");
+ ADD_SETTING(iPhone_Debug, "COPY_PHASE_STRIP", "NO");
+ ADD_SETTING_QUOTE(iPhone_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
+ ADD_SETTING(iPhone_Debug, "ENABLE_BITCODE", "NO");
+ ValueList iPhone_FrameworkSearchPaths;
+ iPhone_FrameworkSearchPaths.push_back("$(inherited)");
+ iPhone_FrameworkSearchPaths.push_back("\"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"");
+ ADD_SETTING_LIST(iPhone_Debug, "FRAMEWORK_SEARCH_PATHS", iPhone_FrameworkSearchPaths, kSettingsAsList, 5);
+ ADD_SETTING(iPhone_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
+ ADD_SETTING(iPhone_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
+ ADD_SETTING(iPhone_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
+ ADD_SETTING(iPhone_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
+ ADD_SETTING_QUOTE(iPhone_Debug, "GCC_PREFIX_HEADER", "");
+ ADD_SETTING(iPhone_Debug, "GCC_UNROLL_LOOPS", "YES");
+ ValueList iPhone_HeaderSearchPaths;
+ iPhone_HeaderSearchPaths.push_back("$(SRCROOT)/engines/");
+ iPhone_HeaderSearchPaths.push_back("$(SRCROOT)");
+ for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
+ iPhone_HeaderSearchPaths.push_back("\"" + *i + "\"");
+ iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "\"");
+ if (!setup.useXCFramework) {
+ iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include\"");
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
+ iPhone_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include/" + libSDL + "\"");
+ }
+ }
+ ADD_SETTING_LIST(iPhone_Debug, "HEADER_SEARCH_PATHS", iPhone_HeaderSearchPaths, kSettingsAsList | kSettingsQuoteVariable, 5);
+ ADD_SETTING_QUOTE(iPhone_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/ios7/Info.plist");
+ ValueList iPhone_LibPaths;
+ for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
+ iPhone_LibPaths.push_back("\"" + *i + "\"");
+ iPhone_LibPaths.push_back("$(inherited)");
+ if (!setup.useXCFramework)
+ iPhone_LibPaths.push_back("\"" + projectOutputDirectory + "/lib\"");
+ ADD_SETTING_LIST(iPhone_Debug, "LIBRARY_SEARCH_PATHS", iPhone_LibPaths, kSettingsAsList, 5);
+ ADD_SETTING(iPhone_Debug, "ONLY_ACTIVE_ARCH", "YES");
+ ADD_SETTING(iPhone_Debug, "PRODUCT_NAME", PROJECT_NAME);
+ ADD_SETTING(iPhone_Debug, "PRODUCT_BUNDLE_IDENTIFIER", "\"org.scummvm.${PRODUCT_NAME}\"");
+ ADD_SETTING(iPhone_Debug, "IPHONEOS_DEPLOYMENT_TARGET", "9.0");
+ ADD_SETTING_QUOTE_VAR(iPhone_Debug, "PROVISIONING_PROFILE[sdk=iphoneos*]", "");
+ ADD_SETTING(iPhone_Debug, "SDKROOT", "iphoneos");
+ ADD_SETTING_QUOTE(iPhone_Debug, "TARGETED_DEVICE_FAMILY", "1,2");
+ ValueList scummvmIOSsimulator_defines;
+ ADD_DEFINE(scummvmIOSsimulator_defines, "\"$(inherited)\"");
+ ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE");
+ ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE_IOS7");
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
+ ADD_DEFINE(scummvmIOSsimulator_defines, "WITHOUT_SDL");
+ ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]\"", scummvmIOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
+ // Separate iphoneos and iphonesimulator definitions since simulator running on x86_64
+ // hosts doesn't support NEON
+ ValueList scummvmIOS_defines = scummvmIOSsimulator_defines;
+ ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]\"", scummvmIOS_defines, kSettingsNoQuote | kSettingsAsList, 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", "", kSettingsNoValue);
+ iPhone_Debug_Object->_properties["buildSettings"] = iPhone_Debug;
+
+ // Release
+ Object *iPhone_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Release", IOS_TARGET /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
+ Property iPhone_Release(iPhone_Debug);
+ ADD_SETTING(iPhone_Release, "GCC_OPTIMIZATION_LEVEL", "3");
+ ADD_SETTING(iPhone_Release, "COPY_PHASE_STRIP", "YES");
+ REMOVE_SETTING(iPhone_Release, "GCC_DYNAMIC_NO_PIC");
+ ADD_SETTING(iPhone_Release, "WRAPPER_EXTENSION", "app");
+ REMOVE_SETTING(iPhone_Release, "DEBUG_INFORMATION_FORMAT");
+ ADD_SETTING_QUOTE(iPhone_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
+
+ iPhone_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
+ iPhone_Release_Object->_properties["buildSettings"] = iPhone_Release;
+
+ _buildConfiguration.add(iPhone_Debug_Object);
+ _buildConfiguration.add(iPhone_Release_Object);
}
- ADD_SETTING_LIST(tvOS_Debug, "HEADER_SEARCH_PATHS", tvOS_HeaderSearchPaths, kSettingsAsList | kSettingsQuoteVariable, 5);
- ADD_SETTING_QUOTE(tvOS_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/tvos/Info.plist");
- ValueList tvOS_LibPaths;
- for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
- tvOS_LibPaths.push_back("\"" + *i + "\"");
- tvOS_LibPaths.push_back("$(inherited)");
- tvOS_LibPaths.push_back("\"" + projectOutputDirectory + "/lib\"");
- ADD_SETTING_LIST(tvOS_Debug, "LIBRARY_SEARCH_PATHS", tvOS_LibPaths, kSettingsAsList, 5);
- ADD_SETTING(tvOS_Debug, "ONLY_ACTIVE_ARCH", "YES");
- ADD_SETTING(tvOS_Debug, "PRODUCT_NAME", PROJECT_NAME);
- ADD_SETTING(tvOS_Debug, "PRODUCT_BUNDLE_IDENTIFIER", "\"org.scummvm.${PRODUCT_NAME}\"");
- ADD_SETTING(tvOS_Debug, "TVOS_DEPLOYMENT_TARGET", "9.0");
- ADD_SETTING_QUOTE_VAR(tvOS_Debug, "PROVISIONING_PROFILE[sdk=appletvos*]", "");
- ADD_SETTING(tvOS_Debug, "SDKROOT", "appletvos");
- ADD_SETTING_QUOTE(tvOS_Debug, "TARGETED_DEVICE_FAMILY", "3");
- ValueList scummvmTVOSsimulator_defines;
- ADD_DEFINE(scummvmTVOSsimulator_defines, "\"$(inherited)\"");
- ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE");
- ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE_IOS7");
- if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
- ADD_DEFINE(scummvmTVOSsimulator_defines, "WITHOUT_SDL");
- ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvsimulator*]\"", scummvmTVOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
- // Separate appletvos and appletvsimulator definitions since simulator running on x86_64
- // hosts doesn't support NEON
- ValueList scummvmTVOS_defines = scummvmTVOSsimulator_defines;
- ADD_DEFINE(scummvmTVOS_defines, "SCUMMVM_NEON");
- ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvos*]\"", scummvmTVOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
- ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon");
- ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage");
- tvOS_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
- tvOS_Debug_Object->_properties["buildSettings"] = tvOS_Debug;
-
- // Release
- Object *tvOS_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-tvOS_Release", _targets[TVOS_TARGET] /* ScummVM-tvOS */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
- Property tvOS_Release(tvOS_Debug);
- ADD_SETTING(tvOS_Release, "GCC_OPTIMIZATION_LEVEL", "3");
- ADD_SETTING(tvOS_Release, "COPY_PHASE_STRIP", "YES");
- REMOVE_SETTING(tvOS_Release, "GCC_DYNAMIC_NO_PIC");
- ADD_SETTING(tvOS_Release, "WRAPPER_EXTENSION", "app");
- REMOVE_SETTING(tvOS_Release, "DEBUG_INFORMATION_FORMAT");
- ADD_SETTING_QUOTE(tvOS_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
- tvOS_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
- tvOS_Release_Object->_properties["buildSettings"] = tvOS_Release;
+ ///****************************************
+ // * ScummVM - tvOS Target
+ // ****************************************/
- _buildConfiguration.add(tvOS_Debug_Object);
- _buildConfiguration.add(tvOS_Release_Object);
+ if (setup.appleEmbedded) {
+ // Debug
+ Object *tvOS_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-tvOS_Debug", TVOS_TARGET /* ScummVM-tvOS */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
+ Property tvOS_Debug;
+ ADD_SETTING_QUOTE(tvOS_Debug, "CODE_SIGN_IDENTITY", "iPhone Developer");
+ ADD_SETTING_QUOTE_VAR(tvOS_Debug, "CODE_SIGN_IDENTITY[sdk=appletvos*]", "iPhone Developer");
+ ADD_SETTING(tvOS_Debug, "COPY_PHASE_STRIP", "NO");
+ ADD_SETTING_QUOTE(tvOS_Debug, "DEBUG_INFORMATION_FORMAT", "dwarf");
+ ADD_SETTING(tvOS_Debug, "ENABLE_BITCODE", "NO");
+ ValueList tvOS_FrameworkSearchPaths;
+ tvOS_FrameworkSearchPaths.push_back("$(inherited)");
+ tvOS_FrameworkSearchPaths.push_back("\"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"");
+ ADD_SETTING_LIST(tvOS_Debug, "FRAMEWORK_SEARCH_PATHS", tvOS_FrameworkSearchPaths, kSettingsAsList, 5);
+ ADD_SETTING(tvOS_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
+ ADD_SETTING(tvOS_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
+ ADD_SETTING(tvOS_Debug, "GCC_OPTIMIZATION_LEVEL", "0");
+ ADD_SETTING(tvOS_Debug, "GCC_PRECOMPILE_PREFIX_HEADER", "NO");
+ ADD_SETTING(tvOS_Debug, "GCC_WARN_64_TO_32_BIT_CONVERSION", "NO");
+ ADD_SETTING_QUOTE(tvOS_Debug, "GCC_PREFIX_HEADER", "");
+ ADD_SETTING(tvOS_Debug, "GCC_UNROLL_LOOPS", "YES");
+ ValueList tvOS_HeaderSearchPaths;
+ tvOS_HeaderSearchPaths.push_back("$(SRCROOT)/engines/");
+ tvOS_HeaderSearchPaths.push_back("$(SRCROOT)");
+ for (StringList::const_iterator i = setup.includeDirs.begin(); i != setup.includeDirs.end(); ++i)
+ tvOS_HeaderSearchPaths.push_back("\"" + *i + "\"");
+ tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "\"");
+ tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include\"");
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET")) {
+ tvOS_HeaderSearchPaths.push_back("\"" + projectOutputDirectory + "/include/" + libSDL + "\"");
+ }
+ ADD_SETTING_LIST(tvOS_Debug, "HEADER_SEARCH_PATHS", tvOS_HeaderSearchPaths, kSettingsAsList | kSettingsQuoteVariable, 5);
+ ADD_SETTING_QUOTE(tvOS_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/tvos/Info.plist");
+ ValueList tvOS_LibPaths;
+ for (StringList::const_iterator i = setup.libraryDirs.begin(); i != setup.libraryDirs.end(); ++i)
+ tvOS_LibPaths.push_back("\"" + *i + "\"");
+ tvOS_LibPaths.push_back("$(inherited)");
+ tvOS_LibPaths.push_back("\"" + projectOutputDirectory + "/lib\"");
+ ADD_SETTING_LIST(tvOS_Debug, "LIBRARY_SEARCH_PATHS", tvOS_LibPaths, kSettingsAsList, 5);
+ ADD_SETTING(tvOS_Debug, "ONLY_ACTIVE_ARCH", "YES");
+ ADD_SETTING(tvOS_Debug, "PRODUCT_NAME", PROJECT_NAME);
+ ADD_SETTING(tvOS_Debug, "PRODUCT_BUNDLE_IDENTIFIER", "\"org.scummvm.${PRODUCT_NAME}\"");
+ ADD_SETTING(tvOS_Debug, "TVOS_DEPLOYMENT_TARGET", "9.0");
+ ADD_SETTING_QUOTE_VAR(tvOS_Debug, "PROVISIONING_PROFILE[sdk=appletvos*]", "");
+ ADD_SETTING(tvOS_Debug, "SDKROOT", "appletvos");
+ ADD_SETTING_QUOTE(tvOS_Debug, "TARGETED_DEVICE_FAMILY", "3");
+ ValueList scummvmTVOSsimulator_defines;
+ ADD_DEFINE(scummvmTVOSsimulator_defines, "\"$(inherited)\"");
+ ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE");
+ ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE_IOS7");
+ if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
+ ADD_DEFINE(scummvmTVOSsimulator_defines, "WITHOUT_SDL");
+ ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvsimulator*]\"", scummvmTVOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
+ // Separate appletvos and appletvsimulator definitions since simulator running on x86_64
+ // hosts doesn't support NEON
+ ValueList scummvmTVOS_defines = scummvmTVOSsimulator_defines;
+ ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvos*]\"", scummvmTVOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
+ ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon");
+ ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage");
+ tvOS_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
+ tvOS_Debug_Object->_properties["buildSettings"] = tvOS_Debug;
+
+ // Release
+ Object *tvOS_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-tvOS_Release", TVOS_TARGET /* ScummVM-tvOS */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
+ Property tvOS_Release(tvOS_Debug);
+ ADD_SETTING(tvOS_Release, "GCC_OPTIMIZATION_LEVEL", "3");
+ ADD_SETTING(tvOS_Release, "COPY_PHASE_STRIP", "YES");
+ REMOVE_SETTING(tvOS_Release, "GCC_DYNAMIC_NO_PIC");
+ ADD_SETTING(tvOS_Release, "WRAPPER_EXTENSION", "app");
+ REMOVE_SETTING(tvOS_Release, "DEBUG_INFORMATION_FORMAT");
+ ADD_SETTING_QUOTE(tvOS_Release, "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym");
+
+ tvOS_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
+ tvOS_Release_Object->_properties["buildSettings"] = tvOS_Release;
+
+ _buildConfiguration.add(tvOS_Debug_Object);
+ _buildConfiguration.add(tvOS_Release_Object);
+ }
// Warning: This assumes we have all configurations with a Debug & Release pair
for (std::vector<Object *>::iterator config = _buildConfiguration._objects.begin(); config != _buildConfiguration._objects.end(); config++) {
@@ -1642,6 +1613,9 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
}
void XcodeProvider::setupImageAssetCatalog(const BuildSetup &setup) {
+ if (!setup.appleEmbedded) {
+ return;
+ }
const std::string filename = "Images.xcassets";
const std::string absoluteCatalogPath = _projectRoot + "/dists/ios7/" + filename;
const std::string absoluteCatalogPathTVOS = _projectRoot + "/dists/tvos/" + filename;
@@ -1675,13 +1649,8 @@ void XcodeProvider::setupDefines(const BuildSetup &setup) {
for (StringList::const_iterator i = setup.defines.begin(); i != setup.defines.end(); ++i) {
ADD_DEFINE(_defines, *i);
}
- REMOVE_DEFINE(_defines, "USE_NASM"); // Not supported on Mac
// Add special defines for Mac support
- REMOVE_DEFINE(_defines, "MACOSX");
- REMOVE_DEFINE(_defines, "IPHONE");
- REMOVE_DEFINE(_defines, "IPHONE_IOS7");
- REMOVE_DEFINE(_defines, "SDL_BACKEND");
- REMOVE_DEFINE(_defines, "SCUMMVM_NEON");
+ // TODO: check if it's still needed
ADD_DEFINE(_defines, "CONFIG_H");
ADD_DEFINE(_defines, "UNIX");
ADD_DEFINE(_defines, "HAS_FSEEKO_OFFT_64");
Commit: adbe8679dda08e610cc249600ba3af6f762cabd9
https://github.com/scummvm/scummvm/commit/adbe8679dda08e610cc249600ba3af6f762cabd9
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2025-12-03T08:14:50+01:00
Commit Message:
DOCPORTAL: Update build instructions for iOS and tvOS ports
Add the new parameter --ios to create_project.
The pre-built frameworks contains the A52 library. The feature is
however disabled by default in create_project. Add build instruction
to enable it when building the iOS and tvOS ports.
Don't disable nasm, that is handled in create_project.
Changed paths:
doc/docportal/other_platforms/ios_build.rst
diff --git a/doc/docportal/other_platforms/ios_build.rst b/doc/docportal/other_platforms/ios_build.rst
index 4187b32ce64..3f4e37bc47b 100644
--- a/doc/docportal/other_platforms/ios_build.rst
+++ b/doc/docportal/other_platforms/ios_build.rst
@@ -66,7 +66,7 @@ It's time to generate the Xcode project. Run the following on the command line:
.. code::
- ../scummvm/devtools/create_project/xcode/build/Release/create_project ../scummvm --xcode --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --disable-nasm --disable-taskbar --disable-tts
+ ../scummvm/devtools/create_project/xcode/build/Release/create_project ../scummvm --xcode --ios --use-xcframework --enable-faad --enable-gif --enable-mikmod --enable-vpx --enable-mpc --enable-a52 --disable-taskbar --disable-tts
The resulting directory structure looks like this:
Commit: bc46fb7a715eca14ae1dfe51d0f4ca3e358239c2
https://github.com/scummvm/scummvm/commit/bc46fb7a715eca14ae1dfe51d0f4ca3e358239c2
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:15:49+01:00
Commit Message:
PS3: Disable windowed and iconify features
This is a fullscreen backend
Changed paths:
backends/platform/sdl/ps3/ps3.cpp
diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp
index 94ca6d79b93..68a01ff4160 100644
--- a/backends/platform/sdl/ps3/ps3.cpp
+++ b/backends/platform/sdl/ps3/ps3.cpp
@@ -127,6 +127,8 @@ Common::HardwareInputSet *OSystem_PS3::getHardwareInputSet() {
bool OSystem_PS3::hasFeature(Feature f) {
if (f == kFeatureDisplayLogFile ||
+ f == kFeatureFullscreenMode ||
+ f == kFeatureIconifyWindow ||
f == kFeatureOpenUrl ||
f == kFeatureSystemBrowserDialog ||
f == kFeatureClipboardSupport) {
Commit: d121f4d940eabdecd2f04f895bafe0d733179d8d
https://github.com/scummvm/scummvm/commit/d121f4d940eabdecd2f04f895bafe0d733179d8d
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:16:17+01:00
Commit Message:
VIDEO: Don't hardcode expected channels in PSX decoder
Still allow only one channel, but the channel number doesn't matter.
Also rename track to channel to follow the specifications.
Fixes Trac#15476.
Changed paths:
video/psx_decoder.cpp
video/psx_decoder.h
diff --git a/video/psx_decoder.cpp b/video/psx_decoder.cpp
index 7b1c21d3665..eadcf7e2dcd 100644
--- a/video/psx_decoder.cpp
+++ b/video/psx_decoder.cpp
@@ -200,9 +200,9 @@ void PSXStreamDecoder::readNextPacket() {
error("Corrupt PSX stream sector");
sector->seek(0x11);
- byte track = sector->readByte();
- if (track >= 32) {
- warning("Bad PSX stream track");
+ byte channel = sector->readByte();
+ if (channel >= 32) {
+ warning("Bad PSX stream channel");
return;
}
@@ -210,60 +210,64 @@ void PSXStreamDecoder::readNextPacket() {
switch (sectorType) {
case CDXA_TYPE_DATA:
- case CDXA_TYPE_VIDEO:
- if (track == 1) {
- if (!_videoTrack) {
- _videoTrack = new PSXVideoTrack(sector, _speed, _frameCount);
- addTrack(_videoTrack);
-
- // If no video track is initialized, we are called
- // by loadStream(). Stop here, and start rendering
- // the track from the next call.
- _stream->seek(prevPos);
- return;
- }
-
- sector->seek(28);
- uint16 curSector = sector->readUint16LE();
- uint16 sectorCount = sector->readUint16LE();
- sector->readUint32LE();
- uint16 frameSize = sector->readUint32LE();
-
- if (curSector >= sectorCount)
- error("Bad sector");
-
- if (!partialFrame)
- partialFrame = (byte *)malloc(sectorCount * VIDEO_DATA_CHUNK_SIZE);
-
- sector->seek(VIDEO_DATA_HEADER_SIZE);
- sector->read(partialFrame + curSector * VIDEO_DATA_CHUNK_SIZE, VIDEO_DATA_CHUNK_SIZE);
-
- if (curSector == sectorCount - 1) {
- // Done assembling the frame
- Common::BitStreamMemoryStream *frame = new Common::BitStreamMemoryStream(partialFrame, frameSize, DisposeAfterUse::YES);
-
- _videoTrack->decodeFrame(frame, sectorsRead);
-
- delete frame;
- delete sector;
- return;
- }
- } else
- error("Unhandled multi-track video");
+ case CDXA_TYPE_VIDEO: {
+ if (!_videoTrack) {
+ _videoTrack = new PSXVideoTrack(sector, _speed, _frameCount, channel);
+ addTrack(_videoTrack);
+
+ // If no video track is initialized, we are called
+ // by loadStream(). Stop here, and start rendering
+ // the track from the next call.
+ _stream->seek(prevPos);
+ return;
+ }
+
+ if (_videoTrack->getChannel() != channel) {
+ warning("Unhandled multi-channel video");
+ return;
+ }
+
+ sector->seek(28);
+ uint16 curSector = sector->readUint16LE();
+ uint16 sectorCount = sector->readUint16LE();
+ sector->readUint32LE();
+ uint16 frameSize = sector->readUint32LE();
+
+ if (curSector >= sectorCount)
+ error("Bad sector");
+
+ if (!partialFrame)
+ partialFrame = (byte *)malloc(sectorCount * VIDEO_DATA_CHUNK_SIZE);
+
+ sector->seek(VIDEO_DATA_HEADER_SIZE);
+ sector->read(partialFrame + curSector * VIDEO_DATA_CHUNK_SIZE, VIDEO_DATA_CHUNK_SIZE);
+
+ if (curSector == sectorCount - 1) {
+ // Done assembling the frame
+ Common::BitStreamMemoryStream *frame = new Common::BitStreamMemoryStream(partialFrame, frameSize, DisposeAfterUse::YES);
+
+ _videoTrack->decodeFrame(frame, sectorsRead);
+
+ delete frame;
+ delete sector;
+ return;
+ }
break;
- case CDXA_TYPE_AUDIO:
+ }
+ case CDXA_TYPE_AUDIO: {
// We only handle one audio channel so far
- if (track == 1) {
- if (!_audioTrack) {
- _audioTrack = new PSXAudioTrack(sector, getSoundType());
- addTrack(_audioTrack);
- }
-
- _audioTrack->queueAudioFromSector(sector);
- } else {
- warning("Unhandled multi-track audio");
+ if (!_audioTrack) {
+ _audioTrack = new PSXAudioTrack(sector, getSoundType(), channel);
+ addTrack(_audioTrack);
}
+
+ if (_audioTrack->getChannel() != channel) {
+ warning("Unhandled multi-channel audio");
+ }
+
+ _audioTrack->queueAudioFromSector(sector);
break;
+ }
default:
// This shows up way too often, but the other sectors
// are safe to ignore
@@ -308,8 +312,8 @@ Common::SeekableReadStream *PSXStreamDecoder::readSector() {
#define AUDIO_DATA_CHUNK_SIZE 2304
#define AUDIO_DATA_SAMPLE_COUNT 4032
-PSXStreamDecoder::PSXAudioTrack::PSXAudioTrack(Common::SeekableReadStream *sector, Audio::Mixer::SoundType soundType) :
- AudioTrack(soundType) {
+PSXStreamDecoder::PSXAudioTrack::PSXAudioTrack(Common::SeekableReadStream *sector, Audio::Mixer::SoundType soundType, byte channel) :
+ AudioTrack(soundType), _channel(channel) {
assert(sector);
_endOfTrack = false;
@@ -350,7 +354,8 @@ Audio::AudioStream *PSXStreamDecoder::PSXAudioTrack::getAudioStream() const {
}
-PSXStreamDecoder::PSXVideoTrack::PSXVideoTrack(Common::SeekableReadStream *firstSector, CDSpeed speed, int frameCount) : _nextFrameStartTime(0, speed), _frameCount(frameCount), _surface(nullptr) {
+PSXStreamDecoder::PSXVideoTrack::PSXVideoTrack(Common::SeekableReadStream *firstSector, CDSpeed speed, int frameCount, byte channel) :
+ _nextFrameStartTime(0, speed), _frameCount(frameCount), _channel(channel), _surface(nullptr) {
assert(firstSector);
firstSector->seek(40);
diff --git a/video/psx_decoder.h b/video/psx_decoder.h
index b29b4c3f19c..d789e87ac30 100644
--- a/video/psx_decoder.h
+++ b/video/psx_decoder.h
@@ -77,9 +77,10 @@ protected:
private:
class PSXVideoTrack : public VideoTrack {
public:
- PSXVideoTrack(Common::SeekableReadStream *firstSector, CDSpeed speed, int frameCount);
+ PSXVideoTrack(Common::SeekableReadStream *firstSector, CDSpeed speed, int frameCount, byte channel);
~PSXVideoTrack() override;
+ byte getChannel() const { return _channel; }
uint16 getWidth() const override { return _width; }
uint16 getHeight() const override { return _height; }
Graphics::PixelFormat getPixelFormat() const override { return _pixelFormat; }
@@ -105,6 +106,7 @@ private:
uint16 _height;
uint32 _frameCount;
Audio::Timestamp _nextFrameStartTime;
+ byte _channel;
bool _endOfTrack;
int _curFrame;
@@ -135,9 +137,10 @@ private:
class PSXAudioTrack : public AudioTrack {
public:
- PSXAudioTrack(Common::SeekableReadStream *sector, Audio::Mixer::SoundType soundType);
+ PSXAudioTrack(Common::SeekableReadStream *sector, Audio::Mixer::SoundType soundType, byte channel);
~PSXAudioTrack() override;
+ byte getChannel() const { return _channel; }
bool endOfTrack() const override;
void setEndOfTrack() { _endOfTrack = true; }
@@ -148,6 +151,7 @@ private:
Audio::QueuingAudioStream *_audStream;
+ byte _channel;
bool _endOfTrack;
bool _stereo;
uint _rate;
Commit: 8270de6cb8504906d7ee7d7ed0d57d9ae9c22ea5
https://github.com/scummvm/scummvm/commit/8270de6cb8504906d7ee7d7ed0d57d9ae9c22ea5
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-12-03T08:55:49+01:00
Commit Message:
NEWS: Synchronize with master
Changed paths:
NEWS.md
diff --git a/NEWS.md b/NEWS.md
index 3c2405b898e..4d441b41363 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -54,6 +54,9 @@ For a more comprehensive changelog of the latest experimental code, see:
Cruise:
- Added Text-to-Speech support.
+ Cryomni3D:
+ - Added support for Chinese DOS/Win95 Versailles CD version
+
Draci:
- Added Text-to-Speech support.
@@ -71,6 +74,9 @@ For a more comprehensive changelog of the latest experimental code, see:
Freescape:
- Added roll rotation to Driller and Dark Side.
+ - Added full TinyGL support for all the games.
+ - Fixed several small details across all the games including missing
+ graphics and sounds.
Gob:
- Added Text-to-Speech support.
@@ -85,6 +91,10 @@ For a more comprehensive changelog of the latest experimental code, see:
Kyra:
- Reduce CPU usage in the LoL main menu.
- Reduce CPU usage in EoB 1 and 2.
+ - Introduced new launcher checkbox in Eye of the Beholder 1 and 2,
+ to enable smarter replacing of thrown weapons from inventory.
+ - In Eye of the Beholder 1, Ileria and Beohram NPC data fix is now behind
+ a separate feature flag and launcher checkbox.
Lab:
- Added keymapper support.
@@ -133,7 +143,7 @@ For a more comprehensive changelog of the latest experimental code, see:
- Added several important missing graphics and gameplay sounds,
the engine is now considered to be at feature parity with the original game.
- Fixed inaccessible places, missing interactions or conversations.
- - Added option to highlight decision areas for improved visibility.
+ - Added option to highlight decision areas for improved visibility.
- Added support for third party subtitles.
- Added missing features and fixed crashes in the desktop screen.
- Fixed various graphics and cursor glitches.
@@ -219,6 +229,40 @@ For a more comprehensive changelog of the latest experimental code, see:
- 3D renderer enabled by default for 2D games.
- Added Text-to-Speech support.
+ Desktop ports:
+ - Allow the user to disable manual resizing of the ScummVM window (using Ctrl+R)
+ - Add support for building with SDL3 (although SDL2 is still used by default)
+ - Add support for scaling shaders within 3D engines
+ - Remove last remnants from the ResidualVM merge: the codebase is now fully unified
+
+ Android port:
+ - Support Android 16
+ - Add support for scaling shaders within 3D engines
+ - Add support for antialiasing with 3D engines
+ - Remove last remnants from the ResidualVM merge: the codebase is now fully unified
+ - Take screen forbidden zones into account
+ - Use Android networking code instead of libcurl: system HTTPS certificates are now used
+ - Long-press on back button with latest Android versions is fixed
+
+ Atari port:
+ - Unified paths for FreeMiNT and TOS in scummvm.cfg (better delete the old
+ config file).
+ - Added translation for longer than 8+3 .dat filenames.
+ - Fixed slow rendering of Eco Quest's intro.
+ - Fixed cursor rendering of Phantasmagoria, KQ7 and other SCI32 games.
+ - Increased stack size to 256k to avoid stack overflow in some engines (e.g.
+ Supernova).
+ - Fixed launching games from command line.
+
+ DS port:
+ - Migrate to latest devkitPRO SDK
+
+ iOS port:
+ - Add support for scaling shaders within 3D engines
+ - Add support for antialiasing with 3D engines
+ - Remove last remnants from the ResidualVM merge: the codebase is now fully unified
+ - Take screen forbidden zones into account
+
#### 2.9.1 "Slappin da BASS" (2025-05-25)
AGI:
More information about the Scummvm-git-logs
mailing list