OSX: add x64 target. Use JIT compiler. Clean exit. Use semaphore in core audio driver. Use layout-independent key codes to support int'l keyboards. Fixed GL window scaling.
This commit is contained in:
parent
64a8ac1dd5
commit
39e0f378cb
|
@ -199,6 +199,9 @@
|
|||
#elif defined(TARGET_OSX)
|
||||
#define HOST_OS OS_DARWIN
|
||||
#define HOST_CPU CPU_GENERIC
|
||||
#elif defined(TARGET_OSX_X64)
|
||||
#define HOST_OS OS_DARWIN
|
||||
#define HOST_CPU CPU_X64
|
||||
#else
|
||||
#error Invalid Target: TARGET_* not defined
|
||||
#endif
|
||||
|
|
|
@ -280,7 +280,7 @@ void* rend_thread(void* p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if HOST_OS==OS_LINUX
|
||||
#if HOST_OS==OS_LINUX || HOST_OS==OS_DARWIN
|
||||
void rend_terminate()
|
||||
{
|
||||
rend_en = false;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include <sys/param.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/time.h>
|
||||
#if !defined(_ANDROID) && !defined(TARGET_IPHONE) && !defined(TARGET_NACL32) && !defined(TARGET_EMSCRIPTEN) && !defined(TARGET_OSX)
|
||||
#if !defined(_ANDROID) && !defined(TARGET_IPHONE) && !defined(TARGET_NACL32) && !defined(TARGET_EMSCRIPTEN) && !defined(TARGET_OSX) && !defined(TARGET_OSX_X64)
|
||||
#include <sys/personality.h>
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@ void VArray2::LockRegion(u32 offset,u32 size)
|
|||
}
|
||||
|
||||
#else
|
||||
printf("VA2: LockRegion\n");
|
||||
//printf("VA2: LockRegion\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -252,7 +252,7 @@ void VArray2::UnLockRegion(u32 offset,u32 size)
|
|||
die("mprotect failed ..\n");
|
||||
}
|
||||
#else
|
||||
printf("VA2: UnLockRegion\n");
|
||||
//printf("VA2: UnLockRegion\n");
|
||||
#endif
|
||||
}
|
||||
double os_GetSeconds()
|
||||
|
|
|
@ -24,6 +24,7 @@ AudioUnit audioUnit;
|
|||
u8 samples_temp[1024 * 4];
|
||||
|
||||
volatile int samples_ptr = 0;
|
||||
cResetEvent bufferEmpty(false, true);
|
||||
|
||||
OSStatus coreaudio_callback(void* ctx, AudioUnitRenderActionFlags* flags, const AudioTimeStamp* ts,
|
||||
UInt32 bus, UInt32 frames, AudioBufferList* abl)
|
||||
|
@ -41,6 +42,8 @@ OSStatus coreaudio_callback(void* ctx, AudioUnitRenderActionFlags* flags, const
|
|||
|
||||
if (samples_ptr < 0)
|
||||
samples_ptr = 0;
|
||||
if (samples_ptr == 0)
|
||||
bufferEmpty.Set();
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
@ -103,12 +106,14 @@ static void coreaudio_init()
|
|||
err = AudioOutputUnitStart(audioUnit);
|
||||
|
||||
verify(err == noErr);
|
||||
|
||||
bufferEmpty.Set();
|
||||
}
|
||||
|
||||
static u32 coreaudio_push(void* frame, u32 samples, bool wait)
|
||||
{
|
||||
/* Yeah, right */
|
||||
while (samples_ptr != 0 && wait) ;
|
||||
if (wait)
|
||||
bufferEmpty.Wait();
|
||||
|
||||
if (samples_ptr == 0) {
|
||||
memcpy(&samples_temp[samples_ptr], frame, samples * 4);
|
||||
|
@ -130,6 +135,8 @@ static void coreaudio_term()
|
|||
|
||||
err = AudioComponentInstanceDispose(audioUnit);
|
||||
verify(err == noErr);
|
||||
|
||||
bufferEmpty.Set();
|
||||
}
|
||||
|
||||
audiobackend_t audiobackend_coreaudio = {
|
||||
|
|
|
@ -46,6 +46,8 @@ void ngen_FailedToFindBlock_internal() {
|
|||
|
||||
void(*ngen_FailedToFindBlock)() = &ngen_FailedToFindBlock_internal;
|
||||
|
||||
unsigned int ngen_required = true;
|
||||
|
||||
void ngen_mainloop(void* v_cntx)
|
||||
{
|
||||
Sh4RCB* ctx = (Sh4RCB*)((u8*)v_cntx - sizeof(Sh4RCB));
|
||||
|
@ -53,7 +55,7 @@ void ngen_mainloop(void* v_cntx)
|
|||
cycle_counter = 0;
|
||||
|
||||
#if !defined(TARGET_BOUNDED_EXECUTION)
|
||||
for (;;) {
|
||||
while (ngen_required) {
|
||||
#else
|
||||
for (int i=0; i<10000; i++) {
|
||||
#endif
|
||||
|
@ -73,6 +75,11 @@ void ngen_init()
|
|||
{
|
||||
}
|
||||
|
||||
void ngen_terminate(void)
|
||||
{
|
||||
printf("ngen_terminate called\n");
|
||||
ngen_required = false;
|
||||
}
|
||||
|
||||
void ngen_GetFeatures(ngen_features* dst)
|
||||
{
|
||||
|
|
|
@ -20,10 +20,12 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||
}
|
||||
|
||||
func applicationWillTerminate(_ aNotification: Notification) {
|
||||
// Insert code here to tear down your application
|
||||
emu_shutdown()
|
||||
}
|
||||
|
||||
|
||||
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ class EmuGLView: NSOpenGLView {
|
|||
}
|
||||
|
||||
override func awakeFromNib() {
|
||||
var renderTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(EmuGLView.timerTick), userInfo: nil, repeats: true)
|
||||
let renderTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(EmuGLView.timerTick), userInfo: nil, repeats: true)
|
||||
|
||||
RunLoop.current.add(renderTimer, forMode: RunLoopMode.defaultRunLoopMode);
|
||||
RunLoop.current.add(renderTimer, forMode: RunLoopMode.eventTrackingRunLoopMode);
|
||||
|
@ -64,11 +64,11 @@ class EmuGLView: NSOpenGLView {
|
|||
}
|
||||
|
||||
override func keyDown(with e: NSEvent) {
|
||||
emu_key_input(e.characters!, 1);
|
||||
emu_key_input(e.keyCode, 1);
|
||||
}
|
||||
|
||||
override func keyUp(with e: NSEvent) {
|
||||
emu_key_input(e.characters!, 0);
|
||||
emu_key_input(e.keyCode, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,9 +8,11 @@
|
|||
|
||||
#ifndef emulator_osx_osx_main_Bridging_Header_h
|
||||
#define emulator_osx_osx_main_Bridging_Header_h
|
||||
#include <MacTypes.h>
|
||||
|
||||
void emu_main();
|
||||
int emu_single_frame(int w, int h);
|
||||
void emu_gles_init();
|
||||
void emu_key_input(const char* key, int state);
|
||||
void emu_key_input(UInt16 keyCode, int state);
|
||||
void emu_shutdown();
|
||||
#endif
|
||||
|
|
|
@ -132,6 +132,7 @@ extern "C" int emu_single_frame(int w, int h) {
|
|||
return true;
|
||||
screen_width = w;
|
||||
screen_height = h;
|
||||
glViewport(0, 0, w, h);
|
||||
return rend_single_frame();
|
||||
}
|
||||
|
||||
|
@ -163,35 +164,56 @@ enum DCPad {
|
|||
Axis_Y= 0x20001,
|
||||
};
|
||||
|
||||
void handle_key(int dckey, int state) {
|
||||
static void handle_key(int dckey, int state) {
|
||||
if (state)
|
||||
kcode[0] &= ~dckey;
|
||||
else
|
||||
kcode[0] |= dckey;
|
||||
}
|
||||
|
||||
void handle_trig(u8* dckey, int state) {
|
||||
static void handle_trig(u8* dckey, int state) {
|
||||
if (state)
|
||||
dckey[0] = 255;
|
||||
else
|
||||
dckey[0] = 0;
|
||||
}
|
||||
|
||||
extern "C" void emu_key_input(char* keyt, int state) {
|
||||
int key = keyt[0];
|
||||
switch(key) {
|
||||
case 'z': handle_key(Btn_X, state); break;
|
||||
case 'x': handle_key(Btn_Y, state); break;
|
||||
case 'c': handle_key(Btn_B, state); break;
|
||||
case 'v': handle_key(Btn_A, state); break;
|
||||
extern "C" void emu_key_input(UInt16 keyCode, int state) {
|
||||
switch(keyCode) {
|
||||
// Z
|
||||
case 0x06: handle_key(Btn_X, state); break;
|
||||
// X
|
||||
case 0x07: handle_key(Btn_Y, state); break;
|
||||
// C
|
||||
case 0x08: handle_key(Btn_B, state); break;
|
||||
// V
|
||||
case 0x09: handle_key(Btn_A, state); break;
|
||||
|
||||
case 'a': handle_trig(lt, state); break;
|
||||
case 's': handle_trig(rt, state); break;
|
||||
// A
|
||||
case 0x00: handle_trig(lt, state); break;
|
||||
// S
|
||||
case 0x01: handle_trig(rt, state); break;
|
||||
|
||||
case 'j': handle_key(DPad_Left, state); break;
|
||||
case 'k': handle_key(DPad_Down, state); break;
|
||||
case 'l': handle_key(DPad_Right, state); break;
|
||||
case 'i': handle_key(DPad_Up, state); break;
|
||||
case 0xa: handle_key(Btn_Start, state); break;
|
||||
// J
|
||||
case 0x26: handle_key(DPad_Left, state); break;
|
||||
// K
|
||||
case 0x28: handle_key(DPad_Down, state); break;
|
||||
// L
|
||||
case 0x25: handle_key(DPad_Right, state); break;
|
||||
// I
|
||||
case 0x22: handle_key(DPad_Up, state); break;
|
||||
// Enter
|
||||
case 0x24: handle_key(Btn_Start, state); break;
|
||||
}
|
||||
}
|
||||
|
||||
void rend_terminate();
|
||||
void ngen_terminate();
|
||||
void dc_term();
|
||||
|
||||
extern "C" void emu_shutdown()
|
||||
{
|
||||
rend_terminate();
|
||||
ngen_terminate();
|
||||
dc_term();
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ void ngen_mainloop(void* v_cntx)
|
|||
} while (ngen_required);
|
||||
}
|
||||
|
||||
#if HOST_OS==OS_LINUX
|
||||
#if HOST_OS==OS_LINUX || HOST_OS==OS_DARWIN
|
||||
void ngen_terminate()
|
||||
{
|
||||
ngen_required = false;
|
|
@ -180,7 +180,6 @@
|
|||
84B7BF6B1B72720200F9733F /* audiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE791B72720200F9733F /* audiostream.cpp */; };
|
||||
84B7BF6C1B72720200F9733F /* profiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE7D1B72720200F9733F /* profiler.cpp */; };
|
||||
84B7BF6D1B72720200F9733F /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE7F1B72720200F9733F /* README.md */; };
|
||||
84B7BF6E1B72720200F9733F /* rec_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE811B72720200F9733F /* rec_cpp.cpp */; };
|
||||
84B7BF741B72720200F9733F /* descrambl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE901B72720200F9733F /* descrambl.cpp */; };
|
||||
84B7BF751B72720200F9733F /* gdrom_hle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE921B72720200F9733F /* gdrom_hle.cpp */; };
|
||||
84B7BF761B72720200F9733F /* reios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BE941B72720200F9733F /* reios.cpp */; };
|
||||
|
@ -192,6 +191,8 @@
|
|||
84B7BF7F1B72720200F9733F /* stdclass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BEA71B72720200F9733F /* stdclass.cpp */; };
|
||||
84B7BF831B727AD700F9733F /* osx-main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BF821B727AD700F9733F /* osx-main.mm */; };
|
||||
84B7BF861B72871600F9733F /* EmuGLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B7BF851B72871600F9733F /* EmuGLView.swift */; };
|
||||
AE1E292520947C6100FC6BA2 /* rec_x64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AE1E292420947C6100FC6BA2 /* rec_x64.cpp */; };
|
||||
AE1E293B2095FB1600FC6BA2 /* rec_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AE1E293A2095FB1600FC6BA2 /* rec_cpp.cpp */; };
|
||||
EBDF374F1BB96581001191B5 /* audiobackend_coreaudio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EBDF374D1BB96581001191B5 /* audiobackend_coreaudio.cpp */; };
|
||||
EBDF37511BB969EE001191B5 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDF37501BB969EE001191B5 /* CoreAudio.framework */; };
|
||||
EBDF37531BB969F8001191B5 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDF37521BB969F8001191B5 /* AudioUnit.framework */; };
|
||||
|
@ -517,7 +518,6 @@
|
|||
84B7BE7D1B72720200F9733F /* profiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = profiler.cpp; sourceTree = "<group>"; };
|
||||
84B7BE7E1B72720200F9733F /* profiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = profiler.h; sourceTree = "<group>"; };
|
||||
84B7BE7F1B72720200F9733F /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../../../core/README.md; sourceTree = "<group>"; };
|
||||
84B7BE811B72720200F9733F /* rec_cpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_cpp.cpp; sourceTree = "<group>"; };
|
||||
84B7BE901B72720200F9733F /* descrambl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = descrambl.cpp; sourceTree = "<group>"; };
|
||||
84B7BE911B72720200F9733F /* descrambl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = descrambl.h; sourceTree = "<group>"; };
|
||||
84B7BE921B72720200F9733F /* gdrom_hle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gdrom_hle.cpp; sourceTree = "<group>"; };
|
||||
|
@ -539,6 +539,12 @@
|
|||
84B7BF821B727AD700F9733F /* osx-main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "osx-main.mm"; sourceTree = "<group>"; };
|
||||
84B7BF841B72821900F9733F /* emulator-osx-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "emulator-osx-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
84B7BF851B72871600F9733F /* EmuGLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmuGLView.swift; sourceTree = "<group>"; };
|
||||
AE1E292420947C6100FC6BA2 /* rec_x64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_x64.cpp; sourceTree = "<group>"; };
|
||||
AE1E292820947D4700FC6BA2 /* xbyak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbyak.h; sourceTree = "<group>"; };
|
||||
AE1E292920947D4700FC6BA2 /* xbyak_bin2hex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbyak_bin2hex.h; sourceTree = "<group>"; };
|
||||
AE1E292A20947D4700FC6BA2 /* xbyak_mnemonic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbyak_mnemonic.h; sourceTree = "<group>"; };
|
||||
AE1E292B20947D4700FC6BA2 /* xbyak_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbyak_util.h; sourceTree = "<group>"; };
|
||||
AE1E293A2095FB1600FC6BA2 /* rec_cpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_cpp.cpp; sourceTree = "<group>"; };
|
||||
EBDF374D1BB96581001191B5 /* audiobackend_coreaudio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_coreaudio.cpp; sourceTree = "<group>"; };
|
||||
EBDF374E1BB96581001191B5 /* audiobackend_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audiobackend_coreaudio.h; sourceTree = "<group>"; };
|
||||
EBDF37501BB969EE001191B5 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||
|
@ -652,7 +658,8 @@
|
|||
84B7BE6F1B72720200F9733F /* oslib */,
|
||||
84B7BE7C1B72720200F9733F /* profiler */,
|
||||
84B7BE7F1B72720200F9733F /* README.md */,
|
||||
84B7BE801B72720200F9733F /* rec-cpp */,
|
||||
AE1E29392095FB1600FC6BA2 /* rec-cpp */,
|
||||
AE1E292320947C6100FC6BA2 /* rec-x64 */,
|
||||
84B7BE8F1B72720200F9733F /* reios */,
|
||||
84B7BE981B72720200F9733F /* rend */,
|
||||
84B7BEA71B72720200F9733F /* stdclass.cpp */,
|
||||
|
@ -685,6 +692,7 @@
|
|||
84B7BD2D1B72720100F9733F /* libelf */,
|
||||
84B7BD351B72720100F9733F /* libpng */,
|
||||
84B7BD661B72720100F9733F /* libzip */,
|
||||
AE1E292620947D4700FC6BA2 /* xbyak */,
|
||||
84B7BDA01B72720100F9733F /* zlib */,
|
||||
);
|
||||
name = deps;
|
||||
|
@ -1240,15 +1248,6 @@
|
|||
path = ../../../core/profiler;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84B7BE801B72720200F9733F /* rec-cpp */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84B7BE811B72720200F9733F /* rec_cpp.cpp */,
|
||||
);
|
||||
name = "rec-cpp";
|
||||
path = "../../../core/rec-cpp";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84B7BE8F1B72720200F9733F /* reios */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -1288,6 +1287,34 @@
|
|||
path = gles;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
AE1E292320947C6100FC6BA2 /* rec-x64 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AE1E292420947C6100FC6BA2 /* rec_x64.cpp */,
|
||||
);
|
||||
path = "rec-x64";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
AE1E292620947D4700FC6BA2 /* xbyak */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AE1E292820947D4700FC6BA2 /* xbyak.h */,
|
||||
AE1E292920947D4700FC6BA2 /* xbyak_bin2hex.h */,
|
||||
AE1E292A20947D4700FC6BA2 /* xbyak_mnemonic.h */,
|
||||
AE1E292B20947D4700FC6BA2 /* xbyak_util.h */,
|
||||
);
|
||||
path = xbyak;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
AE1E29392095FB1600FC6BA2 /* rec-cpp */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AE1E293A2095FB1600FC6BA2 /* rec_cpp.cpp */,
|
||||
);
|
||||
name = "rec-cpp";
|
||||
path = "../../../core/rec-cpp";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -1451,6 +1478,7 @@
|
|||
84B7BEF21B72720200F9733F /* zip_file_get_offset.c in Sources */,
|
||||
84B7BF7B1B72720200F9733F /* gltex.cpp in Sources */,
|
||||
84B7BEF41B72720200F9733F /* zip_filerange_crc.c in Sources */,
|
||||
AE1E292520947C6100FC6BA2 /* rec_x64.cpp in Sources */,
|
||||
84B7BEB91B72720200F9733F /* elf.cpp in Sources */,
|
||||
84B7BF6D1B72720200F9733F /* README.md in Sources */,
|
||||
84B7BF2B1B72720200F9733F /* arm_mem.cpp in Sources */,
|
||||
|
@ -1471,6 +1499,7 @@
|
|||
84B7BF411B72720200F9733F /* ta_vtx.cpp in Sources */,
|
||||
84B7BEF61B72720200F9733F /* zip_fopen_index.c in Sources */,
|
||||
84B7BEEE1B72720200F9733F /* zip_error_to_str.c in Sources */,
|
||||
AE1E293B2095FB1600FC6BA2 /* rec_cpp.cpp in Sources */,
|
||||
84B7BEF81B72720200F9733F /* zip_free.c in Sources */,
|
||||
84B7BF331B72720200F9733F /* sb_mem.cpp in Sources */,
|
||||
84B7BF2F1B72720200F9733F /* gdromv3.cpp in Sources */,
|
||||
|
@ -1566,7 +1595,6 @@
|
|||
84A388B91B1CDD3E000166C0 /* AppDelegate.swift in Sources */,
|
||||
84B7BF001B72720200F9733F /* zip_new.c in Sources */,
|
||||
84B7BF0A1B72720200F9733F /* zip_source_filep.c in Sources */,
|
||||
84B7BF6E1B72720200F9733F /* rec_cpp.cpp in Sources */,
|
||||
84967CBE1B8F49EE005F1140 /* filter_neon.S in Sources */,
|
||||
84B7BF091B72720200F9733F /* zip_source_file.c in Sources */,
|
||||
84B7BF151B72720200F9733F /* zip_unchange_data.c in Sources */,
|
||||
|
@ -1630,8 +1658,12 @@
|
|||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
TARGET_NO_EXCEPTIONS,
|
||||
TARGET_NO_WEBUI,
|
||||
TARGET_NO_NIXPROF,
|
||||
TARGET_NO_COREIO_HTTP,
|
||||
TARGET_NO_AREC,
|
||||
XBYAK_NO_OP_NAMES,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
|
@ -1671,6 +1703,14 @@
|
|||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
TARGET_NO_EXCEPTIONS,
|
||||
TARGET_NO_WEBUI,
|
||||
TARGET_NO_NIXPROF,
|
||||
TARGET_NO_COREIO_HTTP,
|
||||
TARGET_NO_AREC,
|
||||
XBYAK_NO_OP_NAMES,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
|
@ -1688,15 +1728,18 @@
|
|||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
|
||||
TARGET_NO_EXCEPTIONS,
|
||||
TARGET_NO_WEBUI,
|
||||
TARGET_NO_NIXPROF,
|
||||
TARGET_NO_COREIO_HTTP,
|
||||
TARGET_NO_JIT,
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=i386]" = (
|
||||
TARGET_OSX,
|
||||
"$(inherited)",
|
||||
);
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=x86_64]" = (
|
||||
TARGET_OSX_X64,
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
|
@ -1717,15 +1760,15 @@
|
|||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
|
||||
TARGET_NO_EXCEPTIONS,
|
||||
TARGET_NO_WEBUI,
|
||||
TARGET_NO_NIXPROF,
|
||||
TARGET_NO_COREIO_HTTP,
|
||||
TARGET_NO_JIT,
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=i386]" = (
|
||||
TARGET_OSX,
|
||||
"$(inherited)",
|
||||
);
|
||||
"GCC_PREPROCESSOR_DEFINITIONS[arch=x86_64]" = (
|
||||
TARGET_OSX_X64,
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
|
|
Loading…
Reference in New Issue