1#------------------------------------------------- 2# 3# Project created by QtCreator 2018-04-11T12:57:49 4# 5#------------------------------------------------- 6 7QT += core gui multimedia svg 8 9greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 10 11TARGET = Mu 12TEMPLATE = app 13 14# The following define makes your compiler emit warnings if you use 15# any feature of Qt which has been marked as deprecated (the exact warnings 16# depend on your compiler). Please consult the documentation of the 17# deprecated API in order to know how to port your code away from it. 18DEFINES += QT_DEPRECATED_WARNINGS 19 20# You can also make your code fail to compile if you use deprecated APIs. 21# In order to do so, uncomment the following line. 22# You can also select to disable deprecated APIs only up to a certain version of Qt. 23DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 24 25# OS 5 support is mandatory for the QT port 26CONFIG += support_palm_os5 27 28windows{ 29 RC_ICONS = windows/Mu.ico 30 *msvc*{ 31 QMAKE_CFLAGS += -openmp 32 QMAKE_CXXFLAGS += -openmp 33 DEFINES += "_Pragma=__pragma" EMU_MULTITHREADED 34 } 35 *-g++{ 36 QMAKE_CFLAGS += -fopenmp 37 QMAKE_CXXFLAGS += -fopenmp 38 QMAKE_LFLAGS += -fopenmp 39 DEFINES += EMU_MULTITHREADED EMU_MANAGE_HOST_CPU_PIPELINE 40 } 41 CONFIG += cpu_x86_32 # TODO:this should be auto detected in the future 42} 43 44macx{ 45 # QMAKE_CFLAGS += -std=c89 -D__STDBOOL_H -Dinline= -Dbool=char -Dtrue=1 -Dfalse=0 # tests C89 mode 46 ICON = macos/Mu.icns 47 QMAKE_INFO_PLIST = macos/Info.plist 48 DEFINES += EMU_MULTITHREADED EMU_MANAGE_HOST_CPU_PIPELINE 49 CONFIG += cpu_x86_64 # Mac OS is only x86_64 50} 51 52linux-g++{ 53 QMAKE_CFLAGS += -fopenmp 54 QMAKE_CXXFLAGS += -fopenmp 55 QMAKE_LFLAGS += -fopenmp 56 DEFINES += EMU_MULTITHREADED EMU_MANAGE_HOST_CPU_PIPELINE 57 CONFIG += cpu_x86_64 # TODO:this should be auto detected in the future 58} 59 60android{ 61 QMAKE_CFLAGS += -fopenmp 62 QMAKE_CXXFLAGS += -fopenmp 63 QMAKE_LFLAGS += -fopenmp 64 DEFINES += EMU_MULTITHREADED EMU_MANAGE_HOST_CPU_PIPELINE 65 CONFIG += cpu_armv7 # TODO:this should be auto detected in the future 66} 67 68 69CONFIG(debug, debug|release){ 70 # debug build, be accurate, fail hard, and add logging 71 DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER 72 macx|linux-g++{ 73 # also check for any buffer overflows and memory leaks 74 # -fsanitize=undefined,leak 75 QMAKE_CFLAGS += -fstack-protector-strong -fsanitize=address -Werror=array-bounds 76 QMAKE_CXXFLAGS += -fstack-protector-strong -fsanitize=address -Werror=array-bounds 77 QMAKE_LFLAGS += -fsanitize=address 78 } 79}else{ 80 # release build, go fast 81 CONFIG += EMU_NO_SAFETY 82} 83 84EMU_NO_SAFETY{ 85 DEFINES += EMU_NO_SAFETY 86} 87 88support_palm_os5{ 89 DEFINES += EMU_SUPPORT_PALM_OS5 # the Qt build will not be supporting anything too slow to run OS 5 90 DEFINES += SUPPORT_LINUX # forces the dynarec to use accurate mode and disable Nspire OS hacks 91 92 EMU_NO_SAFETY{ 93 # Windows is only supported in 32 bit mode right now(this is a limitation of the dynarec) 94 # iOS needs IS_IOS_BUILD set, but the Qt port does not support iOS currently 95 96 cpu_x86_32{ 97 SOURCES += \ 98 ../../src/armv5te/translate_x86.c \ 99 ../../src/armv5te/asmcode_x86.S 100 } 101 else{ 102 # x86 has this implemented in asmcode_x86.S 103 SOURCES += \ 104 ../../src/armv5te/asmcode.c 105 } 106 107 cpu_x86_64{ 108 SOURCES += \ 109 ../../src/armv5te/translate_x86_64.c \ 110 ../../src/armv5te/asmcode_x86_64.S 111 } 112 113 cpu_armv7{ 114 SOURCES += \ 115 ../../src/armv5te/translate_arm.cpp \ 116 ../../src/armv5te/asmcode_arm.S 117 } 118 119 cpu_armv8{ 120 SOURCES += \ 121 ../../src/armv5te/translate_aarch64.cpp \ 122 ../../src/armv5te/asmcode_aarch64.S 123 } 124 } 125 else{ 126 # use platform independant C with no dynarec 127 SOURCES += \ 128 ../../src/armv5te/asmcode.c \ 129 ../../src/armv5te/uArm/CPU_2.c \ 130 ../../src/armv5te/uArm/icache.c \ 131 ../../src/armv5te/uArm/uArmGlue.cpp 132 DEFINES += NO_TRANSLATION 133 } 134 135 windows{ 136 SOURCES += \ 137 ../../src/armv5te/os/os-win32.c 138 } 139 140 macx|linux-g++|android{ 141 SOURCES += \ 142 ../../src/armv5te/os/os-linux.c 143 } 144 145 SOURCES += \ 146 ../../src/pxa260/pxa260_DMA.c \ 147 ../../src/pxa260/pxa260_DSP.c \ 148 ../../src/pxa260/pxa260_GPIO.c \ 149 ../../src/pxa260/pxa260_IC.c \ 150 ../../src/pxa260/pxa260_LCD.c \ 151 ../../src/pxa260/pxa260_PwrClk.c \ 152 ../../src/pxa260/pxa260_RTC.c \ 153 ../../src/pxa260/pxa260_TIMR.c \ 154 ../../src/pxa260/pxa260_UART.c \ 155 ../../src/pxa260/pxa260I2c.c \ 156 ../../src/pxa260/pxa260Memctrl.c \ 157 ../../src/pxa260/pxa260Timing.c \ 158 ../../src/pxa260/pxa260Ssp.c \ 159 ../../src/pxa260/pxa260Udc.c \ 160 ../../src/pxa260/pxa260.c \ 161 ../../src/armv5te/arm_interpreter.cpp \ 162 ../../src/armv5te/cpu.cpp \ 163 ../../src/armv5te/coproc.cpp \ 164 ../../src/armv5te/disasm.c \ 165 ../../src/armv5te/emuVarPool.c \ 166 ../../src/armv5te/thumb_interpreter.cpp \ 167 ../../src/armv5te/mem.c \ 168 ../../src/armv5te/mmu.c \ 169 ../../src/tps65010.c \ 170 ../../src/tsc2101.c \ 171 ../../src/w86l488.c 172 173 HEADERS += \ 174 ../../src/pxa260/pxa260_CPU.h \ 175 ../../src/pxa260/pxa260_DMA.h \ 176 ../../src/pxa260/pxa260_DSP.h \ 177 ../../src/pxa260/pxa260_GPIO.h \ 178 ../../src/pxa260/pxa260_IC.h \ 179 ../../src/pxa260/pxa260_LCD.h \ 180 ../../src/pxa260/pxa260_PwrClk.h \ 181 ../../src/pxa260/pxa260_RTC.h \ 182 ../../src/pxa260/pxa260_TIMR.h \ 183 ../../src/pxa260/pxa260_UART.h \ 184 ../../src/pxa260/pxa260I2c.h \ 185 ../../src/pxa260/pxa260Memctrl.h \ 186 ../../src/pxa260/pxa260Timing.h \ 187 ../../src/pxa260/pxa260Ssp.h \ 188 ../../src/pxa260/pxa260Udc.h \ 189 ../../src/pxa260/pxa260_types.h \ 190 ../../src/pxa260/pxa260_math64.h \ 191 ../../src/pxa260/pxa260Accessors.c.h \ 192 ../../src/pxa260/pxa260.h \ 193 ../../src/armv5te/os/os.h \ 194 ../../src/armv5te/uArm/CPU_2.h \ 195 ../../src/armv5te/uArm/icache.h \ 196 ../../src/armv5te/uArm/uArmGlue.h \ 197 ../../src/armv5te/asmcode.h \ 198 ../../src/armv5te/bitfield.h \ 199 ../../src/armv5te/cpu.h \ 200 ../../src/armv5te/disasm.h \ 201 ../../src/armv5te/emu.h \ 202 ../../src/armv5te/mem.h \ 203 ../../src/armv5te/translate.h \ 204 ../../src/armv5te/cpudefs.h \ 205 ../../src/armv5te/debug.h \ 206 ../../src/armv5te/mmu.h \ 207 ../../src/armv5te/armsnippets.h \ 208 ../../src/armv5te/literalpool.h \ 209 ../../src/tungstenT3Bus.h \ 210 ../../src/tps65010.h \ 211 ../../src/tsc2101.h \ 212 ../../src/w86l488.h 213} 214 215CONFIG += c++11 216 217INCLUDEPATH += $$PWD/qt-common/include 218 219SOURCES += \ 220 ../../src/ads7846.c \ 221 ../../src/audio/blip_buf.c \ 222 ../../src/dbvz.c \ 223 ../../src/emulator.c \ 224 ../../src/fileLauncher/launcher.c \ 225 ../../src/flx68000.c \ 226 ../../src/m5XXBus.c \ 227 ../../src/m68k/m68kcpu.c \ 228 ../../src/m68k/m68kdasm.c \ 229 ../../src/m68k/m68kopac.c \ 230 ../../src/m68k/m68kopdm.c \ 231 ../../src/m68k/m68kopnz.c \ 232 ../../src/m68k/m68kops.c \ 233 ../../src/pdiUsbD12.c \ 234 ../../src/sdCard.c \ 235 ../../src/sed1376.c \ 236 ../../src/silkscreen.c \ 237 debugviewer.cpp \ 238 emuwrapper.cpp \ 239 main.cpp \ 240 mainwindow.cpp \ 241 statemanager.cpp \ 242 touchscreen.cpp \ 243 settingsmanager.cpp 244 245HEADERS += \ 246 ../../src/ads7846.h \ 247 ../../src/audio/blip_buf.h \ 248 ../../src/dbvz.h \ 249 ../../src/dbvzRegisterAccessors.c.h \ 250 ../../src/dbvzRegisterNames.c.h \ 251 ../../src/dbvzTiming.c.h \ 252 ../../src/emulator.h \ 253 ../../src/fileLauncher/launcher.h \ 254 ../../src/flx68000.h \ 255 ../../src/m5XXBus.h \ 256 ../../src/m68k/m68k.h \ 257 ../../src/m68k/m68kconf.h \ 258 ../../src/m68k/m68kcpu.h \ 259 ../../src/m68k/m68kexternal.h \ 260 ../../src/m68k/m68kops.h \ 261 ../../src/pdiUsbD12.h \ 262 ../../src/pdiUsbD12CommandNames.c.h \ 263 ../../src/portability.h \ 264 ../../src/sdCard.h \ 265 ../../src/sdCardAccessors.c.h \ 266 ../../src/sdCardCommandNames.c.h \ 267 ../../src/sdCardCrcTables.c.h \ 268 ../../src/sed1376.h \ 269 ../../src/sed1376Accessors.c.h \ 270 ../../src/sed1376RegisterNames.c.h \ 271 ../../src/silkscreen.h \ 272 debugviewer.h \ 273 emuwrapper.h \ 274 mainwindow.h \ 275 statemanager.h \ 276 touchscreen.h \ 277 settingsmanager.h 278 279 280FORMS += \ 281 mainwindow.ui \ 282 debugviewer.ui \ 283 statemanager.ui \ 284 settingsmanager.ui 285 286CONFIG += mobility 287MOBILITY = 288 289DISTFILES += \ 290 ../../src/fileLauncher/readme.md \ 291 android/AndroidManifest.xml \ 292 android/gradle/wrapper/gradle-wrapper.jar \ 293 android/gradlew \ 294 android/res/values/libs.xml \ 295 android/build.gradle \ 296 android/gradle/wrapper/gradle-wrapper.properties \ 297 android/gradlew.bat \ 298 android/res/drawable-hdpi/icon.png \ 299 android/res/drawable-ldpi/icon.png \ 300 android/res/drawable-mdpi/icon.png \ 301 images/boot.svg \ 302 images/addressBook.svg \ 303 images/calendar.svg \ 304 images/center.svg \ 305 images/center.svg \ 306 images/debugger.svg \ 307 images/down.svg \ 308 images/install.svg \ 309 images/left.svg \ 310 images/left.svg \ 311 images/notes.svg \ 312 images/pause.svg \ 313 images/play.svg \ 314 images/power.svg \ 315 images/right.svg \ 316 images/right.svg \ 317 images/screenshot.svg \ 318 images/settingsManager.svg \ 319 images/stateManager.svg \ 320 images/stop.svg \ 321 images/todo.svg \ 322 images/up.svg 323 324RESOURCES += \ 325 mainwindow.qrc 326 327ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 328