MACOSX: Add Sparkle support
This commit is contained in:
parent
da60ff3ded
commit
828f1884b4
15 changed files with 446 additions and 6 deletions
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include "backends/graphics/graphics.h"
|
#include "backends/graphics/graphics.h"
|
||||||
#include "backends/mutex/mutex.h"
|
#include "backends/mutex/mutex.h"
|
||||||
|
#include "common/updates.h"
|
||||||
|
|
||||||
#include "audio/mixer.h"
|
#include "audio/mixer.h"
|
||||||
#include "graphics/pixelformat.h"
|
#include "graphics/pixelformat.h"
|
||||||
|
@ -34,7 +35,8 @@ ModularBackend::ModularBackend()
|
||||||
:
|
:
|
||||||
_mutexManager(0),
|
_mutexManager(0),
|
||||||
_graphicsManager(0),
|
_graphicsManager(0),
|
||||||
_mixer(0) {
|
_mixer(0),
|
||||||
|
_updateManager(0) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +45,8 @@ ModularBackend::~ModularBackend() {
|
||||||
_graphicsManager = 0;
|
_graphicsManager = 0;
|
||||||
delete _mixer;
|
delete _mixer;
|
||||||
_mixer = 0;
|
_mixer = 0;
|
||||||
|
delete _updateManager;
|
||||||
|
_updateManager = 0;
|
||||||
delete _mutexManager;
|
delete _mutexManager;
|
||||||
_mutexManager = 0;
|
_mutexManager = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#define BACKENDS_MODULAR_BACKEND_H
|
#define BACKENDS_MODULAR_BACKEND_H
|
||||||
|
|
||||||
#include "backends/base-backend.h"
|
#include "backends/base-backend.h"
|
||||||
|
#include "common/updates.h"
|
||||||
|
|
||||||
class GraphicsManager;
|
class GraphicsManager;
|
||||||
class MutexManager;
|
class MutexManager;
|
||||||
|
@ -144,6 +145,7 @@ protected:
|
||||||
MutexManager *_mutexManager;
|
MutexManager *_mutexManager;
|
||||||
GraphicsManager *_graphicsManager;
|
GraphicsManager *_graphicsManager;
|
||||||
Audio::Mixer *_mixer;
|
Audio::Mixer *_mixer;
|
||||||
|
Common::UpdateManager *_updateManager;
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,7 +15,8 @@ MODULE_OBJS := \
|
||||||
midi/timidity.o \
|
midi/timidity.o \
|
||||||
saves/savefile.o \
|
saves/savefile.o \
|
||||||
saves/default/default-saves.o \
|
saves/default/default-saves.o \
|
||||||
timer/default/default-timer.o
|
timer/default/default-timer.o \
|
||||||
|
updates/sparkle-updates.o
|
||||||
|
|
||||||
|
|
||||||
ifdef USE_ELF_LOADER
|
ifdef USE_ELF_LOADER
|
||||||
|
@ -87,7 +88,8 @@ endif
|
||||||
ifdef MACOSX
|
ifdef MACOSX
|
||||||
MODULE_OBJS += \
|
MODULE_OBJS += \
|
||||||
midi/coreaudio.o \
|
midi/coreaudio.o \
|
||||||
midi/coremidi.o
|
midi/coremidi.o \
|
||||||
|
updates/macosx/macosx-updates.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef WIN32
|
ifdef WIN32
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "backends/platform/sdl/macosx/macosx.h"
|
#include "backends/platform/sdl/macosx/macosx.h"
|
||||||
#include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h"
|
#include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h"
|
||||||
#include "backends/platform/sdl/macosx/appmenu_osx.h"
|
#include "backends/platform/sdl/macosx/appmenu_osx.h"
|
||||||
|
#include "backends/updates/macosx/macosx-updates.h"
|
||||||
|
|
||||||
#include "common/archive.h"
|
#include "common/archive.h"
|
||||||
#include "common/config-manager.h"
|
#include "common/config-manager.h"
|
||||||
|
@ -63,6 +64,11 @@ void OSystem_MacOSX::initBackend() {
|
||||||
// Replace the SDL generated menu items with our own translated ones on Mac OS X
|
// Replace the SDL generated menu items with our own translated ones on Mac OS X
|
||||||
replaceApplicationMenuItems();
|
replaceApplicationMenuItems();
|
||||||
|
|
||||||
|
#if defined(USE_SPARKLE)
|
||||||
|
// Initialize updates manager
|
||||||
|
_updateManager = new MacOSXUpdateManager();
|
||||||
|
#endif
|
||||||
|
|
||||||
// Invoke parent implementation of this method
|
// Invoke parent implementation of this method
|
||||||
OSystem_POSIX::initBackend();
|
OSystem_POSIX::initBackend();
|
||||||
}
|
}
|
||||||
|
|
46
backends/updates/macosx/macosx-updates.h
Normal file
46
backends/updates/macosx/macosx-updates.h
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BACKENDS_UPDATES_MACOSX_H
|
||||||
|
#define BACKENDS_UPDATES_MACOSX_H
|
||||||
|
|
||||||
|
#include "backends/updates/sparkle-updates.h"
|
||||||
|
|
||||||
|
#if defined(MACOSX) && defined(USE_SPARKLE)
|
||||||
|
|
||||||
|
class MacOSXUpdateManager : public SparkleUpdateManager {
|
||||||
|
public:
|
||||||
|
MacOSXUpdateManager();
|
||||||
|
virtual ~MacOSXUpdateManager();
|
||||||
|
|
||||||
|
virtual void checkForUpdates();
|
||||||
|
|
||||||
|
virtual void setAutomaticallyChecksForUpdates(UpdateState state);
|
||||||
|
virtual UpdateState getAutomaticallyChecksForUpdates();
|
||||||
|
|
||||||
|
virtual void setUpdateCheckInterval(UpdateInterval interval);
|
||||||
|
virtual UpdateInterval getUpdateCheckInterval();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BACKENDS_UPDATES_MACOSX_H
|
115
backends/updates/macosx/macosx-updates.mm
Normal file
115
backends/updates/macosx/macosx-updates.mm
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "backends/updates/sparkle-updates.h"
|
||||||
|
|
||||||
|
#if defined(MACOSX) && defined(USE_SPARKLE)
|
||||||
|
|
||||||
|
#include "backends/updates/macosx/macosx-updates.h"
|
||||||
|
#include "common/translation.h"
|
||||||
|
|
||||||
|
#include <Cocoa/Cocoa.h>
|
||||||
|
#include <Sparkle/Sparkle.h>
|
||||||
|
|
||||||
|
SUUpdater *sparkleUpdater;
|
||||||
|
|
||||||
|
MacOSXUpdateManager::MacOSXUpdateManager() {
|
||||||
|
NSMenuItem *menuItem = [[NSApp mainMenu] itemAtIndex:0];
|
||||||
|
NSMenu *applicationMenu = [menuItem submenu];
|
||||||
|
|
||||||
|
// Init Sparkle
|
||||||
|
sparkleUpdater = [SUUpdater sharedUpdater];
|
||||||
|
|
||||||
|
// Set appcast URL
|
||||||
|
[sparkleUpdater setFeedURL:[NSURL URLWithString:[NSString stringWithCString:getAppcastUrl().c_str()]]];
|
||||||
|
|
||||||
|
// Get current encoding
|
||||||
|
NSStringEncoding *stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding]));
|
||||||
|
|
||||||
|
// Add "Check for Updates..." menu item
|
||||||
|
NSMenuItem *updateMenuItem = [applicationMenu insertItemWithTitle:[NSString stringWithCString:_("Check for Updates...") encoding:stringEncoding] action:@selector(checkForUpdates:) keyEquivalent:@"" atIndex:1];
|
||||||
|
|
||||||
|
// Set the target of the new menu item
|
||||||
|
[updateMenuItem setTarget:sparkleUpdater];
|
||||||
|
|
||||||
|
// Finally give up our references to the objects
|
||||||
|
[menuItem release];
|
||||||
|
|
||||||
|
// Enable automatic update checking once a day (alternatively use
|
||||||
|
// checkForUpdates() here to check for updates on every startup)
|
||||||
|
// TODO: Should be removed when an update settings gui is implemented
|
||||||
|
setAutomaticallyChecksForUpdates(kUpdateStateEnabled);
|
||||||
|
setUpdateCheckInterval(kUpdateIntervalOneDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
MacOSXUpdateManager::~MacOSXUpdateManager() {
|
||||||
|
[sparkleUpdater release];
|
||||||
|
}
|
||||||
|
|
||||||
|
void MacOSXUpdateManager::checkForUpdates() {
|
||||||
|
[sparkleUpdater checkForUpdatesInBackground];
|
||||||
|
}
|
||||||
|
|
||||||
|
void MacOSXUpdateManager::setAutomaticallyChecksForUpdates(UpdateManager::UpdateState state) {
|
||||||
|
if (state == kUpdateStateNotSupported)
|
||||||
|
return;
|
||||||
|
|
||||||
|
[sparkleUpdater setAutomaticallyChecksForUpdates:(state == kUpdateStateEnabled ? YES : NO)];
|
||||||
|
}
|
||||||
|
|
||||||
|
Common::UpdateManager::UpdateState MacOSXUpdateManager::getAutomaticallyChecksForUpdates() {
|
||||||
|
if ([sparkleUpdater automaticallyChecksForUpdates])
|
||||||
|
return kUpdateStateEnabled;
|
||||||
|
else
|
||||||
|
return kUpdateStateDisabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MacOSXUpdateManager::setUpdateCheckInterval(UpdateInterval interval) {
|
||||||
|
if (interval == kUpdateIntervalNotSupported)
|
||||||
|
return;
|
||||||
|
|
||||||
|
[sparkleUpdater setUpdateCheckInterval:(NSTimeInterval)interval];
|
||||||
|
}
|
||||||
|
|
||||||
|
Common::UpdateManager::UpdateInterval MacOSXUpdateManager::getUpdateCheckInterval() {
|
||||||
|
// This is kind of a hack but necessary, as the value stored by Sparkle
|
||||||
|
// might have been changed outside of ScummVM (in which case we return the
|
||||||
|
// default interval of one day)
|
||||||
|
switch ((UpdateInterval)[sparkleUpdater updateCheckInterval]) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kUpdateIntervalOneDay:
|
||||||
|
return kUpdateIntervalOneDay;
|
||||||
|
|
||||||
|
case kUpdateIntervalOneWeek:
|
||||||
|
return kUpdateIntervalOneWeek;
|
||||||
|
|
||||||
|
case kUpdateIntervalOneMonth:
|
||||||
|
return kUpdateIntervalOneMonth;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the default value (one day)
|
||||||
|
return kUpdateIntervalOneDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
45
backends/updates/sparkle-updates.cpp
Normal file
45
backends/updates/sparkle-updates.cpp
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "backends/updates/sparkle-updates.h"
|
||||||
|
|
||||||
|
#if defined(USE_SPARKLE)
|
||||||
|
|
||||||
|
// TODO replace by proper URL
|
||||||
|
#if defined(MACOSX)
|
||||||
|
#define APPCAST_BASE_URL "http://www.scummvm.org/appcasts/macosx/"
|
||||||
|
#elif defined(WIN32)
|
||||||
|
#define APPCAST_BASE_URL "http://www.scummvm.org/appcasts/win32/"
|
||||||
|
#else
|
||||||
|
#error "Please define APPCAST_BASE_URL for your platform!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Common::String SparkleUpdateManager::getAppcastUrl() {
|
||||||
|
#ifdef RELEASE_BUILD
|
||||||
|
return APPCAST_BASE_URL "release.xml";
|
||||||
|
#else
|
||||||
|
return APPCAST_BASE_URL "beta.xml";
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
48
backends/updates/sparkle-updates.h
Normal file
48
backends/updates/sparkle-updates.h
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BACKENDS_UPDATES_SPARKLE_UPDATE_H
|
||||||
|
#define BACKENDS_UPDATES_SPARKLE_UPDATE_H
|
||||||
|
|
||||||
|
#include "common/scummsys.h"
|
||||||
|
#include "common/str.h"
|
||||||
|
#include "common/updates.h"
|
||||||
|
|
||||||
|
#if defined(USE_SPARKLE)
|
||||||
|
|
||||||
|
class SparkleUpdateManager : public Common::UpdateManager {
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* Gets the appcast url.
|
||||||
|
*
|
||||||
|
* Beta/RC versions and releases might have a different appcast url.
|
||||||
|
* This function takes care of checking which version of ScummVM is running
|
||||||
|
* and return the url to the proper appcast.
|
||||||
|
*
|
||||||
|
* @return the appcast url.
|
||||||
|
*/
|
||||||
|
Common::String getAppcastUrl();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BACKENDS_UPDATES_SPARKLE_UPDATE_H
|
98
common/updates.h
Normal file
98
common/updates.h
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BACKENDS_UPDATES_ABSTRACT_H
|
||||||
|
#define BACKENDS_UPDATES_ABSTRACT_H
|
||||||
|
|
||||||
|
namespace Common {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The UpdateManager allows configuring of the automatic update checking
|
||||||
|
* for systems that support it:
|
||||||
|
* - using Sparkle on MacOSX
|
||||||
|
* - using WinSparkle on Windows
|
||||||
|
*
|
||||||
|
* Most of the update checking is completely automated and this class only
|
||||||
|
* gives access to basic settings. It is mostly used by the GUI to set
|
||||||
|
* widgets state on the update page and for manually checking for updates
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class UpdateManager {
|
||||||
|
public:
|
||||||
|
enum UpdateState {
|
||||||
|
kUpdateStateDisabled = 0,
|
||||||
|
kUpdateStateEnabled = 1,
|
||||||
|
kUpdateStateNotSupported = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum UpdateInterval {
|
||||||
|
kUpdateIntervalNotSupported = 0,
|
||||||
|
kUpdateIntervalOneDay = 86400,
|
||||||
|
kUpdateIntervalOneWeek = 604800,
|
||||||
|
kUpdateIntervalOneMonth = 2628000 // average seconds per month (60*60*24*365)/12
|
||||||
|
};
|
||||||
|
|
||||||
|
UpdateManager() {}
|
||||||
|
virtual ~UpdateManager() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks manually if an update is available, showing progress UI to the user.
|
||||||
|
*
|
||||||
|
* By default, update checks are done silently on start.
|
||||||
|
* This allows to manually start an update check.
|
||||||
|
*/
|
||||||
|
virtual void checkForUpdates() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the automatic update checking state
|
||||||
|
*
|
||||||
|
* @param state The state.
|
||||||
|
*/
|
||||||
|
virtual void setAutomaticallyChecksForUpdates(UpdateState state) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the automatic update checking state
|
||||||
|
*
|
||||||
|
* @return kUpdateStateDisabled if automatic update checking is disabled,
|
||||||
|
* kUpdateStateEnabled if automatic update checking is enabled,
|
||||||
|
* kUpdateStateNotSupported if automatic update checking is not available
|
||||||
|
*/
|
||||||
|
virtual UpdateState getAutomaticallyChecksForUpdates() { return kUpdateStateNotSupported; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the update checking interval.
|
||||||
|
*
|
||||||
|
* @param interval The interval.
|
||||||
|
*/
|
||||||
|
virtual void setUpdateCheckInterval(UpdateInterval interval) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the update check interval.
|
||||||
|
*
|
||||||
|
* @return the update check interval.
|
||||||
|
*/
|
||||||
|
virtual UpdateInterval getUpdateCheckInterval() { return kUpdateIntervalNotSupported; }
|
||||||
|
};
|
||||||
|
|
||||||
|
} // End of namespace Common
|
||||||
|
|
||||||
|
#endif // BACKENDS_UPDATES_ABSTRACT_H
|
31
configure
vendored
31
configure
vendored
|
@ -134,6 +134,7 @@ _alsa=auto
|
||||||
_seq_midi=auto
|
_seq_midi=auto
|
||||||
_timidity=auto
|
_timidity=auto
|
||||||
_zlib=auto
|
_zlib=auto
|
||||||
|
_sparkle=auto
|
||||||
_png=auto
|
_png=auto
|
||||||
_theoradec=auto
|
_theoradec=auto
|
||||||
_faad=auto
|
_faad=auto
|
||||||
|
@ -813,6 +814,9 @@ Optional Libraries:
|
||||||
installed (optional)
|
installed (optional)
|
||||||
--disable-fluidsynth disable fluidsynth MIDI driver [autodetect]
|
--disable-fluidsynth disable fluidsynth MIDI driver [autodetect]
|
||||||
|
|
||||||
|
--with-sparkle-prefix=DIR Prefix where sparkle is installed (MacOSX only - optional)
|
||||||
|
--disable-sparkle disable sparkle automatic update support [MacOSX only - autodetect]
|
||||||
|
|
||||||
--with-sdl-prefix=DIR Prefix where the sdl-config script is
|
--with-sdl-prefix=DIR Prefix where the sdl-config script is
|
||||||
installed (optional)
|
installed (optional)
|
||||||
|
|
||||||
|
@ -861,6 +865,8 @@ for ac_option in $@; do
|
||||||
--disable-mad) _mad=no ;;
|
--disable-mad) _mad=no ;;
|
||||||
--enable-zlib) _zlib=yes ;;
|
--enable-zlib) _zlib=yes ;;
|
||||||
--disable-zlib) _zlib=no ;;
|
--disable-zlib) _zlib=no ;;
|
||||||
|
--enable-sparkle) _sparkle=yes ;;
|
||||||
|
--disable-sparkle) _sparkle=no ;;
|
||||||
--enable-nasm) _nasm=yes ;;
|
--enable-nasm) _nasm=yes ;;
|
||||||
--disable-nasm) _nasm=no ;;
|
--disable-nasm) _nasm=no ;;
|
||||||
--disable-png) _png=no ;;
|
--disable-png) _png=no ;;
|
||||||
|
@ -948,6 +954,11 @@ for ac_option in $@; do
|
||||||
ZLIB_CFLAGS="-I$arg/include"
|
ZLIB_CFLAGS="-I$arg/include"
|
||||||
ZLIB_LIBS="-L$arg/lib"
|
ZLIB_LIBS="-L$arg/lib"
|
||||||
;;
|
;;
|
||||||
|
--with-sparkle-prefix=*)
|
||||||
|
arg=`echo $ac_option | cut -d '=' -f 2`
|
||||||
|
SPARKLE_CFLAGS="-F$arg"
|
||||||
|
SPARKLE_LIBS="-F$arg"
|
||||||
|
;;
|
||||||
--with-readline-prefix=*)
|
--with-readline-prefix=*)
|
||||||
arg=`echo $ac_option | cut -d '=' -f 2`
|
arg=`echo $ac_option | cut -d '=' -f 2`
|
||||||
READLINE_CFLAGS="-I$arg/include"
|
READLINE_CFLAGS="-I$arg/include"
|
||||||
|
@ -2970,6 +2981,26 @@ if test `get_engine_build sword25` = yes && test ! "$_zlib" = yes ; then
|
||||||
engine_disable sword25
|
engine_disable sword25
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for Sparkle
|
||||||
|
#
|
||||||
|
echocheck "Sparkle"
|
||||||
|
if test "$_sparkle" = auto ; then
|
||||||
|
_sparkle=no
|
||||||
|
cat > $TMPC << EOF
|
||||||
|
#include <Cocoa/Cocoa.h>
|
||||||
|
#include <Sparkle/Sparkle.h>
|
||||||
|
int main(void) { SUUpdater *updater = [SUUpdater sharedUpdater]; return 0; }
|
||||||
|
EOF
|
||||||
|
cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes
|
||||||
|
fi
|
||||||
|
if test "$_sparkle" = yes ; then
|
||||||
|
LIBS="$LIBS $SPARKLE_LIBS -framework Sparkle"
|
||||||
|
INCLUDES="$INCLUDES $SPARKLE_CFLAGS"
|
||||||
|
fi
|
||||||
|
define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
|
||||||
|
echo "$_sparkle"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check for libfluidsynth
|
# Check for libfluidsynth
|
||||||
#
|
#
|
||||||
|
|
|
@ -28,5 +28,9 @@
|
||||||
<string>NSApplication</string>
|
<string>NSApplication</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright 2001-2011 The ScummVM team</string>
|
<string>Copyright 2001-2011 The ScummVM team</string>
|
||||||
|
<key>SUFeedURL</key>
|
||||||
|
<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
|
||||||
|
<key>SUPublicDSAKeyFile</key>
|
||||||
|
<string>dsa_pub.pem</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -28,5 +28,9 @@
|
||||||
<string>NSApplication</string>
|
<string>NSApplication</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright 2001-2011 The ScummVM team</string>
|
<string>Copyright 2001-2011 The ScummVM team</string>
|
||||||
|
<key>SUFeedURL</key>
|
||||||
|
<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
|
||||||
|
<key>SUPublicDSAKeyFile</key>
|
||||||
|
<string>dsa_pub.pem</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
25
dists/macosx/scummvm_osx_appcast.xml
Executable file
25
dists/macosx/scummvm_osx_appcast.xml
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<channel>
|
||||||
|
<title>ScummVM Changelog</title>
|
||||||
|
<link>http://scummvm.org/scummvm_appcast.xml</link>
|
||||||
|
<description>Most recent changes with links to updates.</description>
|
||||||
|
<language>en</language>
|
||||||
|
<item>
|
||||||
|
<title>Version 1.2.1 (3 bugs fixed; 2 new features)</title>
|
||||||
|
<sparkle:releaseNotesLink>
|
||||||
|
http://sourceforge.net/projects/scummvm/files/scummvm/1.2.1/ReleaseNotes/view
|
||||||
|
</sparkle:releaseNotesLink>
|
||||||
|
<pubDate>Sun, 19 Dec 2010 12:20:11 +0000</pubDate>
|
||||||
|
<enclosure url="http://scummvm.org/ScummVM 1.2.1-Test.zip" sparkle:version="1.2.1" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Version 1.2.0</title>
|
||||||
|
<sparkle:releaseNotesLink>
|
||||||
|
http://sourceforge.net/projects/scummvm/files/scummvm/1.2.0/ReleaseNotes/view
|
||||||
|
</sparkle:releaseNotesLink>
|
||||||
|
<pubDate>Fri, 15 Oct 2010 12:20:11 +0000</pubDate>
|
||||||
|
<enclosure url="http://scummvm.org/ScummVM 1.2.0-Test.zip" sparkle:version="1.2.0" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
|
@ -78,3 +78,4 @@ backends/platform/wince/wince-sdl.cpp
|
||||||
backends/events/default/default-events.cpp
|
backends/events/default/default-events.cpp
|
||||||
backends/events/gph/gph-events.cpp
|
backends/events/gph/gph-events.cpp
|
||||||
backends/events/openpandora/op-events.cpp
|
backends/events/openpandora/op-events.cpp
|
||||||
|
backends/updates/macosx/macosx-updates.mm
|
||||||
|
|
9
ports.mk
9
ports.mk
|
@ -39,6 +39,11 @@ bundle: scummvm-static
|
||||||
mkdir -p $(bundle_name)/Contents/Resources
|
mkdir -p $(bundle_name)/Contents/Resources
|
||||||
echo "APPL????" > $(bundle_name)/Contents/PkgInfo
|
echo "APPL????" > $(bundle_name)/Contents/PkgInfo
|
||||||
cp $(srcdir)/dists/macosx/Info.plist $(bundle_name)/Contents/
|
cp $(srcdir)/dists/macosx/Info.plist $(bundle_name)/Contents/
|
||||||
|
ifdef USE_SPARKLE
|
||||||
|
mkdir -p $(bundle_name)/Contents/Frameworks
|
||||||
|
cp $(srcdir)/dists/macosx/dsa_pub.pem $(bundle_name)/Contents/Resources/
|
||||||
|
cp -R $(STATICLIBPATH)/Sparkle.framework $(bundle_name)/Contents/Frameworks/
|
||||||
|
endif
|
||||||
cp $(srcdir)/icons/scummvm.icns $(bundle_name)/Contents/Resources/
|
cp $(srcdir)/icons/scummvm.icns $(bundle_name)/Contents/Resources/
|
||||||
cp $(DIST_FILES_DOCS) $(bundle_name)/
|
cp $(DIST_FILES_DOCS) $(bundle_name)/
|
||||||
cp $(DIST_FILES_THEMES) $(bundle_name)/Contents/Resources/
|
cp $(DIST_FILES_THEMES) $(bundle_name)/Contents/Resources/
|
||||||
|
@ -108,6 +113,10 @@ ifdef USE_ZLIB
|
||||||
OSX_ZLIB ?= -lz
|
OSX_ZLIB ?= -lz
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef USE_SPARKLE
|
||||||
|
OSX_STATIC_LIBS += -framework Sparkle -F$(STATICLIBPATH)
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef USE_TERMCONV
|
ifdef USE_TERMCONV
|
||||||
OSX_ICONV ?= -liconv
|
OSX_ICONV ?= -liconv
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue