mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Various minor fixes to allow building with clang on OS X.
Fixes issue 3992. wxWidgets patch at http://trac.wxwidgets.org/ticket/12332 . git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6929 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
11
SConstruct
11
SConstruct
@ -126,10 +126,15 @@ if sys.platform == 'darwin':
|
|||||||
env['CCFLAGS'] += ['-march=core2', '-mdynamic-no-pic']
|
env['CCFLAGS'] += ['-march=core2', '-mdynamic-no-pic']
|
||||||
env['CCFLAGS'] += ['-iframework/Developer/SDKs/MacOSX10.5.sdk' + system]
|
env['CCFLAGS'] += ['-iframework/Developer/SDKs/MacOSX10.5.sdk' + system]
|
||||||
env['CCFLAGS'] += ['-iframework/Developer/SDKs/MacOSX10.6.sdk' + system]
|
env['CCFLAGS'] += ['-iframework/Developer/SDKs/MacOSX10.6.sdk' + system]
|
||||||
env['CC'] = '/Developer/usr/bin/llvm-gcc -ObjC'
|
#env['CC'] = 'clang'
|
||||||
env['CXX'] = '/Developer/usr/bin/llvm-g++ -ObjC++'
|
#env['CC'] = 'gcc'
|
||||||
|
env['CC'] = 'llvm-gcc'
|
||||||
|
#env['CXX'] = 'clang++'
|
||||||
|
#env['CXX'] = 'g++'
|
||||||
|
env['CXX'] = 'llvm-g++'
|
||||||
|
env['CXXFLAGS'] += ['-x', 'objective-c++']
|
||||||
env['FRAMEWORKS'] += ['AppKit', 'Carbon', 'CoreFoundation', 'CoreServices']
|
env['FRAMEWORKS'] += ['AppKit', 'Carbon', 'CoreFoundation', 'CoreServices']
|
||||||
env['FRAMEWORKS'] += ['AudioUnit', 'CoreAudio', 'WebKit']
|
env['FRAMEWORKS'] += ['AudioToolbox', 'AudioUnit', 'CoreAudio', 'WebKit']
|
||||||
env['FRAMEWORKS'] += ['IOBluetooth', 'IOKit', 'OpenGL']
|
env['FRAMEWORKS'] += ['IOBluetooth', 'IOKit', 'OpenGL']
|
||||||
env['FRAMEWORKSFLAGS'] = ['-weak_framework', 'OpenCL']
|
env['FRAMEWORKSFLAGS'] = ['-weak_framework', 'OpenCL']
|
||||||
env['FRAMEWORKSFLAGS'] += ['-Xarch_i386', '-Wl,-framework,QuickTime']
|
env['FRAMEWORKSFLAGS'] += ['-Xarch_i386', '-Wl,-framework,QuickTime']
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
#include <CoreServices/CoreServices.h>
|
||||||
|
|
||||||
#include "CoreAudioSoundStream.h"
|
#include "CoreAudioSoundStream.h"
|
||||||
|
|
||||||
OSStatus callback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags,
|
OSStatus callback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags,
|
||||||
|
@ -41,8 +41,9 @@ const char *GetLastErrorMsg()
|
|||||||
// strlen with cropping after size n
|
// strlen with cropping after size n
|
||||||
size_t strnlen(const char *s, size_t n)
|
size_t strnlen(const char *s, size_t n)
|
||||||
{
|
{
|
||||||
const char *p = (const char *)memchr(s, 0, n);
|
const char *p = (const char *)memchr(s, 0, n);
|
||||||
return(p ? p-s : n);
|
|
||||||
|
return p ? (size_t)(p - s) : n;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(_WIN32) || !(__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
#if defined(_WIN32) || !(__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||||
|
@ -41,7 +41,6 @@ files = [
|
|||||||
"Thread.cpp",
|
"Thread.cpp",
|
||||||
"Thunk.cpp",
|
"Thunk.cpp",
|
||||||
"Timer.cpp",
|
"Timer.cpp",
|
||||||
"Thread.cpp",
|
|
||||||
"Version.cpp",
|
"Version.cpp",
|
||||||
"x64Emitter.cpp",
|
"x64Emitter.cpp",
|
||||||
"x64Analyzer.cpp",
|
"x64Analyzer.cpp",
|
||||||
|
@ -56,7 +56,7 @@ struct SConfig : NonCopyable
|
|||||||
// interface language
|
// interface language
|
||||||
int m_InterfaceLanguage;
|
int m_InterfaceLanguage;
|
||||||
// framelimit choose
|
// framelimit choose
|
||||||
int m_Framelimit;
|
unsigned int m_Framelimit;
|
||||||
bool b_UseFPS;
|
bool b_UseFPS;
|
||||||
// other interface settings
|
// other interface settings
|
||||||
bool m_InterfaceToolbar;
|
bool m_InterfaceToolbar;
|
||||||
|
@ -218,6 +218,7 @@ inline void WriteToHardware(u32 em_address, const T data, u32 effective_address,
|
|||||||
case 1: GPFifo::Write8((u8)data, em_address); return;
|
case 1: GPFifo::Write8((u8)data, em_address); return;
|
||||||
case 2: GPFifo::Write16((u16)data, em_address); return;
|
case 2: GPFifo::Write16((u16)data, em_address); return;
|
||||||
case 4: GPFifo::Write32((u32)data, em_address); return;
|
case 4: GPFifo::Write32((u32)data, em_address); return;
|
||||||
|
case 8: GPFifo::Write64((u64)data, em_address); return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((em_address & 0xC8000000) == 0xC8000000)
|
if ((em_address & 0xC8000000) == 0xC8000000)
|
||||||
|
@ -681,7 +681,7 @@ enum
|
|||||||
#define EXCEPTION_PROGRAM 0x00000080
|
#define EXCEPTION_PROGRAM 0x00000080
|
||||||
|
|
||||||
inline s32 SignExt16(s16 x) {return (s32)(s16)x;}
|
inline s32 SignExt16(s16 x) {return (s32)(s16)x;}
|
||||||
inline s32 SignExt26(u32 x) {return x & 0x2000000 ? (s32)x | 0xFC000000 : (s32)(x);}
|
inline s32 SignExt26(u32 x) {return x & 0x2000000 ? (s32)(x | 0xFC000000) : (s32)(x);}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ u32 Interpreter::g_reserveAddr;
|
|||||||
|
|
||||||
u32 Interpreter::Helper_Get_EA(const UGeckoInstruction _inst)
|
u32 Interpreter::Helper_Get_EA(const UGeckoInstruction _inst)
|
||||||
{
|
{
|
||||||
return _inst.RA ? (m_GPR[_inst.RA] + _inst.SIMM_16) : _inst.SIMM_16;
|
return _inst.RA ? (m_GPR[_inst.RA] + _inst.SIMM_16) : (u32)_inst.SIMM_16;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 Interpreter::Helper_Get_EA_U(const UGeckoInstruction _inst)
|
u32 Interpreter::Helper_Get_EA_U(const UGeckoInstruction _inst)
|
||||||
|
@ -158,7 +158,8 @@ void Interpreter::psq_l(UGeckoInstruction _inst)
|
|||||||
const UGQR gqr(rSPR(SPR_GQR0 + _inst.I));
|
const UGQR gqr(rSPR(SPR_GQR0 + _inst.I));
|
||||||
const EQuantizeType ldType = static_cast<EQuantizeType>(gqr.LD_TYPE);
|
const EQuantizeType ldType = static_cast<EQuantizeType>(gqr.LD_TYPE);
|
||||||
const unsigned int ldScale = gqr.LD_SCALE;
|
const unsigned int ldScale = gqr.LD_SCALE;
|
||||||
const u32 EA = _inst.RA ? (m_GPR[_inst.RA] + _inst.SIMM_12) : _inst.SIMM_12;
|
const u32 EA = _inst.RA ?
|
||||||
|
(m_GPR[_inst.RA] + _inst.SIMM_12) : (u32)_inst.SIMM_12;
|
||||||
|
|
||||||
int c = 4;
|
int c = 4;
|
||||||
if ((ldType == QUANTIZE_U8) || (ldType == QUANTIZE_S8)) c = 0x1;
|
if ((ldType == QUANTIZE_U8) || (ldType == QUANTIZE_S8)) c = 0x1;
|
||||||
@ -227,7 +228,8 @@ void Interpreter::psq_st(UGeckoInstruction _inst)
|
|||||||
const UGQR gqr(rSPR(SPR_GQR0 + _inst.I));
|
const UGQR gqr(rSPR(SPR_GQR0 + _inst.I));
|
||||||
const EQuantizeType stType = static_cast<EQuantizeType>(gqr.ST_TYPE);
|
const EQuantizeType stType = static_cast<EQuantizeType>(gqr.ST_TYPE);
|
||||||
const unsigned int stScale = gqr.ST_SCALE;
|
const unsigned int stScale = gqr.ST_SCALE;
|
||||||
const u32 EA = _inst.RA ? (m_GPR[_inst.RA] + _inst.SIMM_12) : _inst.SIMM_12;
|
const u32 EA = _inst.RA ?
|
||||||
|
(m_GPR[_inst.RA] + _inst.SIMM_12) : (u32)_inst.SIMM_12;
|
||||||
|
|
||||||
int c = 4;
|
int c = 4;
|
||||||
if ((stType == 4) || (stType == 6)) c = 0x1;
|
if ((stType == 4) || (stType == 6)) c = 0x1;
|
||||||
|
@ -330,9 +330,10 @@ void CMemoryWindow::onSearch(wxCommandEvent& event)
|
|||||||
long newsize = 0;
|
long newsize = 0;
|
||||||
unsigned char *tmp2 = 0;
|
unsigned char *tmp2 = 0;
|
||||||
char* tmpstr = 0;
|
char* tmpstr = 0;
|
||||||
switch (chkHex->GetValue())
|
|
||||||
|
if (chkHex->GetValue())
|
||||||
{
|
{
|
||||||
case 1://We are looking for hex
|
//We are looking for hex
|
||||||
//If it's uneven
|
//If it's uneven
|
||||||
size = (rawData.size()/2) + pad;
|
size = (rawData.size()/2) + pad;
|
||||||
Dest.resize(size+32);
|
Dest.resize(size+32);
|
||||||
@ -369,8 +370,8 @@ void CMemoryWindow::onSearch(wxCommandEvent& event)
|
|||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
delete[] tmpstr;
|
delete[] tmpstr;
|
||||||
break;
|
} else {
|
||||||
case 0://Looking for an ascii string
|
//Looking for an ascii string
|
||||||
size = rawData.size();
|
size = rawData.size();
|
||||||
Dest.resize(size+1);
|
Dest.resize(size+1);
|
||||||
tmpstr = new char[size+1];
|
tmpstr = new char[size+1];
|
||||||
@ -382,8 +383,8 @@ void CMemoryWindow::onSearch(wxCommandEvent& event)
|
|||||||
tmp2[i] = tmpstr[i];
|
tmp2[i] = tmpstr[i];
|
||||||
|
|
||||||
delete[] tmpstr;
|
delete[] tmpstr;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(size)
|
if(size)
|
||||||
{
|
{
|
||||||
unsigned char* pnt = &Dest.front();
|
unsigned char* pnt = &Dest.front();
|
||||||
|
@ -41,8 +41,8 @@ CISOFileReader* CISOFileReader::Create(const char* filename)
|
|||||||
{
|
{
|
||||||
if (IsCISOBlob(filename))
|
if (IsCISOBlob(filename))
|
||||||
{
|
{
|
||||||
FILE* file_ = fopen(filename, "rb");
|
FILE* f = fopen(filename, "rb");
|
||||||
return new CISOFileReader(file_);
|
return new CISOFileReader(f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -30,9 +30,9 @@ PlainFileReader::PlainFileReader(FILE* file__)
|
|||||||
|
|
||||||
PlainFileReader* PlainFileReader::Create(const char* filename)
|
PlainFileReader* PlainFileReader::Create(const char* filename)
|
||||||
{
|
{
|
||||||
FILE* file_ = fopen(filename, "rb");
|
FILE* f = fopen(filename, "rb");
|
||||||
if (file_)
|
if (f)
|
||||||
return new PlainFileReader(file_);
|
return new PlainFileReader(f);
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
#include "Frame.h"
|
#include "Frame.h"
|
||||||
#include "ConfigMain.h"
|
#include "ConfigMain.h"
|
||||||
#include "PluginManager.h"
|
#include "PluginManager.h"
|
||||||
#include "MemcardManager.h"
|
|
||||||
#include "CheatsWindow.h"
|
#include "CheatsWindow.h"
|
||||||
#include "AboutDolphin.h"
|
#include "AboutDolphin.h"
|
||||||
#include "GameListCtrl.h"
|
#include "GameListCtrl.h"
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
#include "Frame.h"
|
#include "Frame.h"
|
||||||
#include "ConfigMain.h"
|
#include "ConfigMain.h"
|
||||||
#include "PluginManager.h"
|
#include "PluginManager.h"
|
||||||
#include "MemcardManager.h"
|
|
||||||
#include "CheatsWindow.h"
|
#include "CheatsWindow.h"
|
||||||
#include "AboutDolphin.h"
|
#include "AboutDolphin.h"
|
||||||
#include "GameListCtrl.h"
|
#include "GameListCtrl.h"
|
||||||
|
@ -214,8 +214,9 @@ void wxLuaWindow::LuaCloseCallback(u64 userdata, int)
|
|||||||
}
|
}
|
||||||
void wxLuaWindow::LuaStartCallback(u64 userdata, int)
|
void wxLuaWindow::LuaStartCallback(u64 userdata, int)
|
||||||
{
|
{
|
||||||
int luaID = (int)userdata;
|
int lid = (int)userdata;
|
||||||
Lua::RunLuaScriptFile(luaID, (const char *)g_contextMap[luaID]->currentScript.mb_str());
|
Lua::RunLuaScriptFile(lid,
|
||||||
|
(const char *)g_contextMap[lid]->currentScript.mb_str());
|
||||||
}
|
}
|
||||||
void wxLuaWindow::LuaStopCallback(u64 userdata, int)
|
void wxLuaWindow::LuaStopCallback(u64 userdata, int)
|
||||||
{
|
{
|
||||||
|
@ -61,6 +61,7 @@ if sys.platform == 'win32':
|
|||||||
files += [ "stdafx.cpp" ]
|
files += [ "stdafx.cpp" ]
|
||||||
elif sys.platform == 'darwin':
|
elif sys.platform == 'darwin':
|
||||||
ldflags += [ '-Wl,-pagezero_size,0x1000' ]
|
ldflags += [ '-Wl,-pagezero_size,0x1000' ]
|
||||||
|
ldflags += [ '-Wl,-ObjC' ] # XXX Hack to include wxGLCanvas
|
||||||
libs += [ 'iconv' ]
|
libs += [ 'iconv' ]
|
||||||
exe = '#' + env['prefix'] + '/Dolphin.app/Contents/MacOS/Dolphin'
|
exe = '#' + env['prefix'] + '/Dolphin.app/Contents/MacOS/Dolphin'
|
||||||
|
|
||||||
|
@ -76,8 +76,8 @@ void DeviceElementDebugPrint(const void *value, void *context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
c_type.append(" ");
|
c_type.append(" ");
|
||||||
NSLog(@"%s%s%spage: 0x%x usage: 0x%x name: %s "
|
NSLog(@"%s%s%spage: 0x%x usage: 0x%x name: %@ "
|
||||||
"lmin: %i lmax: %i pmin: %i pmax: %i",
|
"lmin: %ld lmax: %ld pmin: %ld pmax: %ld",
|
||||||
type.c_str(),
|
type.c_str(),
|
||||||
type == "collection" ? ":" : "",
|
type == "collection" ? ":" : "",
|
||||||
type == "collection" ? c_type.c_str() : " ",
|
type == "collection" ? c_type.c_str() : " ",
|
||||||
|
@ -27,8 +27,6 @@ static volatile struct
|
|||||||
u32 fbHeight;
|
u32 fbHeight;
|
||||||
} s_beginFieldArgs;
|
} s_beginFieldArgs;
|
||||||
|
|
||||||
static volatile EFBAccessType s_AccessEFBType;
|
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
EFBAccessType type;
|
EFBAccessType type;
|
||||||
|
@ -276,8 +276,8 @@ void DVProfWrite(const char* pfilename, u32 frames)
|
|||||||
uTotal[1] += iter->second.uInclusive;
|
uTotal[1] += iter->second.uInclusive;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(f, "total times (%d): ex: %Lu ", frames, 1000000 * uTotal[0] / (luPerfFreq*(u64)frames));
|
fprintf(f, "total times (%d): ex: %llu ", frames, 1000000 * uTotal[0] / (luPerfFreq*(u64)frames));
|
||||||
fprintf(f, "inc: %Lu\n", 1000000 * uTotal[1]/(luPerfFreq*(u64)frames));
|
fprintf(f, "inc: %llu\n", 1000000 * uTotal[1]/(luPerfFreq*(u64)frames));
|
||||||
|
|
||||||
fiTotalTime[0] = 1.0 / (double)uTotal[0];
|
fiTotalTime[0] = 1.0 / (double)uTotal[0];
|
||||||
fiTotalTime[1] = 1.0 / (double)uTotal[1];
|
fiTotalTime[1] = 1.0 / (double)uTotal[1];
|
||||||
|
@ -93,8 +93,8 @@ public:
|
|||||||
virtual TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc) = 0;
|
virtual TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc) = 0;
|
||||||
|
|
||||||
// Use this to upscale native EFB coordinates to IDEAL internal resolution
|
// Use this to upscale native EFB coordinates to IDEAL internal resolution
|
||||||
static int EFBToScaledX(int x) { return x * GetTargetWidth() / EFB_WIDTH; }
|
static unsigned int EFBToScaledX(int x) { return x * GetTargetWidth() / EFB_WIDTH; }
|
||||||
static int EFBToScaledY(int y) { return y * GetTargetHeight() / EFB_HEIGHT; }
|
static unsigned int EFBToScaledY(int y) { return y * GetTargetHeight() / EFB_HEIGHT; }
|
||||||
|
|
||||||
// Floating point versions of the above - only use them if really necessary
|
// Floating point versions of the above - only use them if really necessary
|
||||||
static float EFBToScaledXf(float x) { return x * ((float)GetTargetWidth() / (float)EFB_WIDTH); }
|
static float EFBToScaledXf(float x) { return x * ((float)GetTargetWidth() / (float)EFB_WIDTH); }
|
||||||
|
Reference in New Issue
Block a user