From 8edd892e2a3c682bb262b2d67900341b1d61da38 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 12:46:18 +0600 Subject: [PATCH 01/54] add cmake for vs2005 --- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ build_vs2005.bat | 7 +++++++ 2 files changed, 46 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 build_vs2005.bat diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3cecf42 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 2.8) +set (projectName cascade) + +set(QT_QMAKE_EXECUTABLE "c:/Qt/4.8.1-win32vs05/bin/qmake.exe") + +find_package(Qt4 REQUIRED) +include(${QT_USE_FILE}) +if(DIST_WINDOWS) +add_definitions(-DDIST_WINDOWS) +endif() + +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ) +if(DIST_WIN32VS05) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vs2005) +endif() + +file(GLOB ${projectName}_SRC + "*.h" + "*.h" + "*.cpp" +) + QT4_WRAP_CPP(MOC_SOURCES ui.h) + list (APPEND ${projectName}_SRC ${MOC_SOURCES}) + +if(DIST_WIN32VS05) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp) +endif() + + +message(${${projectName}_SRC}) +add_executable(${projectName} ${${projectName}_SRC}) +if(DIST_WINDOWS) +target_link_libraries(${projectName} ${CMAKE_CURRENT_SOURCE_DIR}/ftd2xx_win32/ftd2xx.lib ) +target_link_libraries(${projectName} Qt4::QtGui ) +endif() + diff --git a/build_vs2005.bat b/build_vs2005.bat new file mode 100644 index 0000000..21a5d6f --- /dev/null +++ b/build_vs2005.bat @@ -0,0 +1,7 @@ +mkdir build +mkdir "build/vs2005" +pushd "build/vs2005" +cmake -G"Visual Studio 8 2005" ../../ -DDIST_WIN32VS05=1 -DDIST_WINDOWS=1 + +"%VS80COMNTOOLS%\..\IDE\devenv.com" Project.sln /Build +popd \ No newline at end of file From 89ac960354df02bb7b2621d0da11fcfcdaf72087 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:33:28 +0600 Subject: [PATCH 02/54] rewrite ggc range case by if fix range case --- cpu.cpp | 10 ++++---- cpu.h | 50 +++++++++++++++++----------------------- cpu_emu.cpp | 40 ++++++++++++++++++++++++++++---- cpu_io.cpp | 66 ++++++++++++++++++++++++++++++++--------------------- serial.cpp | 11 ++++++++- ui.cpp | 22 ++++++++++++++++-- 6 files changed, 132 insertions(+), 67 deletions(-) diff --git a/cpu.cpp b/cpu.cpp index 3fa5ca7..a4de9c0 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -286,7 +286,7 @@ uint32_t Cpu::virtToPhysSlow(uint16_t addr, int fetch) else if (map_hi == 8 && map_lo <= 0x1f) { // (map_lo == 0x1e || map_lo == 0x1f || map_lo == 3 || map_lo == 5 || map_lo == 4)) { return 0xcaf00000UL + map_lo * 0x4000 + (addr - 0xc000); } - else if (map_hi == 0x10) { + else if (map_hi == 0x10 ) { if (exrom) return 0xbab00000UL + map_lo * 0x4000 + (addr - 0xc000); else @@ -524,7 +524,7 @@ const char *Cpu::disassemble() case 0x19: OP2SH("SHLB"); break; case 0x1a: OP2SH("SHRAB"); break; case 0x1b: OP2IX("XCHB"); break; - case 0x1c ... 0x1f: OP0("RESERVED"); break; + /* case 0x1c ... 0x1f: OP0("RESERVED"); break; case 0x20 ... 0x27: OPJ11("SJMP"); break; case 0x28 ... 0x2f: OPJ11("SCALL"); break; case 0x30 ... 0x37: OPJBIT("JBC"); break; @@ -560,7 +560,7 @@ const char *Cpu::disassemble() case 0xb0 ... 0xb3: OP2("LDB"); break; case 0xb4 ... 0xb7: OP2("ADDCB"); break; case 0xb8 ... 0xbb: OP2("SUBCB"); break; - case 0xbc ... 0xbf: OP2("LDBSE"); break; + case 0xbc ... 0xbf: OP2("LDBSE"); break;*/ case 0xc0: OP2("ST"); break; case 0xc1: OP2D("BMOV"); break; case 0xc2: OP2("ST"); break; @@ -597,9 +597,9 @@ const char *Cpu::disassemble() case 0xe1: OPDJ8("DJNZW"); break; case 0xe2: OPUNIMP("TIJMP"); break; case 0xe3: sprintf(buf, "BR [%02X]", peek(1)); break; - case 0xe4 ... 0xe6: OP0("RESERVED"); break; + // case 0xe4 ... 0xe6: OP0("RESERVED"); break; case 0xe7: OPJ16("LJMP"); break; - case 0xe8 ... 0xeb: OP0("RESERVED"); break; + // case 0xe8 ... 0xeb: OP0("RESERVED"); break; case 0xec: OPUNIMP("DPTS"); break; case 0xed: OPUNIMP("EPTS"); break; case 0xee: OP0("RESERVED NOP"); break; diff --git a/cpu.h b/cpu.h index c47ec60..1a15fee 100644 --- a/cpu.h +++ b/cpu.h @@ -151,17 +151,15 @@ friend class Keypad; uint8_t memRead8Bus(uint16_t addr, int fetch); typedef uint8_t (Cpu::*memReader)(uint16_t addr); - inline uint8_t memRead8(uint16_t addr) { - switch (addr) { - case 0 ... 1: return 0; - case 0x18 ... 0xff: - case 0x2000 ... 0xbfff: - return memRead8Ram(addr); - case 0xc000 ... 0xffff: - return memRead8Mapped(addr); - default: - return memRead8Slow(addr); - } + inline uint8_t memRead8(uint16_t addr) + { + if (addr == 1 || addr==0) return 0; + if (addr>=0x18 && addr <=0xFF) return memRead8Ram(addr); + if (addr>=0x2000 && addr <=0xbfff) return memRead8Ram(addr); + if (addr>=0xc000 && addr <=0xFFFF) return memRead8Mapped(addr); +//default + return memRead8Slow(addr); + } uint8_t memRead8Ram(uint16_t addr) { @@ -206,24 +204,18 @@ friend class Keypad; } typedef void (Cpu::*memWriter)(uint16_t addr, uint8_t value); - inline void memWrite8(uint16_t addr, uint8_t value) { - switch (addr) { - case 0 ... 0x17: - case 0x200 ... 0x2ff: - ioWrite8(addr, value); - break; - case 0x18 ... 0xff: - case 0x2000 ... 0xbfff: - memWrite8Ram(addr, value); - break; - case 0xc000 ... 0xffff: - memWrite8Mapped(addr, value); - break; - default: - memWrite8Slow(addr, value); - break; - } - } + inline void memWrite8(uint16_t addr, uint8_t value) + { + if (addr >=0x0 && addr <= 0x17) return ioWrite8(addr,value); + if (addr >=0x200 && addr <= 0x2ff) return ioWrite8(addr,value); + if (addr >=0x18 && addr <= 0xff) return memWrite8Ram(addr,value); + if (addr >=0x2000 && addr <= 0xbfff) return memWrite8Ram(addr,value); + + if (addr >=0xc000 && addr <= 0xffff) return memWrite8Mapped(addr,value); +//default + return memWrite8Slow(addr, value);; + } + void memWrite8Slow(uint16_t addr, uint8_t value); void memWrite8Mapped(uint16_t addr, uint8_t value) { DEBUG(MEM, "WRITE %02X -> %04X\n", value, addr); diff --git a/cpu_emu.cpp b/cpu_emu.cpp index 353733e..1f2dcad 100644 --- a/cpu_emu.cpp +++ b/cpu_emu.cpp @@ -573,7 +573,15 @@ int Cpu::emulate(void) psw |= PSW_VT; } break; - case 0x20 ... 0x27: /* sjmp rel11 */ + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + // case 0x20 ... 0x27: /* sjmp rel11 */ rel16 = ((int16_t)((fetch() | ((opcode & 0x7) << 8)) << 5)) >> 5; target = pc + rel16; if (target == pc - 2) { @@ -586,7 +594,15 @@ int Cpu::emulate(void) pc = target; cycle(7); break; - case 0x28 ... 0x2f: /* scall rel11 */ + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + // case 0x28 ... 0x2f: /* scall rel11 */ val8 = fetch(); rel16 = ((int16_t)((val8 | ((opcode & 0x7) << 8)) << 5)) >> 5; target = pc + rel16; @@ -594,7 +610,15 @@ int Cpu::emulate(void) pc = target; cycle(11); break; - case 0x30 ... 0x37: /* jbc rel8 */ + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: +// case 0x30 ... 0x37: /* jbc rel8 */ imm8 = 1 << (opcode & 0x7); addr8 = fetch(); sval8 = (int8_t)fetch(); @@ -606,7 +630,15 @@ int Cpu::emulate(void) } cycle(5); break; - case 0x38 ... 0x3f: /* jbs rel8 */ + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + // case 0x38 ... 0x3f: /* jbs rel8 */ imm8 = 1 << (opcode & 0x7); addr8 = fetch(); sval8 = (int8_t)fetch(); diff --git a/cpu_io.cpp b/cpu_io.cpp index e08c69f..f7e7da3 100644 --- a/cpu_io.cpp +++ b/cpu_io.cpp @@ -315,25 +315,33 @@ uint8_t Cpu::ioRead8(uint16_t addr) REG("DATAMAP_HI"); ret = data_hi; break; - case 0x203 ... 0x20f: - case 0x211: - case 0x213 ... 0x235: - case 0x237 ... 0x23f: - case 0x241 ... 0x26f: - case 0x274 ... 0x2ff: - REG("IO2XX"); - DEBUG(IO, "%04X: IO2XX from %04X (%02X, '%c')\n", opc, addr, ram[addr], printable_char(ram[addr])); - if (addr == 0x274) - ret = 0x00; - else - ret = ram[addr]; - break; + default: + if ((addr>= 0x203 && addr <= 0x20f) || + (addr>= 0x211 && addr <= 0x211) || + (addr>= 0x213 && addr <= 0x235) || + (addr>= 0x237 && addr <= 0x23f) || + (addr>= 0x241 && addr <= 0x26f) || + (addr>= 0x274 && addr <= 0x2ff) + ) + { + + REG("IO2XX"); + DEBUG(IO, "%04X: IO2XX from %04X (%02X, '%c')\n", opc, addr, ram[addr], printable_char(ram[addr])); + if (addr == 0x274) + ret = 0x00; + else + ret = ram[addr]; + + + goto jump_good; + } fail: ERROR("I/O byte read from 0x%x unimplemented at %04X\n", addr, opc); dumpMem(); exit(1); }; +jump_good: DEBUG(IO, "%04X (%08X/%8lld): IOR %s (%02X): %02X ('%c')\n", opc, virtToPhys(opc, 1), (long long)getCycles(), reg, addr, ret, printable_char(ret)); return ret; } @@ -776,25 +784,31 @@ void Cpu::ioWrite8(uint16_t addr, uint8_t value) data_ptr = (uint8_t *)&rom[phys]; } break; - case 0x200: - case 0x201: - case 0x203 ... 0x20f: - case 0x211: - case 0x213 ... 0x24f: - case 0x251 ... 0x253: - case 0x255 ... 0x25d: - case 0x25f ... 0x26f: - case 0x274 ... 0x2ff: - REG("IO2XX"); - DEBUG(IO, "%04X: IO2XX %02X ('%c') to %04X\n", opc, value, printable_char(value), addr); - ram[addr] = value; - break; + default: + if ((addr>= 0x200 && addr <= 0x201) || + (addr>= 0x203 && addr <= 0x20f) || + (addr>= 0x211 && addr <= 0x211) || + (addr>= 0x213 && addr <= 0x24f) || + (addr>= 0x251 && addr <= 0x253) || + (addr>= 0x255 && addr <= 0x25d) || + (addr>= 0x25f && addr <= 0x26f) || + (addr>= 0x274 && addr <= 0x2ff) + ) + { + REG("IO2XX"); + DEBUG(IO, "%04X: IO2XX %02X ('%c') to %04X\n", opc, value, printable_char(value), addr); + ram[addr] = value; + + goto jump_good; + } + fail: ERROR("%04X/%08X: I/O byte write of 0x%x ('%c') to 0x%x (WSR %02X) unimplemented\n", opc, virtToPhys(opc, 1), value, printable_char(value), addr, wsr); dumpMem(); exit(1); }; +jump_good: DEBUG(IO, "%04X (%08X/%8lld): IOW %s (%02X/'%c') -> %02X\n", opc, virtToPhys(opc, 1), (long long)getCycles(), reg, value, printable_char(value), addr); } diff --git a/serial.cpp b/serial.cpp index 39517b5..450bf3e 100644 --- a/serial.cpp +++ b/serial.cpp @@ -434,7 +434,16 @@ int Serial::getRxState(void) case 0: /* start bit */ serial_bitbang_last_bit_sent = 0; break; - case 1 ... 8: /* data bits */ +// case 1 ... 8: /* data bits */ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + /* data bits */ byte = snoopByte(); serial_bitbang_last_bit_sent = (byte >> (serial_bitbang_bit_pos - 1)) & 1; DEBUG(SERIAL, "issuing bit %d of %02X at %llu\n", diff --git a/ui.cpp b/ui.cpp index 3d0a685..b1ab4d5 100755 --- a/ui.cpp +++ b/ui.cpp @@ -752,9 +752,27 @@ void UI::keyEvent(QKeyEvent *event, bool *key_event) key_event[UIKEY_y] = true; break; case Qt::Key_N: key_event[UIKEY_n] = true; break; - case Qt::Key_0 ... Qt::Key_9: + case Qt::Key_0: + case Qt::Key_1: + case Qt::Key_2: + case Qt::Key_3: + case Qt::Key_4: + case Qt::Key_5: + case Qt::Key_6: + case Qt::Key_7: + case Qt::Key_8: + case Qt::Key_9: key_event[event->key() - Qt::Key_0 + UIKEY_0] = true; break; - case Qt::Key_F1 ... Qt::Key_F9: + case Qt::Key_F1: + case Qt::Key_F2: + case Qt::Key_F3: + case Qt::Key_F4: + case Qt::Key_F5: + case Qt::Key_F6: + case Qt::Key_F7: + case Qt::Key_F8: + case Qt::Key_F9: + key_event[event->key() - Qt::Key_F1 + UIKEY_F1] = true; break; case Qt::Key_F12: key_event[UIKEY_F12] = true; break; From d8d30626dac2774e47ea9bdffe44c4ab4380eb81 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:02:56 +0600 Subject: [PATCH 03/54] vs2005 stdint --- vs2005/stdint.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 vs2005/stdint.h diff --git a/vs2005/stdint.h b/vs2005/stdint.h new file mode 100644 index 0000000..019b9e2 --- /dev/null +++ b/vs2005/stdint.h @@ -0,0 +1,52 @@ + + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + + +#pragma once + +#include + +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when +// compiling for ARM we should wrap include with 'extern "C++" {}' +// or compiler give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#ifdef __cplusplus +extern "C" { +#endif +# include +#ifdef __cplusplus +} +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + + typedef signed __int8 int8_t; + typedef signed __int16 int16_t; + typedef signed __int32 int32_t; + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; + +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + +#ifdef _WIN64 // [ + typedef signed __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 signed int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + + +#endif // _MSC_STDINT_H_ ] From 594598da11eed44f666078781645a41e09082488 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:03:18 +0600 Subject: [PATCH 04/54] use __VA_ARGS__ --- debug.h | 14 +++++++------- os_serial_win32.cpp | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/debug.h b/debug.h index 7894219..31e8a96 100644 --- a/debug.h +++ b/debug.h @@ -38,21 +38,21 @@ extern FILE *win_stderr; #endif #ifdef NDEBUG -#define DEBUG(level, bla...) do {} while(0) +#define DEBUG(level, ...) do {} while(0) #else #ifdef __MINGW32__ -#define DEBUG(level, bla...) \ - do { if (unlikely(debug_level & DEBUG_ ##level)) __mingw_fprintf(win_stderr, bla); /* fflush(win_stderr); */ } while(0) +#define DEBUG(level, ...) \ + do { if (unlikely(debug_level & DEBUG_ ##level)) __mingw_fprintf(win_stderr, __VA_ARGS__); /* fflush(win_stderr); */ } while(0) #else -#define DEBUG(level, bla...) \ - do { if (unlikely(debug_level & DEBUG_ ##level)) fprintf(stderr, bla); } while(0) +#define DEBUG(level, ...) \ + do { if (unlikely(debug_level & DEBUG_ ##level)) fprintf(stderr, __VA_ARGS__); } while(0) #endif #endif #ifdef __MINGW32__ #undef ERROR -#define ERROR(bla...) do { __mingw_fprintf(win_stderr, bla); fflush(win_stderr); } while(0) +#define ERROR(...) do { __mingw_fprintf(win_stderr, __VA_ARGS__); fflush(win_stderr); } while(0) #else -#define ERROR(bla...) fprintf(stderr, bla) +#define ERROR(...) fprintf(stderr, __VA_ARGS__) #endif extern uint32_t debug_level; diff --git a/os_serial_win32.cpp b/os_serial_win32.cpp index aabdc4f..1bf4bdb 100644 --- a/os_serial_win32.cpp +++ b/os_serial_win32.cpp @@ -23,10 +23,10 @@ //#define DRYDOCK -#define CHECK(fun, args...) { \ +#define CHECK(fun, ...) { \ FT_STATUS ret; \ /* DEBUG(OS, "doing " #fun " now\n"); */ \ - if ((ret = fun(args)) != FT_OK) { \ + if ((ret = fun(__VA_ARGS__)) != FT_OK) { \ DEBUG(OS, #fun " failed: %ld\n", ret); \ return -1; \ } \ From 2a0c116d6b9cbabc3465f984386a9c9a35d3449a Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:07:10 +0600 Subject: [PATCH 05/54] fix unlikely for MSVC --- debug.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/debug.h b/debug.h index 31e8a96..6a6b5d5 100644 --- a/debug.h +++ b/debug.h @@ -29,9 +29,12 @@ #define DEBUG_UI 0x00000200UL #define DEBUG_DEFAULT (DEBUG_WARN | DEBUG_SERIAL | DEBUG_ABRIDGED | DEBUG_IFACE | DEBUG_OS | DEBUG_KEY | DEBUG_HSIO | DEBUG_HINTS | DEBUG_UI) - +#ifdef _MSC_VER +#define unlikely(x) (x) +#else #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) +#endif // MSVC_VER #ifdef __MINGW32__ extern FILE *win_stderr; From d8b328657407e12fe88f3543f4eb78c2f04cb024 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:28:31 +0600 Subject: [PATCH 06/54] fix missing __attribute__ in MSVC --- ui.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ui.cpp b/ui.cpp index b1ab4d5..436e082 100755 --- a/ui.cpp +++ b/ui.cpp @@ -32,7 +32,12 @@ class KeypadButton : public QPushButton { }; /* Don't forget to update enum in ui.h! */ +#ifdef _MSC_VER +static const char *led_names[] = { +#else static const char *led_names[] __attribute__((used)) = { +#endif // _MCVC_VER + "serial", "data rx", "data tx", From 517754ff3c44eda91da744972f6214b6463be745 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 14:32:19 +0600 Subject: [PATCH 07/54] use alloca (replace 6.19 Arrays of Variable Length) --- cpu.cpp | 6 +++--- iface_can.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpu.cpp b/cpu.cpp index a4de9c0..b17184d 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -739,7 +739,7 @@ bool Cpu::loadRom(const char *name) DEBUG(OS, "extracting RAR file %s\n", rom_name); fclose(fp); sprintf(new_name, "%s.lha", rom_name); - char cmd[strlen(rom_name) + strlen(new_name) + 50]; + char *cmd = (char *)alloca(strlen(rom_name) + strlen(new_name) + 50); sprintf(cmd, "unrar p -inul \"%s\" >\"%s\"", rom_name, new_name); if (system(cmd)) { ERROR("failed to unpack %s to %s\n", rom_name, new_name); @@ -771,7 +771,7 @@ bool Cpu::loadRom(const char *name) *r = 0; sprintf(new_name, "%s.bin", stripname); free(stripname); - char cmd[strlen(rom_name) + strlen(new_name) + 50]; + char *cmd=(char *)alloca(strlen(rom_name) + strlen(new_name) + 50); sprintf(cmd, "lha p -q \"%s\" >\"%s\"", rom_name, new_name); if (system(cmd)) { ERROR("failed to unpack %s to %s\n", rom_name, new_name); @@ -821,7 +821,7 @@ bool Cpu::loadRom(const char *name) memcpy(ram, rom, 0xc000); - char eename[strlen(rom_name) + 4 + 1]; + char *eename=(char *)alloca(strlen(rom_name) + 4 + 1); sprintf(eename, "%s.eep", rom_name); eeprom->setFilename(eename); diff --git a/iface_can.cpp b/iface_can.cpp index d48c024..4963c89 100644 --- a/iface_can.cpp +++ b/iface_can.cpp @@ -175,7 +175,7 @@ void IfaceCAN::msgOut() /* 34 is the length of the longest fixed-size command (set filter), and the rest depends on tx_len, so this ought to be enough. */ - uint8_t out[34 + tx_len]; + uint8_t *out = (uint8_t *)alloca(34 + tx_len); int outp = 0; switch (tx_cmd) { From aca01506dd9b320c170cc5bfa981ca4ba4484405 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:44:13 +0600 Subject: [PATCH 08/54] fix typo --- state.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/state.h b/state.h index be33c62..ccbc3a5 100644 --- a/state.h +++ b/state.h @@ -35,7 +35,7 @@ typedef FILE* statefile_t; #define state_tell ftell #define state_seek fseek #define state_eof feof -#define state_close gzclose +#define state_close fclose #define STATE_RW(x) write ? fwrite(&x, sizeof(x), 1, fp) : fread(&x, sizeof(x), 1, fp) #define STATE_RWBUF(x, n) write ? fwrite(x, n, 1, fp) : fread(x, n, 1, fp) #endif From d414fe3c885e47d858e1c40f8d3715bc52dccf63 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 14:40:30 +0600 Subject: [PATCH 09/54] hide ERROR from wingdi.h --- debug.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/debug.h b/debug.h index 6a6b5d5..0a2bfdb 100644 --- a/debug.h +++ b/debug.h @@ -10,6 +10,13 @@ #include #include +#ifdef DIST_WINDOWS + +#ifdef ERROR +#undef ERROR +#endif // ERROR +#endif //DIST_WINDOW + #define DEBUG_WARN 0x00000010UL #define DEBUG_IO 0x00000100UL From f98067eb0934dcf4848db831e68fd502e5bfcba0 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 13:54:31 +0600 Subject: [PATCH 10/54] don't use getopt on windows (TOD need anothe cmdline parser) --- main.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index 6b5e032..cded4a5 100644 --- a/main.cpp +++ b/main.cpp @@ -12,7 +12,11 @@ #include #include #include +#ifndef DIST_WINDOWS + #include +#endif //DIST_WINDOWS + #include #include #include @@ -55,7 +59,7 @@ int main(int argc, char **argv) Cpu cpu(&ui); ui.setCpu(&cpu); - signed char c; + const char *tty = NULL; #define IFACE_ELM 0 @@ -75,6 +79,8 @@ int main(int argc, char **argv) #ifndef NDEBUG uint32_t trigger = 0; #endif +#if !defined(DIST_WINDOWS) + signed char c; while ((c = getopt (argc, argv, "d:t:w:s:m:r:p:i:ex:v:S")) != -1) { switch (c) { case 'd': @@ -184,7 +190,8 @@ int main(int argc, char **argv) } argc -= optind; argv += optind; - +#endif //DIST_WINDOWS + #ifndef NDEBUG if (trigger) { cpu.setDebugTrigger(trigger, debug_level); From 86ee795fa46b41ec9ad0bbe003ca4b2c4feb60c8 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 14:42:57 +0600 Subject: [PATCH 11/54] suppress missing headers --- os_serial_win32.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/os_serial_win32.cpp b/os_serial_win32.cpp index 1bf4bdb..80a2463 100644 --- a/os_serial_win32.cpp +++ b/os_serial_win32.cpp @@ -18,8 +18,14 @@ #include #include #include + +#ifndef DIST_WINDOWS + #include #include +#endif //DIST_WINDOW + + //#define DRYDOCK From 02f324e703c5787271df1a5474e4503295711733 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 14:56:46 +0600 Subject: [PATCH 12/54] workaround to not parse argv[0] --- main.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index cded4a5..7ac9515 100644 --- a/main.cpp +++ b/main.cpp @@ -199,13 +199,22 @@ int main(int argc, char **argv) } #endif +#if !defined(DIST_WINDOWS) if (argc >= 1) { if (!cpu.loadRom(argv[0])) { ERROR("failed to load ROM image\n"); exit(1); } } - +#else + if (argc > 1) { + if (!cpu.loadRom(argv[1])) { + ERROR("failed to load ROM image\n"); + exit(1); + } + } +#endif + Interface *iface; switch (iface_type) { case IFACE_KL: From 7c1465042d99fd162f8fdc3e67fcf90df331950d Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:01:15 +0600 Subject: [PATCH 13/54] enable K_CAN adapter --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index 7ac9515..66d5101 100644 --- a/main.cpp +++ b/main.cpp @@ -67,7 +67,7 @@ int main(int argc, char **argv) #define IFACE_FTDI 2 #define IFACE_FAKE 3 #define IFACE_KCAN 4 -#if defined(NDEBUG) && defined(__MINGW32__) +#if defined(NDEBUG) && (defined(__MINGW32__)|| defined (DIST_WINDOWS)) int iface_type = IFACE_KCAN; #else int iface_type = IFACE_FAKE; From 1668a98595a292facd991db3a2619ed3d1592878 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:02:37 +0600 Subject: [PATCH 14/54] qt5 compatibility --- ui.cpp | 14 ++++++++++---- ui.h | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ui.cpp b/ui.cpp index 436e082..1222bc1 100755 --- a/ui.cpp +++ b/ui.cpp @@ -8,17 +8,23 @@ * License 1.0. Read the file "LICENSE" for details. */ -#include "ui.h" -#include "lcd.h" -#include "serial.h" + #include #ifdef Q_WS_QWS #include #endif #include +#include +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +# include +#else +# include +#endif #include "version.h" - +#include "ui.h" +#include "lcd.h" +#include "serial.h" class KeypadButton : public QPushButton { public: KeypadButton(UI *ui, QString text, UIKey key) : QPushButton(text, ui) { diff --git a/ui.h b/ui.h index d92c280..6ac7f52 100755 --- a/ui.h +++ b/ui.h @@ -21,7 +21,7 @@ #include #endif #include -#include +//#include /* host display size */ #define DISPLAY_X 800 From fc4e2a3574fe88c08112c93de83a1ffcae9dd913 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:02:55 +0600 Subject: [PATCH 15/54] qt5 thread --- os_qt.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os_qt.cpp b/os_qt.cpp index dac20b5..260be7c 100644 --- a/os_qt.cpp +++ b/os_qt.cpp @@ -9,7 +9,7 @@ */ #include "os.h" -#include +#include class OsThread : public QThread { From e72dfb2c4dbc2c86683d8a1af142786dcc257bc2 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:03:37 +0600 Subject: [PATCH 16/54] adjust cmake to qt5 and vs2013 --- CMakeLists.txt | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cecf42..05501d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,22 @@ cmake_minimum_required(VERSION 2.8) set (projectName cascade) +if(DIST_WIN32VS05) set(QT_QMAKE_EXECUTABLE "c:/Qt/4.8.1-win32vs05/bin/qmake.exe") find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) +endif() + +if(DIST_WIN32VS13) +set(CMAKE_PREFIX_PATH "c:/Qt_5/5.5/msvc2013") + +find_package (Qt5Widgets REQUIRED) +endif() + + + + if(DIST_WINDOWS) add_definitions(-DDIST_WINDOWS) endif() @@ -18,11 +30,11 @@ file(GLOB ${projectName}_SRC "*.h" "*.h" "*.cpp" -) - QT4_WRAP_CPP(MOC_SOURCES ui.h) - list (APPEND ${projectName}_SRC ${MOC_SOURCES}) +) + +set(CMAKE_AUTOMOC TRUE) -if(DIST_WIN32VS05) +if(DIST_WINDOWS) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp) @@ -34,6 +46,10 @@ message(${${projectName}_SRC}) add_executable(${projectName} ${${projectName}_SRC}) if(DIST_WINDOWS) target_link_libraries(${projectName} ${CMAKE_CURRENT_SOURCE_DIR}/ftd2xx_win32/ftd2xx.lib ) +if(DIST_WIN32VS05) target_link_libraries(${projectName} Qt4::QtGui ) +else() +qt5_use_modules(${projectName} Widgets) +endif() endif() From 623dac2fc823cd5907a317903d63eed55ceeedf1 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:13:02 +0600 Subject: [PATCH 17/54] add vs2013.bat --- build_vs2013.bat | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 build_vs2013.bat diff --git a/build_vs2013.bat b/build_vs2013.bat new file mode 100644 index 0000000..9b98512 --- /dev/null +++ b/build_vs2013.bat @@ -0,0 +1,7 @@ +mkdir build +mkdir "build/vs2013" +pushd "build/vs2013" +cmake -G"Visual Studio 12" ../../ -DDIST_WIN32VS13=1 -DDIST_WINDOWS=1 + +"%VS120COMNTOOLS%\..\IDE\devenv.com" Project.sln /build Release +popd \ No newline at end of file From f8bb3f2924deace6d5131e14fb45940318e36e65 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:13:22 +0600 Subject: [PATCH 18/54] build release --- build_vs2005.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_vs2005.bat b/build_vs2005.bat index 21a5d6f..a6c87a9 100644 --- a/build_vs2005.bat +++ b/build_vs2005.bat @@ -3,5 +3,5 @@ mkdir "build/vs2005" pushd "build/vs2005" cmake -G"Visual Studio 8 2005" ../../ -DDIST_WIN32VS05=1 -DDIST_WINDOWS=1 -"%VS80COMNTOOLS%\..\IDE\devenv.com" Project.sln /Build +"%VS80COMNTOOLS%\..\IDE\devenv.com" Project.sln /build Release popd \ No newline at end of file From 0bbbeab97f031b4c1f4d9804ae46896477bc6f47 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 24 Feb 2016 18:14:58 +0600 Subject: [PATCH 19/54] remove exit(crash) on unhanded port 254h value , it looks like Nissan trying switch to Rx/Tx (pin 12/13) line for Consult-1 interface --- cpu_io.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpu_io.cpp b/cpu_io.cpp index f7e7da3..2d6994f 100644 --- a/cpu_io.cpp +++ b/cpu_io.cpp @@ -724,7 +724,7 @@ void Cpu::ioWrite8(uint16_t addr, uint8_t value) break; default: ERROR("unhandled port 254h value\n"); - exit(1); + // exit(1); break; } } From 8b85ad973017ffe5e3d6f094451a0ae3f1d36324 Mon Sep 17 00:00:00 2001 From: konstantin Date: Tue, 1 Mar 2016 19:52:46 +0600 Subject: [PATCH 20/54] add OS X support --- .gitignore | 1 + CMakeLists.txt | 30 ++++- autotty.cpp | 2 +- build_osx_clang_x64.sh | 7 + cpu.cpp | 4 + os_serial_macosx.cpp | 281 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 318 insertions(+), 7 deletions(-) create mode 100644 .gitignore create mode 100755 build_osx_clang_x64.sh create mode 100755 os_serial_macosx.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c785403 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/osx_clang64 diff --git a/CMakeLists.txt b/CMakeLists.txt index 05501d8..0f3b60d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,11 @@ set(CMAKE_PREFIX_PATH "c:/Qt_5/5.5/msvc2013") find_package (Qt5Widgets REQUIRED) endif() +if(DIST_MACOSX) +set(CMAKE_PREFIX_PATH "/Volumes/developer/Qt/5.5/clang_64/") +find_package (Qt5Widgets REQUIRED) +endif() if(DIST_WINDOWS) @@ -41,15 +45,29 @@ list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux. list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp) endif() +if(DIST_MACOSX) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_win32.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_win32.cpp) + +#list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp) +endif() + message(${${projectName}_SRC}) add_executable(${projectName} ${${projectName}_SRC}) + if(DIST_WINDOWS) -target_link_libraries(${projectName} ${CMAKE_CURRENT_SOURCE_DIR}/ftd2xx_win32/ftd2xx.lib ) -if(DIST_WIN32VS05) -target_link_libraries(${projectName} Qt4::QtGui ) -else() -qt5_use_modules(${projectName} Widgets) -endif() + target_link_libraries(${projectName} ${CMAKE_CURRENT_SOURCE_DIR}/ftd2xx_win32/ftd2xx.lib ) + if(DIST_WIN32VS05) + target_link_libraries(${projectName} Qt4::QtGui ) + else() + qt5_use_modules(${projectName} Widgets) + endif() +elseif(DIST_MACOSX) + qt5_use_modules(${projectName} Widgets) endif() + diff --git a/autotty.cpp b/autotty.cpp index a6bf698..117aeb2 100644 --- a/autotty.cpp +++ b/autotty.cpp @@ -16,7 +16,7 @@ AutoTTY::AutoTTY(UI *ui, const char *driver) { this->ui = ui; - this->driver = strdup(driver); + this->driver = driver?strdup(driver):NULL; sh = -1; plugged_in = false; ui->setLED(LED_IFACE, false); diff --git a/build_osx_clang_x64.sh b/build_osx_clang_x64.sh new file mode 100755 index 0000000..00148b6 --- /dev/null +++ b/build_osx_clang_x64.sh @@ -0,0 +1,7 @@ +mkdir build +mkdir "build/osx_clang64" +pushd "build/osx_clang64" +cmake -G"Xcode" ../../ -DDIST_MACOSX=1 + +xcodebuild -project Project.xcodeproj -configuration Release +popd \ No newline at end of file diff --git a/cpu.cpp b/cpu.cpp index b17184d..ddd167f 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -19,6 +19,10 @@ #include "hints.h" #include +#ifndef DIST_WINDOWS +#include +#endif //DIST_WINDOWS + Cpu::Cpu(UI *ui) { end_cycles = (uint64_t)-1LL; diff --git a/os_serial_macosx.cpp b/os_serial_macosx.cpp new file mode 100755 index 0000000..1816667 --- /dev/null +++ b/os_serial_macosx.cpp @@ -0,0 +1,281 @@ +/* + * os_serial_linux.cpp + * + * (C) Copyright 2014 Ulrich Hecht + * + * This file is part of CASCADE. CASCADE is almost free software; you can + * redistribute it and/or modify it under the terms of the Cascade Public + * License 1.0. Read the file "LICENSE" for details. + */ + +#include "os.h" +#include "debug.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//#define DRYDOCK + +int os_serial_open(const char *tty, bool nonblock) +{ +#ifdef DRYDOCK + return 2; /* stderr */ +#else + int fd; + + if (nonblock) + fd = open(tty, O_RDWR|O_NOCTTY|O_NDELAY); + else + { + fd = open(tty, O_RDWR|O_NOCTTY| O_NDELAY); + + + if (fd < 0) { + ERROR("OS failed to open serial device %s: %s\n", tty, strerror(errno)); + return -1; + } + + } + if (ioctl(fd, TIOCEXCL) == -1) { + close(fd); + return -1; + } + + + if (!nonblock) + { + if (fcntl(fd, F_SETFL, 0) == -1) { + close(fd); + return -1; + } + + } + + /* put TTY in raw mode */ + struct termios tio; + tcgetattr(fd, &tio); + cfmakeraw(&tio); + // CCTS_OFLOW + tio.c_cc[VMIN] =0; + tio.c_cc[VTIME] =1; + tcsetattr(fd, TCSANOW, &tio); + DEBUG(OS, "OS serial flush after open\n"); + tcflush(fd, TCIOFLUSH); /* flush stale serial buffers */ + + return fd; +#endif +} + +int os_serial_close(int handle) +{ + return close(handle); +} + +int os_serial_send(int handle, const char *msg) +{ + DEBUG(OS, "OS serial send %s\n", msg); + return write(handle, msg, strlen(msg)); +} + +int os_serial_send_buf(int handle, const unsigned char *buf, int len) +{ + DEBUG(OS, "OS serial send buffer, length %d\n", len); + return write(handle, buf, len); +} + +int os_serial_send_byte(int handle, char byte) +{ + int m =sizeof(byte); + DEBUG(OS, "OS serial send byte %02X\n", byte); + return write(handle, &byte, 1); +} + +int os_serial_bytes_received(int fd) +{ + int bytes = 0; + ioctl(fd, FIONREAD, &bytes); + return bytes; +} + +int os_serial_read_to_buffer(int fd, void *buf, int count) +{ + return read(fd, buf, count); +} + +int os_serial_flush(int fd) +{ + DEBUG(OS, "OS serial flush\n"); + return tcflush(fd, TCIOFLUSH); +} + + + + + +int os_serial_set_baudrate(int fd, int baudrate) +{ + struct termios tios; + if (tcgetattr(fd, &tios) < 0) { + ERROR("tcgetattr failed\n"); + return -1; + } + + // The IOSSIOSPEED ioctl can be used to set arbitrary baud rates + // other than those specified by POSIX. The driver for the underlying serial hardware + // ultimately determines which baud rates can be used. This ioctl sets both the input + // and output speed. + + speed_t speed = baudrate; // Set 14400 baud + if (ioctl(fd, IOSSIOSPEED, &speed) == -1) { + + ERROR("IOSSIOSPEED failed\n"); + return -1; + + } + + // cfsetispeed + + /* + struct serial_struct ser; + if (ioctl(fd, TIOCGSERIAL, &ser)) { + ERROR("TIOCGSERIAL failed\n"); + return -1; + } + + ser.custom_divisor = ser.baud_base / baudrate; + ser.flags &= ~ASYNC_SPD_MASK; + ser.flags |= ASYNC_SPD_CUST | ASYNC_LOW_LATENCY; + + tios.c_cflag &= ~CBAUD; + tios.c_cflag |= B38400; + + if (ioctl(fd, TIOCSSERIAL, &ser)) { + ERROR("TIOCSSERIAL failed\n"); + return -1; + } + if (ioctl(fd, TIOCGSERIAL, &ser)) { + ERROR("TIOCGSERIAL failed\n"); + return -1; + } + if (ser.custom_divisor != ser.baud_base / baudrate) { + ERROR("failed to set baudrate divisor, is %d, should be %d\n", ser.custom_divisor, ser.baud_base / baudrate); + } + if (tcsetattr(fd, TCSANOW, &tios) < 0) { + ERROR("tcsetattr failed\n"); + return -1; + }*/ + return 0; +} + +int os_serial_clear_break(int fd) +{ + if (ioctl(fd, TIOCCBRK) < 0) { + ERROR("TIOCCBRK failed\n"); + return -1; + } + return 0; +} + +int os_serial_set_break(int fd) +{ + if (ioctl(fd, TIOCSBRK) < 0) { + ERROR("TIOCSBRK failed\n"); + return -1; + } + return 0; +} + +int os_serial_set_rts(int fd) +{ + int flags; + if (ioctl(fd, TIOCMGET, &flags)) { + ERROR("CMBIC: %s\n", strerror(errno)); + return -1; + } + flags |= TIOCM_RTS; + return ioctl(fd, TIOCMSET, &flags); +} + +int os_serial_clear_rts(int fd) +{ + int flags; + if (ioctl(fd, TIOCMGET, &flags)) { + ERROR("CMBIC: %s\n", strerror(errno)); + return -1; + } + flags &= ~TIOCM_RTS; + return ioctl(fd, TIOCMSET, &flags); +} + +int os_serial_set_dtr(int fd) +{ + int flags; + if (ioctl(fd, TIOCMGET, &flags)) { + ERROR("CMBIC: %s\n", strerror(errno)); + return -1; + } + flags |= TIOCM_DTR; + return ioctl(fd, TIOCMSET, &flags); +} + +int os_serial_clear_dtr(int fd) +{ + int flags; + if (ioctl(fd, TIOCMGET, &flags)) { + ERROR("CMBIC: %s\n", strerror(errno)); + return -1; + } + flags &= ~TIOCM_DTR; + return ioctl(fd, TIOCMSET, &flags); +} + +const char *os_serial_get_error(void) +{ + return strerror(errno); +} + +#define SYS_DRIVER_PATH "/sys/bus/usb-serial/drivers/" + +int os_serial_find_port(const char *driver, char **tty_found) +{ + int sh; + char *sysfs_dir = "/dev/";//new char[sizeof(SYS_DRIVER_PATH) + strlen(driver)]; +// sprintf(sysfs_dir, SYS_DRIVER_PATH "%s", driver); + DEBUG(IFACE, "checking %s for tty\n", sysfs_dir); + + for (;;) { + DIR *dir = opendir(sysfs_dir); + if (!dir) { + os_msleep(300); + continue; + } + + struct dirent *ent; + while ((ent = readdir(dir))) { + //if (!strncmp("tty.usbserial", ent->d_name, strlen("tty.usbserial"))) { + if (!strncmp("cu.usbserial", ent->d_name, strlen("cu.usbserial"))) { + char *tty = new char[sizeof("/dev/") + strlen(ent->d_name)]; + sprintf(tty, "/dev/%s", ent->d_name); + DEBUG(IFACE, "trying to open %s\n", tty); + sh = os_serial_open(tty, false); + if (sh >= 0 && tty_found) + *tty_found = strdup(tty); + delete tty; + if (sh >= 0) { + closedir(dir); + //delete sysfs_dir; + return sh; + } + } + } + closedir(dir); + os_msleep(300); + } +} From 5dd46110196d22a0238f4cb4cc43239b146a5293 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Thu, 10 Mar 2016 23:28:26 +0600 Subject: [PATCH 21/54] adjust qt5 path to appveyor --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f3b60d..5e664fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ include(${QT_USE_FILE}) endif() if(DIST_WIN32VS13) -set(CMAKE_PREFIX_PATH "c:/Qt_5/5.5/msvc2013") +set(CMAKE_PREFIX_PATH "c:/Qt/5.5/msvc2013") find_package (Qt5Widgets REQUIRED) endif() From e7b5e15557ebf11b2612288e9aada75e782c9c66 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Thu, 3 Mar 2016 17:53:59 +0600 Subject: [PATCH 22/54] fix win32 --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e664fd..ea6c4b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ if(DIST_WINDOWS) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp) +list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_macosx.cpp) list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp) endif() From 444a8a91b9e6ad9eb953de69bc881683ce0f8857 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Fri, 11 Mar 2016 19:44:20 +0600 Subject: [PATCH 23/54] fix loading of qt5 plugins --- main.cpp | 2 +- ui.cpp | 12 +++++++++++- ui.h | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/main.cpp b/main.cpp index 66d5101..5bcdf6c 100644 --- a/main.cpp +++ b/main.cpp @@ -53,7 +53,7 @@ int main(int argc, char **argv) win_stderr = fopen("stderr.out", "w"); #endif - UI::initToolkit(); + UI::initToolkit(argv[0]); UI ui; Cpu cpu(&ui); diff --git a/ui.cpp b/ui.cpp index 1222bc1..8a216cd 100755 --- a/ui.cpp +++ b/ui.cpp @@ -663,8 +663,18 @@ void UI::keypadUpSlot() key_up[b->key] = true; } -void UI::initToolkit() +void UI::initToolkit(char *appPath) { + + QDir dir(appPath); // e.g. appdir/Contents/MacOS/appname + + + dir.cdUp(); + dir.cd("plugins"); // e.g. appdir/Contents/PlugIns + //std::string dirr = dir.dirName().toStdString(); + + QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); + int qt_argc = 2; static char *qt_argv[] = {(char *)"emu", (char *)"-qws"}; new QApplication(qt_argc, qt_argv); diff --git a/ui.h b/ui.h index 6ac7f52..97f242c 100755 --- a/ui.h +++ b/ui.h @@ -193,7 +193,7 @@ class UI : public QWidget { Q_OBJECT public: - static void initToolkit(); + static void initToolkit(char *appPath); UI(QWidget *parent = 0); ~UI(); From bac1bff2f68011d07b12acb1e98c6c5b9be936eb Mon Sep 17 00:00:00 2001 From: kshatlov Date: Fri, 11 Mar 2016 21:33:12 +0600 Subject: [PATCH 24/54] first attempt to use travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..12b4939 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,3 @@ +language: cpp +os: osx +script: build_osx_clang_x64.sh \ No newline at end of file From b40161d3b38de33ccd03c83143810e3892793832 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Fri, 11 Mar 2016 21:40:30 +0600 Subject: [PATCH 25/54] travis attempt #2 --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 12b4939..7ff2365 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,6 @@ language: cpp os: osx -script: build_osx_clang_x64.sh \ No newline at end of file +script: +- pwd +- ls +- /bin/bash ./build_osx_clang_x64.sh \ No newline at end of file From 3ae15210f6533b29b0e2ec62981d505d55aff522 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Fri, 11 Mar 2016 21:49:11 +0600 Subject: [PATCH 26/54] attempt3 --- .travis.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7ff2365..c36ecf0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,14 @@ language: cpp os: osx +install: +- brew update + && brew unlink cmake + && brew install cmake + && brew install qt5 + && chmod -R 755 /usr/local/opt/qt5/* + ; + script: -- pwd -- ls + +- ls /usr/local/opt/qt5/ - /bin/bash ./build_osx_clang_x64.sh \ No newline at end of file From ae54017e41ab54bc534174a640d9bb7887fd53e1 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Fri, 11 Mar 2016 21:59:23 +0600 Subject: [PATCH 27/54] attempt4 adjust qt5 to brew --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea6c4b0..f7e7a0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,8 @@ find_package (Qt5Widgets REQUIRED) endif() if(DIST_MACOSX) -set(CMAKE_PREFIX_PATH "/Volumes/developer/Qt/5.5/clang_64/") +#set(CMAKE_PREFIX_PATH "/Volumes/developer/Qt/5.5/clang_64/") +set(CMAKE_PREFIX_PATH "/usr/local/opt/qt5/") find_package (Qt5Widgets REQUIRED) endif() From d397608ec3a6b42b05e373d28274c71c6d6a7d57 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Sat, 12 Mar 2016 00:24:02 +0600 Subject: [PATCH 28/54] attemp 5 --- .travis.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c36ecf0..81eba14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,13 @@ install: ; script: - - ls /usr/local/opt/qt5/ -- /bin/bash ./build_osx_clang_x64.sh \ No newline at end of file +- /bin/bash ./build_osx_clang_x64.sh +deploy: + provider: releases + api_key: + secure: UdumWwUmheO5RpamBresix+js6GY+yutHYs51/nzXtXWsdsfs/e4owqTQdP6Lco33P7dcoUsMmap4nOg7WKFeSKaU/KUmF70bW4ODsvtp4qFpNVRTDMLO13tjS2qNZc7l/vsVbCn93Ws9+Ivrn3q5jutZZI3X4NbrH10Oa9vH5aJsqhrVuzaeUmrDio1PNjX/dzC9YbGNsuAz77rVSil0N5HEc9sbYURCmY4O0q04i5Wbad8p90y3IJUQ1sH3DK6CyzhgJJeLynK8yIiFn1LkiO/RvKpgA1zK9iqrNrwNMnITIccFCQIGXLRmeSn/c/DmVcG56H/iv7p2625XNuVqvW+oEVPd5W9iYChPI2NZsapMGyFDqaFts0UiJNpQp1dO93dvXtBb2LjW44PLAu/v2uvhvs8t4TWZy7O6+BYefMg2i4FEBbtulTNPTTWvjy+vooe8LojXLnbwsxC1qbBz4npkRCZUpiqxGrZypT8d0vGEEESX8d2EkQ7KOmq900sZ3hEKLdZCkSUcymESk6E2x+GvJuDe6NTHEORzB4oDlbpgpyRm1Evdn3TLsHqRa8XGDBJ6LxPo9emdMszrNzhTSw/61CXm7XcqOEYfRThAbEDSnsliSHKQSy1mybW6k6pwJ0Zet93y1iJc8jERGvs2Nk+kijYzuS2PmIKdDxfaEc= + file: test + on: + repo: shadowsgit/cascade + branch: open_public From 79f3589a2ff670dc6439bdb240e2d21a904dafaa Mon Sep 17 00:00:00 2001 From: kshatlov Date: Sat, 12 Mar 2016 00:32:19 +0600 Subject: [PATCH 29/54] update --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 81eba14..1f15224 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,8 +14,8 @@ script: deploy: provider: releases api_key: - secure: UdumWwUmheO5RpamBresix+js6GY+yutHYs51/nzXtXWsdsfs/e4owqTQdP6Lco33P7dcoUsMmap4nOg7WKFeSKaU/KUmF70bW4ODsvtp4qFpNVRTDMLO13tjS2qNZc7l/vsVbCn93Ws9+Ivrn3q5jutZZI3X4NbrH10Oa9vH5aJsqhrVuzaeUmrDio1PNjX/dzC9YbGNsuAz77rVSil0N5HEc9sbYURCmY4O0q04i5Wbad8p90y3IJUQ1sH3DK6CyzhgJJeLynK8yIiFn1LkiO/RvKpgA1zK9iqrNrwNMnITIccFCQIGXLRmeSn/c/DmVcG56H/iv7p2625XNuVqvW+oEVPd5W9iYChPI2NZsapMGyFDqaFts0UiJNpQp1dO93dvXtBb2LjW44PLAu/v2uvhvs8t4TWZy7O6+BYefMg2i4FEBbtulTNPTTWvjy+vooe8LojXLnbwsxC1qbBz4npkRCZUpiqxGrZypT8d0vGEEESX8d2EkQ7KOmq900sZ3hEKLdZCkSUcymESk6E2x+GvJuDe6NTHEORzB4oDlbpgpyRm1Evdn3TLsHqRa8XGDBJ6LxPo9emdMszrNzhTSw/61CXm7XcqOEYfRThAbEDSnsliSHKQSy1mybW6k6pwJ0Zet93y1iJc8jERGvs2Nk+kijYzuS2PmIKdDxfaEc= - file: test + secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs= + file: build/osx_clang64/Release/cascade on: repo: shadowsgit/cascade branch: open_public From 78a1d5e6adb688966a1271fdae6a0356a8e2ee69 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Sat, 12 Mar 2016 00:42:30 +0600 Subject: [PATCH 30/54] use brew without update skip_cleanup --- .travis.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1f15224..4d109d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,8 @@ language: cpp os: osx install: -- brew update - && brew unlink cmake - && brew install cmake - && brew install qt5 +- + brew install qt5 && chmod -R 755 /usr/local/opt/qt5/* ; @@ -16,6 +14,7 @@ deploy: api_key: secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs= file: build/osx_clang64/Release/cascade + skip_cleanup: true on: repo: shadowsgit/cascade branch: open_public From 0d951d0b9ace41214269ffd8b3fe2710a0178b62 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Sat, 12 Mar 2016 01:17:22 +0600 Subject: [PATCH 31/54] info --- .travis.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4d109d1..ea4bd8b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,13 +8,20 @@ install: script: - ls /usr/local/opt/qt5/ +- ls /usr/local/opt/qt5/bin +- ls /usr/local/opt/qt5/bin +- ls /usr/local/opt/qt5/plugins/platforms - /bin/bash ./build_osx_clang_x64.sh +- tar -czf cascade.tgz build/osx_clang64/Release/cascade deploy: provider: releases api_key: secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs= - file: build/osx_clang64/Release/cascade + file: +-build/osx_clang64/Release/cascade +-cascade.tgz skip_cleanup: true on: repo: shadowsgit/cascade branch: open_public + tags: true From 7fdea998e6cab425355647279962759d696deb17 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Sat, 12 Mar 2016 01:27:29 +0600 Subject: [PATCH 32/54] more attempts --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ea4bd8b..b848b23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ deploy: api_key: secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs= file: --build/osx_clang64/Release/cascade --cascade.tgz + - build/osx_clang64/Release/cascade + - cascade.tgz skip_cleanup: true on: repo: shadowsgit/cascade From c74af5aeec54dc9665db160c1c2919fd3ccc063f Mon Sep 17 00:00:00 2001 From: kshatlov Date: Mon, 14 Mar 2016 23:28:14 +0600 Subject: [PATCH 33/54] qt5 --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b848b23..96be45a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,10 +9,15 @@ install: script: - ls /usr/local/opt/qt5/ - ls /usr/local/opt/qt5/bin -- ls /usr/local/opt/qt5/bin +- ls /usr/local/opt/qt5/Frameworks - ls /usr/local/opt/qt5/plugins/platforms - /bin/bash ./build_osx_clang_x64.sh - tar -czf cascade.tgz build/osx_clang64/Release/cascade +- zip -yr cascade.zip build/osx_clang64/Release/cascade +- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtGui.framework +- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtWidgets.framework +- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtCore.framework +- zip -yr cascade.zip /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib deploy: provider: releases api_key: @@ -20,6 +25,7 @@ deploy: file: - build/osx_clang64/Release/cascade - cascade.tgz + - cascade.zip skip_cleanup: true on: repo: shadowsgit/cascade From 4b767a4de261b65ac3574fc0f9b6c4d1f96eafaa Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 00:04:17 +0600 Subject: [PATCH 34/54] qt5 #2 --- .travis.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 96be45a..651ad26 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,17 +7,16 @@ install: ; script: -- ls /usr/local/opt/qt5/ -- ls /usr/local/opt/qt5/bin -- ls /usr/local/opt/qt5/Frameworks -- ls /usr/local/opt/qt5/plugins/platforms +- ls -la /usr/local/opt/qt5/lib - /bin/bash ./build_osx_clang_x64.sh - tar -czf cascade.tgz build/osx_clang64/Release/cascade -- zip -yr cascade.zip build/osx_clang64/Release/cascade -- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtGui.framework -- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtWidgets.framework -- zip -yr cascade.zip /usr/local/opt/qt5/Frameworks/QtCore.framework -- zip -yr cascade.zip /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade +cd /usr/local/opt/qt5/lib/ +- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework +- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework +- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework +cd.. +- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib deploy: provider: releases api_key: From 21e801328ba0f7cf2d59959e6bf6244632ef8d9f Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 00:08:01 +0600 Subject: [PATCH 35/54] fux typo --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 651ad26..0a06221 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,11 +11,11 @@ script: - /bin/bash ./build_osx_clang_x64.sh - tar -czf cascade.tgz build/osx_clang64/Release/cascade - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade -cd /usr/local/opt/qt5/lib/ +- cd /usr/local/opt/qt5/lib/ - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework -cd.. +- cd .. - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib deploy: provider: releases From efe5e36c147dc81c891e9cb91030fb8d662245d4 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 00:30:41 +0600 Subject: [PATCH 36/54] try to back folder --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 0a06221..b0c9264 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ script: - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework - cd .. - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib +- cd $TRAVIS_BUILD_DIR deploy: provider: releases api_key: From 8a3c3b2ffb36ad70821b84eafaeb453979b513f2 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 00:57:44 +0600 Subject: [PATCH 37/54] $9 --- .travis.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b0c9264..e09361a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,11 @@ install: script: - ls -la /usr/local/opt/qt5/lib - /bin/bash ./build_osx_clang_x64.sh +- otool -L build/osx_clang64/Release/cascade +- otool -L /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets + - tar -czf cascade.tgz build/osx_clang64/Release/cascade -- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade +- zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework @@ -18,6 +21,8 @@ script: - cd .. - zip -yrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib - cd $TRAVIS_BUILD_DIR +- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets + deploy: provider: releases api_key: @@ -30,4 +35,3 @@ deploy: on: repo: shadowsgit/cascade branch: open_public - tags: true From b2a399f94c2edafa3f59fdad66768999b5cbd667 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 01:24:39 +0600 Subject: [PATCH 38/54] 11 --- .travis.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index e09361a..d89c68c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,29 +7,26 @@ install: ; script: -- ls -la /usr/local/opt/qt5/lib +- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets +- install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore +- install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui - /bin/bash ./build_osx_clang_x64.sh - otool -L build/osx_clang64/Release/cascade - otool -L /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets - -- tar -czf cascade.tgz build/osx_clang64/Release/cascade - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ -- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework -- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework -- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework - cd .. -- zip -yrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib - cd $TRAVIS_BUILD_DIR -- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets - deploy: provider: releases api_key: secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs= file: - build/osx_clang64/Release/cascade - - cascade.tgz - cascade.zip skip_cleanup: true on: From f453ae5884ab8244344a9462887f11a626d40167 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 12:01:07 +0600 Subject: [PATCH 39/54] patching --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d89c68c..f4330f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ script: - install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore - install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui - /bin/bash ./build_osx_clang_x64.sh +- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade - otool -L build/osx_clang64/Release/cascade - otool -L /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade From 9b334b6d7bf2a6adff45217b05d4e05387218da8 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 12:28:39 +0600 Subject: [PATCH 40/54] patching 2 --- .travis.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.travis.yml b/.travis.yml index f4330f2..e3454dd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,18 @@ script: - install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui - /bin/bash ./build_osx_clang_x64.sh - install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade + +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore QtGui.framework/Versions/Current/QtGui + +- install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib + +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib + - otool -L build/osx_clang64/Release/cascade - otool -L /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade @@ -19,6 +31,9 @@ script: - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtPrintSupport.framework +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtDBus.framework.framework + - cd .. - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib - cd $TRAVIS_BUILD_DIR From 3414558c66b97761040548a65253c2013018aeaa Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 12:33:05 +0600 Subject: [PATCH 41/54] remove dbus --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e3454dd..fb77c50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,6 @@ script: - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtPrintSupport.framework -- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtDBus.framework.framework - cd .. - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib From f7782058b1f9cab7d940aafc7f409ba498097b5b Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 12:37:42 +0600 Subject: [PATCH 42/54] adjust paths --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index fb77c50..813ac3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,9 @@ script: - /bin/bash ./build_osx_clang_x64.sh - install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui QtWidgets.framework/Versions/Current/QtWidgets -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore QtWidgets.framework/Versions/Current/QtWidgets -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore QtGui.framework/Versions/Current/QtGui +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui - install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib From 7614f93ea1698864b63061ef2b95ed4fa644a426 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 20:00:58 +0600 Subject: [PATCH 43/54] try to log --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 813ac3f..e8d8e7e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,8 @@ script: - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib - otool -L build/osx_clang64/Release/cascade -- otool -L /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets +- export DYLD_PRINT_LIBRARIES=1 +- build/osx_clang64/Release/cascade - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework From e79563aa6256ee8f85d35c191413e54274cde8f5 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 20:17:37 +0600 Subject: [PATCH 44/54] disable patching for logging --- .travis.yml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index e8d8e7e..92d5d62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,22 +7,8 @@ install: ; script: -- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets -- install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore -- install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui -- /bin/bash ./build_osx_clang_x64.sh -- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade - -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui -- install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib - -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- /bin/bash ./build_osx_clang_x64.sh - otool -L build/osx_clang64/Release/cascade - export DYLD_PRINT_LIBRARIES=1 From a862ab4c51f40789f9e125531ad4fb686d0026f0 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 21:04:46 +0600 Subject: [PATCH 45/54] try use latest qt5.5 --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 92d5d62..f0bb1bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,10 @@ language: cpp os: osx install: -- - brew install qt5 +- brew update + && brew unlink cmake + && brew install cmake + && brew install qt5 && chmod -R 755 /usr/local/opt/qt5/* ; From 5f011f2b97afbeee8922e47a544abc663bcede1e Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 21:53:59 +0600 Subject: [PATCH 46/54] remove setLibraryPaths --- ui.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui.cpp b/ui.cpp index 8a216cd..85d3851 100755 --- a/ui.cpp +++ b/ui.cpp @@ -673,7 +673,8 @@ void UI::initToolkit(char *appPath) dir.cd("plugins"); // e.g. appdir/Contents/PlugIns //std::string dirr = dir.dirName().toStdString(); - QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); + // QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); + ERROR("\n path %s path\n", dir.absolutePath().toStdString().c_str()); int qt_argc = 2; static char *qt_argv[] = {(char *)"emu", (char *)"-qws"}; From 09190fb78f543ec836d94c830b6a732b3f6c9d3c Mon Sep 17 00:00:00 2001 From: kshatlov Date: Tue, 15 Mar 2016 22:35:10 +0600 Subject: [PATCH 47/54] use qt5.3 --- .travis.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index f0bb1bd..202f6ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,12 @@ language: cpp os: osx install: -- brew update - && brew unlink cmake - && brew install cmake - && brew install qt5 +- + brew install qt5 && chmod -R 755 /usr/local/opt/qt5/* ; -script: +script: - /bin/bash ./build_osx_clang_x64.sh From a8ac55e78a637e217ae7aee1cfa09d8b8f2e2d21 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 00:00:00 +0600 Subject: [PATCH 48/54] Revert "disable patching for logging" This reverts commit e79563aa6256ee8f85d35c191413e54274cde8f5. --- .travis.yml | 18 ++++++++++++++++-- ui.cpp | 3 +-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 202f6ba..e8d8e7e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,23 @@ install: && chmod -R 755 /usr/local/opt/qt5/* ; -script: - +script: +- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets +- install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore +- install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui - /bin/bash ./build_osx_clang_x64.sh +- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade + +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui + +- install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib + +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib - otool -L build/osx_clang64/Release/cascade - export DYLD_PRINT_LIBRARIES=1 diff --git a/ui.cpp b/ui.cpp index 85d3851..8a216cd 100755 --- a/ui.cpp +++ b/ui.cpp @@ -673,8 +673,7 @@ void UI::initToolkit(char *appPath) dir.cd("plugins"); // e.g. appdir/Contents/PlugIns //std::string dirr = dir.dirName().toStdString(); - // QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); - ERROR("\n path %s path\n", dir.absolutePath().toStdString().c_str()); + QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); int qt_argc = 2; static char *qt_argv[] = {(char *)"emu", (char *)"-qws"}; From ef99feb565c2e499d7a649cbecfdd25b6aa27ecb Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 00:02:01 +0600 Subject: [PATCH 49/54] one more attempt --- .travis.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index e8d8e7e..c813905 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,8 +10,8 @@ script: - install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets - install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore - install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui -- /bin/bash ./build_osx_clang_x64.sh -- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade + + - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets @@ -24,9 +24,12 @@ script: - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib + +- /bin/bash ./build_osx_clang_x64.sh + +- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade + - otool -L build/osx_clang64/Release/cascade -- export DYLD_PRINT_LIBRARIES=1 -- build/osx_clang64/Release/cascade - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework From cbd7dedcd09e6ba55c6ebedf1100b58c3d1bbf14 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 01:44:01 +0600 Subject: [PATCH 50/54] export all plugins --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c813905..2b01090 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,7 +29,6 @@ script: - install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade -- otool -L build/osx_clang64/Release/cascade - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework @@ -38,7 +37,7 @@ script: - zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtPrintSupport.framework - cd .. -- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins/platforms/libqcocoa.dylib +- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins - cd $TRAVIS_BUILD_DIR deploy: provider: releases From e64807e626cd53b8eb6579528968c64675de5de4 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 03:10:52 +0600 Subject: [PATCH 51/54] log directory --- ui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui.cpp b/ui.cpp index 8a216cd..4cc6734 100755 --- a/ui.cpp +++ b/ui.cpp @@ -672,7 +672,7 @@ void UI::initToolkit(char *appPath) dir.cdUp(); dir.cd("plugins"); // e.g. appdir/Contents/PlugIns //std::string dirr = dir.dirName().toStdString(); - + ERROR("\n\n path %s path\n", dir.absolutePath().toStdString().c_str()); QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath())); int qt_argc = 2; From 038dc80e16c2eaac77127f9cb0124c23ede98d53 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 03:16:51 +0600 Subject: [PATCH 52/54] more rpath --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2b01090..ab30b44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,8 @@ script: - /bin/bash ./build_osx_clang_x64.sh - install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade +- install_name_tool -add_rpath @executable_path/ build/osx_clang64/Release/cascade +- install_name_tool -add_rpath . build/osx_clang64/Release/cascade - zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade - cd /usr/local/opt/qt5/lib/ From 21aeed0ced6b9953acef754aff97cfe9020f51be Mon Sep 17 00:00:00 2001 From: kshatlov Date: Wed, 16 Mar 2016 21:38:23 +0600 Subject: [PATCH 53/54] patch QtPrintSupport --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index ab30b44..44130c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,11 @@ script: - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport + + - install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib From 9c052c1362733ddd1c603b3aeeaa137fc15e5888 Mon Sep 17 00:00:00 2001 From: kshatlov Date: Thu, 17 Mar 2016 00:00:23 +0600 Subject: [PATCH 54/54] patch widgets improve plugin find logic --- .travis.yml | 2 +- ui.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 44130c6..f2587ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ script: - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport -- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport +- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport - install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport diff --git a/ui.cpp b/ui.cpp index 4cc6734..d0b1d70 100755 --- a/ui.cpp +++ b/ui.cpp @@ -670,7 +670,11 @@ void UI::initToolkit(char *appPath) dir.cdUp(); - dir.cd("plugins"); // e.g. appdir/Contents/PlugIns + if(!dir.cd("plugins")) + { + dir.cdUp(); + dir.cd("plugins"); + }; // e.g. appdir/Contents/PlugIns //std::string dirr = dir.dirName().toStdString(); ERROR("\n\n path %s path\n", dir.absolutePath().toStdString().c_str()); QCoreApplication::setLibraryPaths(QStringList(dir.absolutePath()));