mirror of https://github.com/PCSX2/pcsx2
1354 lines
33 KiB
CMake
1354 lines
33 KiB
CMake
include(macros/GlibCompileResourcesSupport)
|
|
|
|
|
|
if (openSUSE)
|
|
# openSUSE don't install wx in a standard library system
|
|
# path. Let's bypass the dynamic linker and hardcode the path.
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
|
|
endif()
|
|
|
|
# Check that people use the good file
|
|
if(NOT TOP_CMAKE_WAS_SOURCED)
|
|
message(FATAL_ERROR "
|
|
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
|
|
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
|
|
endif()
|
|
|
|
include_directories ("${CMAKE_SOURCE_DIR}/3rdparty/xbyak/")
|
|
|
|
set(CommonFlags
|
|
-fno-strict-aliasing
|
|
-Wstrict-aliasing # Allow to track strict aliasing issue.
|
|
-Wno-parentheses
|
|
-Wno-missing-braces
|
|
-Wno-unknown-pragmas
|
|
-DWX_PRECOMP
|
|
)
|
|
|
|
if(GCC_VERSION VERSION_EQUAL "8.0" OR GCC_VERSION VERSION_GREATER "8.0")
|
|
# gs is pretty bad at this
|
|
set(CommonFlags ${CommonFlags} -Wno-packed-not-aligned -Wno-class-memaccess)
|
|
endif()
|
|
|
|
if ("${PGO}" STREQUAL "generate")
|
|
set(pcsx2FinalFlags -fprofile-generate)
|
|
elseif("${PGO}" STREQUAL "use")
|
|
set(pcsx2FinalFlags -fprofile-use)
|
|
else()
|
|
set(pcsx2FinalFlags "")
|
|
endif()
|
|
|
|
set(pcsx2FinalFlags ${pcsx2FinalFlags} ${CommonFlags})
|
|
|
|
if(PORTAUDIO_FOUND)
|
|
set(pcsx2FinalFlags ${pcsx2FinalFlags} -DSPU2X_PORTAUDIO)
|
|
endif()
|
|
|
|
if(PULSEAUDIO_FOUND)
|
|
set(pcsx2FinalFlags ${pcsx2FinalFlags} -DSPU2X_PULSEAUDIO)
|
|
endif()
|
|
|
|
if(XDG_STD)
|
|
set(pcsx2FinalFlags ${pcsx2FinalFlags} -DXDG_STD)
|
|
endif()
|
|
|
|
if(SDL_FOUND OR SDL2_FOUND)
|
|
set(pcsx2FinalFlags ${pcsx2FinalFlags} -DSDL_BUILD)
|
|
endif()
|
|
|
|
|
|
set(Output PCSX2)
|
|
|
|
# Main pcsx2 source
|
|
set(pcsx2Sources
|
|
Cache.cpp
|
|
COP0.cpp
|
|
COP2.cpp
|
|
Counters.cpp
|
|
GameDatabase.cpp
|
|
Dump.cpp
|
|
Elfheader.cpp
|
|
FW.cpp
|
|
FiFo.cpp
|
|
FPU.cpp
|
|
Gif.cpp
|
|
Gif_Logger.cpp
|
|
Gif_Unit.cpp
|
|
GS.cpp
|
|
GSState.cpp
|
|
Hw.cpp
|
|
HwRead.cpp
|
|
HwWrite.cpp
|
|
Interpreter.cpp
|
|
IopBios.cpp
|
|
IopCounters.cpp
|
|
IopDma.cpp
|
|
IopGte.cpp
|
|
IopHw.cpp
|
|
IopIrq.cpp
|
|
IopMem.cpp
|
|
IopSio2.cpp
|
|
IPC.cpp
|
|
Mdec.cpp
|
|
Memory.cpp
|
|
MMI.cpp
|
|
MTGS.cpp
|
|
MTVU.cpp
|
|
MultipartFileReader.cpp
|
|
OutputIsoFile.cpp
|
|
Patch.cpp
|
|
Patch_Memory.cpp
|
|
Pcsx2Config.cpp
|
|
PrecompiledHeader.cpp
|
|
R3000A.cpp
|
|
R3000AInterpreter.cpp
|
|
R3000AOpcodeTables.cpp
|
|
R5900.cpp
|
|
R5900OpcodeImpl.cpp
|
|
R5900OpcodeTables.cpp
|
|
SaveState.cpp
|
|
ShiftJisToUnicode.cpp
|
|
Sif.cpp
|
|
Sif0.cpp
|
|
Sif1.cpp
|
|
sif2.cpp
|
|
Sio.cpp
|
|
SourceLog.cpp
|
|
SPR.cpp
|
|
System.cpp
|
|
Vif0_Dma.cpp
|
|
Vif1_Dma.cpp
|
|
Vif1_MFIFO.cpp
|
|
Vif.cpp
|
|
Vif_Codes.cpp
|
|
Vif_Transfer.cpp
|
|
Vif_Unpack.cpp
|
|
vtlb.cpp
|
|
VU0.cpp
|
|
VUmicro.cpp
|
|
VU0micro.cpp
|
|
VU0microInterp.cpp
|
|
VU1micro.cpp
|
|
VU1microInterp.cpp
|
|
VUflags.cpp
|
|
VUmicroMem.cpp
|
|
VUops.cpp)
|
|
|
|
# Main pcsx2 header
|
|
set(pcsx2Headers
|
|
AsyncFileReader.h
|
|
Cache.h
|
|
cheatscpp.h
|
|
Common.h
|
|
Config.h
|
|
COP0.h
|
|
Counters.h
|
|
Dmac.h
|
|
Dump.h
|
|
GameDatabase.h
|
|
Elfheader.h
|
|
FW.h
|
|
Gif.h
|
|
Gif_Unit.h
|
|
GS.h
|
|
Hardware.h
|
|
Hw.h
|
|
IopBios.h
|
|
IopCommon.h
|
|
IopCounters.h
|
|
IopDma.h
|
|
IopGte.h
|
|
IopHw.h
|
|
IopMem.h
|
|
IopSio2.h
|
|
IPC.h
|
|
Mdec.h
|
|
MTVU.h
|
|
Memory.h
|
|
MemoryTypes.h
|
|
Patch.h
|
|
PathDefs.h
|
|
PrecompiledHeader.h
|
|
R3000A.h
|
|
R5900Exceptions.h
|
|
R5900.h
|
|
R5900OpcodeTables.h
|
|
SaveState.h
|
|
Sifcmd.h
|
|
Sif.h
|
|
Sio.h
|
|
sio_internal.h
|
|
SPR.h
|
|
SysForwardDefs.h
|
|
System.h
|
|
Vif_Dma.h
|
|
Vif.h
|
|
Vif_Unpack.h
|
|
vtlb.h
|
|
VUflags.h
|
|
VUmicro.h
|
|
VUops.h)
|
|
|
|
# CDVD sources
|
|
set(pcsx2CDVDSources
|
|
CDVD/BlockdumpFileReader.cpp
|
|
CDVD/CdRom.cpp
|
|
CDVD/CDVDaccess.cpp
|
|
CDVD/CDVD.cpp
|
|
CDVD/CDVDdiscReader.cpp
|
|
CDVD/CDVDisoReader.cpp
|
|
CDVD/CDVDdiscThread.cpp
|
|
CDVD/InputIsoFile.cpp
|
|
CDVD/OutputIsoFile.cpp
|
|
CDVD/ChunksCache.cpp
|
|
CDVD/CompressedFileReader.cpp
|
|
CDVD/ChdFileReader.cpp
|
|
CDVD/CsoFileReader.cpp
|
|
CDVD/GzippedFileReader.cpp
|
|
CDVD/IsoFS/IsoFile.cpp
|
|
CDVD/IsoFS/IsoFSCDVD.cpp
|
|
CDVD/IsoFS/IsoFS.cpp
|
|
)
|
|
|
|
# CDVD headers
|
|
set(pcsx2CDVDHeaders
|
|
CDVD/CdRom.h
|
|
CDVD/CDVDaccess.h
|
|
CDVD/CDVD.h
|
|
CDVD/CDVD_internal.h
|
|
CDVD/CDVDdiscReader.h
|
|
CDVD/CDVDisoReader.h
|
|
CDVD/ChunksCache.h
|
|
CDVD/CompressedFileReader.h
|
|
CDVD/CompressedFileReaderUtils.h
|
|
CDVD/ChdFileReader.h
|
|
CDVD/CsoFileReader.h
|
|
CDVD/GzippedFileReader.h
|
|
CDVD/IsoFileFormats.h
|
|
CDVD/IsoFS/IsoDirectory.h
|
|
CDVD/IsoFS/IsoFileDescriptor.h
|
|
CDVD/IsoFS/IsoFile.h
|
|
CDVD/IsoFS/IsoFSCDVD.h
|
|
CDVD/IsoFS/IsoFS.h
|
|
CDVD/IsoFS/SectorSource.h
|
|
CDVD/zlib_indexed.h
|
|
)
|
|
|
|
# SPU2 sources
|
|
set(pcsx2SPU2Sources
|
|
SPU2/ADSR.cpp
|
|
SPU2/Debug.cpp
|
|
SPU2/DplIIdecoder.cpp
|
|
SPU2/Dma.cpp
|
|
SPU2/Lowpass.cpp
|
|
SPU2/Mixer.cpp
|
|
SPU2/spu2.cpp
|
|
SPU2/ReadInput.cpp
|
|
SPU2/RegLog.cpp
|
|
SPU2/RegTable.cpp
|
|
SPU2/Reverb.cpp
|
|
SPU2/SndOut.cpp
|
|
SPU2/SndOut_SDL.cpp
|
|
SPU2/spu2freeze.cpp
|
|
SPU2/spu2sys.cpp
|
|
SPU2/Timestretcher.cpp
|
|
SPU2/Wavedump_wav.cpp
|
|
SPU2/WavFile.cpp
|
|
SPU2/Linux/CfgHelpers.cpp
|
|
SPU2/Linux/Config.cpp
|
|
SPU2/Linux/ConfigDebug.cpp
|
|
SPU2/Linux/ConfigSoundTouch.cpp
|
|
SPU2/Linux/Dialogs.cpp
|
|
SPU2/wx/wxConfig.cpp
|
|
)
|
|
|
|
if(PORTAUDIO_FOUND)
|
|
set(pcsx2SPU2Sources ${pcsx2SPU2Sources} SPU2/SndOut_Portaudio.cpp)
|
|
endif()
|
|
|
|
# SPU2 headers
|
|
set(pcsx2SPU2Headers
|
|
SPU2/Config.h
|
|
SPU2/Debug.h
|
|
SPU2/defs.h
|
|
SPU2/Dma.h
|
|
SPU2/Global.h
|
|
SPU2/interpolate_table.h
|
|
SPU2/Lowpass.h
|
|
SPU2/Mixer.h
|
|
SPU2/spu2.h
|
|
SPU2/regs.h
|
|
SPU2/SndOut.h
|
|
SPU2/spdif.h
|
|
SPU2/WavFile.h
|
|
SPU2/Linux/Config.h
|
|
SPU2/Linux/Dialogs.h
|
|
SPU2/wx/wxConfig.h
|
|
)
|
|
|
|
# DEV9 UI sources
|
|
compile_gresources( pcsx2DEV9UISources
|
|
pcsx2DEV9UIXML
|
|
TYPE EMBED_C
|
|
RESOURCES "DEV9/Linux/dev9.ui"
|
|
PREFIX "/net/pcsx2/dev9"
|
|
COMPRESS_ALL
|
|
STRIPBLANKS_ALL
|
|
)
|
|
|
|
# DEV9 UI headers
|
|
compile_gresources( pcsx2DEV9UIHeaders
|
|
pcsx2DEV9UIXML
|
|
TYPE EMBED_H
|
|
RESOURCES "DEV9/Linux/dev9.ui"
|
|
PREFIX "/net/pcsx2/dev9"
|
|
COMPRESS_ALL
|
|
STRIPBLANKS_ALL
|
|
)
|
|
|
|
# DEV9 sources
|
|
set(pcsx2DEV9Sources
|
|
DEV9/ATA/Commands/ATA_Command.cpp
|
|
DEV9/ATA/Commands/ATA_CmdDMA.cpp
|
|
DEV9/ATA/Commands/ATA_CmdExecuteDeviceDiag.cpp
|
|
DEV9/ATA/Commands/ATA_CmdNoData.cpp
|
|
DEV9/ATA/Commands/ATA_CmdPIOData.cpp
|
|
DEV9/ATA/Commands/ATA_CmdSMART.cpp
|
|
DEV9/ATA/Commands/ATA_SCE.cpp
|
|
DEV9/ATA/ATA_Info.cpp
|
|
DEV9/ATA/ATA_State.cpp
|
|
DEV9/ATA/ATA_Transfer.cpp
|
|
DEV9/ATA/HddCreate.cpp
|
|
DEV9/InternalServers/DHCP_Server.cpp
|
|
DEV9/PacketReader/IP/UDP/DHCP/DHCP_Options.cpp
|
|
DEV9/PacketReader/IP/UDP/DHCP/DHCP_Packet.cpp
|
|
DEV9/PacketReader/IP/UDP/DNS/DNS_Classes.cpp
|
|
DEV9/PacketReader/IP/UDP/DNS/DNS_Packet.cpp
|
|
DEV9/PacketReader/IP/UDP/UDP_Packet.cpp
|
|
DEV9/PacketReader/IP/IP_Options.cpp
|
|
DEV9/PacketReader/IP/IP_Packet.cpp
|
|
DEV9/PacketReader/EthernetFrame.cpp
|
|
DEV9/PacketReader/NetLib.cpp
|
|
DEV9/smap.cpp
|
|
DEV9/DEV9.cpp
|
|
DEV9/flash.cpp
|
|
DEV9/pcap_io.cpp
|
|
DEV9/Linux/Config.cpp
|
|
DEV9/Linux/Linux.cpp
|
|
DEV9/net.cpp
|
|
${pcsx2DEV9UISources}
|
|
)
|
|
|
|
# DEV9 headers
|
|
set(pcsx2DEV9Headers
|
|
DEV9/ATA/ATA.h
|
|
DEV9/ATA/HddCreate.h
|
|
DEV9/DEV9.h
|
|
DEV9/InternalServers/DHCP_Server.cpp
|
|
DEV9/net.h
|
|
DEV9/PacketReader/IP/UDP/DHCP/DHCP_Options.h
|
|
DEV9/PacketReader/IP/UDP/DHCP/DHCP_Packet.h
|
|
DEV9/PacketReader/IP/UDP/DNS/DNS_Classes.h
|
|
DEV9/PacketReader/IP/UDP/DNS/DNS_Enums.h
|
|
DEV9/PacketReader/IP/UDP/DNS/DNS_Packet.h
|
|
DEV9/PacketReader/IP/UDP/UDP_Packet.h
|
|
DEV9/PacketReader/IP/IP_Address.h
|
|
DEV9/PacketReader/IP/IP_Options.h
|
|
DEV9/PacketReader/IP/IP_Packet.h
|
|
DEV9/PacketReader/IP/IP_Payload.h
|
|
DEV9/PacketReader/EthernetFrame.h
|
|
DEV9/PacketReader/NetLib.h
|
|
DEV9/PacketReader/Payload.h
|
|
DEV9/pcap_io.h
|
|
DEV9/SimpleQueue.h
|
|
DEV9/smap.h
|
|
${pcsx2DEV9UIHeaders}
|
|
)
|
|
|
|
# USBNull
|
|
set(pcsx2USBNullSources USB/USBNull.cpp)
|
|
set(pcsx2USBNullHeaders USB/USB.h)
|
|
|
|
# USB sources
|
|
set(pcsx2USBSources
|
|
USB/USB.cpp
|
|
USB/deviceproxy.cpp
|
|
USB/configuration.cpp
|
|
USB/device_init.cpp
|
|
USB/qemu-usb/glib.cpp
|
|
USB/qemu-usb/vl.cpp
|
|
USB/qemu-usb/iov.cpp
|
|
USB/qemu-usb/desc.cpp
|
|
USB/qemu-usb/core.cpp
|
|
USB/qemu-usb/bus.cpp
|
|
USB/qemu-usb/usb-ohci.cpp
|
|
USB/qemu-usb/hid.cpp
|
|
USB/qemu-usb/input-keymap-qcode-to-qnum.cpp
|
|
USB/usb-msd/usb-msd.cpp
|
|
USB/usb-pad/usb-pad.cpp
|
|
USB/usb-pad/usb-pad-ff.cpp
|
|
USB/usb-pad/lg/lg_ff.cpp
|
|
USB/usb-pad/usb-seamic.cpp
|
|
USB/usb-mic/usb-mic-singstar.cpp
|
|
USB/usb-mic/usb-mic-logitech.cpp
|
|
USB/usb-mic/usb-headset.cpp
|
|
../3rdparty/jpgd/jpgd.cpp
|
|
../3rdparty/jpgd/jpge.cpp
|
|
USB/usb-eyetoy/jo_mpeg.cpp
|
|
USB/usb-eyetoy/usb-eyetoy-webcam.cpp
|
|
USB/usb-hid/usb-hid.cpp
|
|
USB/shared/shared_usb.cpp
|
|
USB/shared/inifile_usb.cpp
|
|
USB/shared/ringbuffer.cpp
|
|
USB/icon_buzz_24.cpp
|
|
USB/usb-msd/usb-msd-gtk.cpp
|
|
USB/usb-pad/evdev/shared-gtk.cpp
|
|
USB/usb-pad/evdev/evdev-ff.cpp
|
|
USB/usb-pad/evdev/evdev.cpp
|
|
USB/usb-pad/evdev/evdev-gtk.cpp
|
|
USB/usb-hid/evdev/evdev-gtk.cpp
|
|
USB/usb-eyetoy/cam-linux.cpp
|
|
USB/linux/config.cpp
|
|
USB/linux/config-gtk.cpp
|
|
USB/linux/util.cpp
|
|
USB/qemu-usb/input-keymap-linux-to-qcode.cpp
|
|
USB/usb-pad/api_init_linux.cpp
|
|
USB/usb-eyetoy/api_init_linux.cpp
|
|
USB/usb-hid/api_init_linux.cpp
|
|
USB/usb-mic/api_init_linux.cpp
|
|
)
|
|
|
|
# USB headers
|
|
set(pcsx2USBHeaders
|
|
USB/USB.h
|
|
USB/proxybase.h
|
|
USB/deviceproxy.h
|
|
USB/configuration.h
|
|
USB/platcompat.h
|
|
USB/helpers.h
|
|
USB/readerwriterqueue/readerwriterqueue.h
|
|
USB/readerwriterqueue/atomicops.h
|
|
USB/qemu-usb/glib.h
|
|
USB/qemu-usb/vl.h
|
|
USB/qemu-usb/qusb.h
|
|
USB/qemu-usb/USBinternal.h
|
|
USB/qemu-usb/desc.h
|
|
USB/qemu-usb/iov.h
|
|
USB/qemu-usb/queue.h
|
|
USB/qemu-usb/hid.h
|
|
USB/qemu-usb/input-keymap.h
|
|
USB/usb-msd/usb-msd.h
|
|
USB/usb-pad/usb-pad.h
|
|
USB/usb-pad/padproxy.h
|
|
USB/usb-pad/lg/lg_ff.h
|
|
USB/usb-mic/audio.h
|
|
USB/usb-mic/audiodev.h
|
|
USB/usb-mic/audiodeviceproxy.h
|
|
USB/usb-mic/usb-mic-singstar.h
|
|
USB/usb-mic/usb-headset.h
|
|
USB/usb-mic/audiodev-noop.h
|
|
../3rdparty/jpgd/jpgd.h
|
|
../3rdparty/jpgd/jpge.h
|
|
USB/usb-eyetoy/jo_mpeg.h
|
|
USB/usb-eyetoy/videodeviceproxy.h
|
|
USB/usb-eyetoy/videodev.h
|
|
USB/usb-eyetoy/usb-eyetoy-webcam.h
|
|
USB/usb-eyetoy/ov519.h
|
|
USB/usb-hid/hidproxy.h
|
|
USB/usb-hid/usb-hid.h
|
|
USB/usb-hid/noop.h
|
|
USB/shared/shared_usb.h
|
|
USB/shared/inifile_usb.h
|
|
USB/shared/ringbuffer.h
|
|
USB/linux/ini.h
|
|
USB/linux/actualfile.h
|
|
USB/linux/config.h
|
|
USB/linux/util.h
|
|
USB/gtk.h
|
|
USB/icon_buzz_24.h
|
|
USB/usb-pad/evdev/shared.h
|
|
USB/usb-pad/evdev/evdev.h
|
|
USB/usb-pad/evdev/evdev-ff.h
|
|
USB/usb-hid/evdev/evdev.h
|
|
USB/usb-hid/evdev/evdev.cpp
|
|
USB/usb-eyetoy/cam-linux.h
|
|
USB/qemu-usb/input-keymap-linux-to-qcode.h
|
|
)
|
|
include_directories ("../3rdparty/jpgd/")
|
|
|
|
if(PULSEAUDIO_FOUND)
|
|
set(pcsx2USBSources ${pcsx2USBSources} USB/usb-mic/audiodev-pulse.cpp)
|
|
set(pcsx2USBHeaders ${pcsx2USBHeaders} USB/usb-mic/audiodev-pulse.h)
|
|
endif()
|
|
|
|
|
|
|
|
# PAD resources pre-compilation
|
|
set(PADImgHeader "${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/ImgHeader")
|
|
set(PADImg "${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/Img")
|
|
include_directories ("${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/")
|
|
|
|
file(MAKE_DIRECTORY ${PADImgHeader})
|
|
|
|
foreach(result_file IN ITEMS
|
|
analog circle cross dp_bottom dp_left dp_right dp_up dualshock2
|
|
joystick_cursor l1 r1 l2 r2 l3 r3 select square start triangle arrow_up
|
|
arrow_bottom arrow_left arrow_right)
|
|
add_custom_command(
|
|
OUTPUT "${PADImgHeader}/${result_file}.h"
|
|
COMMAND perl ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl "${PADImg}/${result_file}.png" "${PADImgHeader}/${result_file}" )
|
|
endforeach()
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.h
|
|
COMMAND glib-compile-resources --sourcedir "${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res" --generate-header
|
|
--c-name PAD_res "${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/PAD-res.xml" --target=${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.h
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/PAD-res.xml ${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/game_controller_db.txt)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.cpp
|
|
COMMAND glib-compile-resources --sourcedir "${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res" --generate-source
|
|
--c-name PAD_res "${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/PAD-res.xml" --target=${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.cpp
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/PAD-res.xml ${CMAKE_SOURCE_DIR}/pcsx2/PAD/Linux/res/game_controller_db.txt)
|
|
|
|
|
|
# PAD/Linux sources
|
|
set(pcsx2PADSources
|
|
PAD/Linux/Device.cpp
|
|
PAD/Linux/InputManager.cpp
|
|
PAD/Linux/SDL/joystick.cpp
|
|
PAD/Linux/keyboard.cpp
|
|
PAD/Linux/KeyStatus.cpp
|
|
PAD/Linux/PAD.cpp
|
|
PAD/Linux/state_management.cpp
|
|
PAD/Linux/wx_dialog/dialog.cpp
|
|
PAD/Linux/wx_dialog/opPanel.cpp
|
|
PAD/Linux/wx_dialog/GamepadConfiguration.cpp
|
|
PAD/Linux/wx_dialog/JoystickConfiguration.cpp
|
|
PAD/Linux/Config.cpp
|
|
PAD/Linux/linux.cpp
|
|
${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.cpp
|
|
)
|
|
|
|
# PAD/Linux headers
|
|
set(pcsx2PADHeaders
|
|
PAD/Linux/bitwise.h
|
|
PAD/Linux/Config.h
|
|
PAD/Linux/Device.h
|
|
PAD/Linux/Global.h
|
|
PAD/Linux/InputManager.h
|
|
PAD/Linux/SDL/joystick.h
|
|
PAD/Linux/keyboard.h
|
|
PAD/Linux/KeyStatus.h
|
|
PAD/Linux/PAD.h
|
|
PAD/Linux/state_management.h
|
|
PAD/Linux/wx_dialog/opPanel.h
|
|
PAD/Linux/wx_dialog/GamepadConfiguration.h
|
|
PAD/Linux/wx_dialog/JoystickConfiguration.h
|
|
${CMAKE_BINARY_DIR}/pcsx2/PAD/Linux/resources_pad.h
|
|
# images
|
|
${PADImgHeader}/analog.h
|
|
${PADImgHeader}/circle.h
|
|
${PADImgHeader}/cross.h
|
|
${PADImgHeader}/dp_bottom.h
|
|
${PADImgHeader}/dp_left.h
|
|
${PADImgHeader}/dp_right.h
|
|
${PADImgHeader}/dp_up.h
|
|
${PADImgHeader}/dualshock2.h
|
|
${PADImgHeader}/joystick_cursor.h
|
|
${PADImgHeader}/l1.h
|
|
${PADImgHeader}/r1.h
|
|
${PADImgHeader}/l2.h
|
|
${PADImgHeader}/r2.h
|
|
${PADImgHeader}/l3.h
|
|
${PADImgHeader}/r3.h
|
|
${PADImgHeader}/select.h
|
|
${PADImgHeader}/square.h
|
|
${PADImgHeader}/start.h
|
|
${PADImgHeader}/triangle.h
|
|
${PADImgHeader}/arrow_up.h
|
|
${PADImgHeader}/arrow_bottom.h
|
|
${PADImgHeader}/arrow_left.h
|
|
${PADImgHeader}/arrow_right.h
|
|
)
|
|
|
|
# GS sources
|
|
set(pcsx2GSSources
|
|
GS/GS.cpp
|
|
GS/GSAlignedClass.cpp
|
|
GS/GSBlock.cpp
|
|
GS/GSCapture.cpp
|
|
GS/GSClut.cpp
|
|
GS/GSCodeBuffer.cpp
|
|
GS/GSCrc.cpp
|
|
GS/GSDrawingContext.cpp
|
|
GS/GSDump.cpp
|
|
GS/GSLocalMemory.cpp
|
|
GS/GSLzma.cpp
|
|
GS/GSPerfMon.cpp
|
|
GS/GSPng.cpp
|
|
GS/GSState.cpp
|
|
GS/GSTables.cpp
|
|
GS/GSUtil.cpp
|
|
GS/GSVector.cpp
|
|
GS/GS_res.cpp
|
|
GS/Renderers/Common/GSDevice.cpp
|
|
GS/Renderers/Common/GSDirtyRect.cpp
|
|
GS/Renderers/Common/GSFunctionMap.cpp
|
|
GS/Renderers/Common/GSOsdManager.cpp
|
|
GS/Renderers/Common/GSRenderer.cpp
|
|
GS/Renderers/Common/GSTexture.cpp
|
|
GS/Renderers/Common/GSVertexTrace.cpp
|
|
GS/Renderers/Null/GSDeviceNull.cpp
|
|
GS/Renderers/Null/GSRendererNull.cpp
|
|
GS/Renderers/Null/GSTextureNull.cpp
|
|
GS/Renderers/HW/GSHwHack.cpp
|
|
GS/Renderers/HW/GSRendererHW.cpp
|
|
GS/Renderers/HW/GSTextureCache.cpp
|
|
GS/Renderers/SW/GSDrawScanline.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x64.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x64.avx.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x64.avx2.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x86.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x86.avx.cpp
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.x86.avx2.cpp
|
|
GS/Renderers/SW/GSRasterizer.cpp
|
|
GS/Renderers/SW/GSRendererSW.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x64.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x64.avx.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x64.avx2.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x86.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x86.avx.cpp
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.x86.avx2.cpp
|
|
GS/Renderers/SW/GSTextureCacheSW.cpp
|
|
GS/Renderers/SW/GSTextureSW.cpp
|
|
GS/Renderers/OpenGL/GLLoader.cpp
|
|
GS/Renderers/OpenGL/GLState.cpp
|
|
GS/Renderers/OpenGL/GSDeviceOGL.cpp
|
|
GS/Renderers/OpenGL/GSRendererOGL.cpp
|
|
GS/Renderers/OpenGL/GSShaderOGL.cpp
|
|
GS/Renderers/OpenGL/GSTextureCacheOGL.cpp
|
|
GS/Renderers/OpenGL/GSTextureOGL.cpp
|
|
GS/Window/GSSetting.cpp
|
|
GS/Window/GSWnd.cpp
|
|
GS/Window/GSLinuxDialog.cpp
|
|
GS/Window/GSWndEGL.cpp
|
|
)
|
|
|
|
# GS headers
|
|
set(pcsx2GSHeaders
|
|
GS/config.h
|
|
GS/GSAlignedClass.h
|
|
GS/GSBlock.h
|
|
GS/GSCapture.h
|
|
GS/GSClut.h
|
|
GS/GSCodeBuffer.h
|
|
GS/GSCrc.h
|
|
GS/GSDrawingContext.h
|
|
GS/GSDrawingEnvironment.h
|
|
GS/GSDump.h
|
|
GS/GS_res.h
|
|
GS/GS_types.h
|
|
GS/GS_codegen.h
|
|
GS/GS.h
|
|
GS/GSLocalMemory.h
|
|
GS/GSLzma.h
|
|
GS/GSPerfMon.h
|
|
GS/GSPng.h
|
|
GS/GSState.h
|
|
GS/GSTables.h
|
|
GS/GSThread_CXX11.h
|
|
GS/GSThread.h
|
|
GS/GSUtil.h
|
|
GS/GSVector.h
|
|
GS/GSVector4.h
|
|
GS/GSVector4i.h
|
|
GS/GSVector8.h
|
|
GS/GSVector8i.h
|
|
GS/Renderers/Common/GSDevice.h
|
|
GS/Renderers/Common/GSDirtyRect.h
|
|
GS/Renderers/Common/GSFastList.h
|
|
GS/Renderers/Common/GSFunctionMap.h
|
|
GS/Renderers/Common/GSOsdManager.h
|
|
GS/Renderers/Common/GSRenderer.h
|
|
GS/Renderers/Common/GSTexture.h
|
|
GS/Renderers/Common/GSVertex.h
|
|
GS/Renderers/Common/GSVertexList.h
|
|
GS/Renderers/Common/GSVertexTrace.h
|
|
GS/Renderers/Null/GSDeviceNull.h
|
|
GS/Renderers/Null/GSRendererNull.h
|
|
GS/Renderers/Null/GSTextureNull.h
|
|
GS/Renderers/HW/GSRendererHW.h
|
|
GS/Renderers/HW/GSTextureCache.h
|
|
GS/Renderers/HW/GSVertexHW.h
|
|
GS/Renderers/SW/GSDrawScanlineCodeGenerator.h
|
|
GS/Renderers/SW/GSDrawScanline.h
|
|
GS/Renderers/SW/GSRasterizer.h
|
|
GS/Renderers/SW/GSRendererSW.h
|
|
GS/Renderers/SW/GSScanlineEnvironment.h
|
|
GS/Renderers/SW/GSSetupPrimCodeGenerator.h
|
|
GS/Renderers/SW/GSTextureCacheSW.h
|
|
GS/Renderers/SW/GSTextureSW.h
|
|
GS/Renderers/SW/GSVertexSW.h
|
|
GS/Renderers/OpenGL/GLLoader.h
|
|
GS/Renderers/OpenGL/GLState.h
|
|
GS/Renderers/OpenGL/GSDeviceOGL.h
|
|
GS/Renderers/OpenGL/GSRendererOGL.h
|
|
GS/Renderers/OpenGL/GSShaderOGL.h
|
|
GS/Renderers/OpenGL/GSTextureCacheOGL.h
|
|
GS/Renderers/OpenGL/GSTextureOGL.h
|
|
GS/Renderers/OpenGL/GSUniformBufferOGL.h
|
|
GS/Renderers/OpenGL/GSVertexArrayOGL.h
|
|
GS/Window/GSCaptureDlg.h
|
|
GS/Window/GSDialog.h
|
|
GS/Window/GSSetting.h
|
|
GS/Window/GSSettingsDlg.h
|
|
GS/Window/GSWnd.h
|
|
GS/Window/GSWndEGL.h
|
|
)
|
|
|
|
# GS resources
|
|
set(pcsx2GSResources
|
|
GS/res/fxaa.fx
|
|
GS/res/glsl/common_header.glsl
|
|
GS/res/glsl/convert.glsl
|
|
GS/res/glsl/interlace.glsl
|
|
GS/res/glsl/merge.glsl
|
|
GS/res/glsl/shadeboost.glsl
|
|
GS/res/glsl/tfx_fs.glsl
|
|
GS/res/glsl/tfx_vgs.glsl)
|
|
|
|
set(GSBin "${CMAKE_BINARY_DIR}/pcsx2/GS")
|
|
include_directories ("${GSBin}")
|
|
file(MAKE_DIRECTORY ${GSBin})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/pcsx2/GS/GS_res.h
|
|
COMMAND glib-compile-resources --sourcedir "${CMAKE_SOURCE_DIR}/pcsx2/GS/res" --generate-header
|
|
--c-name GS_res "${CMAKE_SOURCE_DIR}/pcsx2/GS/res/GS-res.xml" --target=${CMAKE_BINARY_DIR}/pcsx2/GS/GS_res.h
|
|
DEPENDS ${pcsx2GSResources})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_BINARY_DIR}/pcsx2/GS/GS_res.cpp
|
|
COMMAND glib-compile-resources --sourcedir "${CMAKE_SOURCE_DIR}/pcsx2/GS/res" --generate-source
|
|
--c-name GS_res "${CMAKE_SOURCE_DIR}/pcsx2/GS/res/GS-res.xml" --target=${CMAKE_BINARY_DIR}/pcsx2/GS/GS_res.cpp
|
|
DEPENDS ${pcsx2GSResources})
|
|
|
|
|
|
# DebugTools sources
|
|
set(pcsx2DebugToolsSources
|
|
DebugTools/DebugInterface.cpp
|
|
DebugTools/DisassemblyManager.cpp
|
|
DebugTools/ExpressionParser.cpp
|
|
DebugTools/MIPSAnalyst.cpp
|
|
DebugTools/MipsAssembler.cpp
|
|
DebugTools/MipsAssemblerTables.cpp
|
|
DebugTools/MipsStackWalk.cpp
|
|
DebugTools/Breakpoints.cpp
|
|
DebugTools/SymbolMap.cpp
|
|
DebugTools/DisR3000A.cpp
|
|
DebugTools/DisR5900asm.cpp
|
|
DebugTools/DisVU0Micro.cpp
|
|
DebugTools/DisVU1Micro.cpp
|
|
DebugTools/BiosDebugData.cpp)
|
|
|
|
# DebugTools headers
|
|
set(pcsx2DebugToolsHeaders
|
|
DebugTools/DebugInterface.h
|
|
DebugTools/DisassemblyManager.h
|
|
DebugTools/ExpressionParser.h
|
|
DebugTools/MIPSAnalyst.h
|
|
DebugTools/MipsAssembler.h
|
|
DebugTools/MipsAssemblerTables.h
|
|
DebugTools/MipsStackWalk.h
|
|
DebugTools/Breakpoints.h
|
|
DebugTools/SymbolMap.h
|
|
DebugTools/Debug.h
|
|
DebugTools/DisASM.h
|
|
DebugTools/DisVUmicro.h
|
|
DebugTools/DisVUops.h
|
|
DebugTools/BiosDebugData.h)
|
|
|
|
# gui sources
|
|
set(pcsx2GuiSources
|
|
gui/AppAssert.cpp
|
|
gui/AppConfig.cpp
|
|
gui/AppCoreThread.cpp
|
|
gui/AppEventSources.cpp
|
|
gui/AppGameDatabase.cpp
|
|
gui/AppUserMode.cpp
|
|
gui/AppInit.cpp
|
|
gui/AppMain.cpp
|
|
gui/AppRes.cpp
|
|
gui/ConsoleLogger.cpp
|
|
gui/CpuUsageProvider.cpp
|
|
gui/Dialogs/AboutBoxDialog.cpp
|
|
gui/Dialogs/GSDumpDialog.cpp
|
|
gui/Dialogs/AssertionDialog.cpp
|
|
gui/Dialogs/BaseConfigurationDialog.cpp
|
|
gui/Dialogs/ConfirmationDialogs.cpp
|
|
gui/Dialogs/ConvertMemoryCardDialog.cpp
|
|
gui/Dialogs/CreateMemoryCardDialog.cpp
|
|
gui/Dialogs/FirstTimeWizard.cpp
|
|
gui/Dialogs/ImportSettingsDialog.cpp
|
|
gui/Dialogs/LogOptionsDialog.cpp
|
|
gui/Dialogs/McdConfigDialog.cpp
|
|
gui/Dialogs/PickUserModeDialog.cpp
|
|
gui/Dialogs/SysConfigDialog.cpp
|
|
gui/Dialogs/IPCDialog.cpp
|
|
gui/Debugger/BreakpointWindow.cpp
|
|
gui/Debugger/CtrlDisassemblyView.cpp
|
|
gui/Debugger/CtrlRegisterList.cpp
|
|
gui/Debugger/CtrlMemView.cpp
|
|
gui/Debugger/DebuggerLists.cpp
|
|
gui/Debugger/DisassemblyDialog.cpp
|
|
gui/Debugger/DebugEvents.cpp
|
|
gui/DriveList.cpp
|
|
gui/ExecutorThread.cpp
|
|
gui/FrameForGS.cpp
|
|
gui/GlobalCommands.cpp
|
|
gui/i18n.cpp
|
|
gui/IsoDropTarget.cpp
|
|
gui/MainFrame.cpp
|
|
gui/MainMenuClicks.cpp
|
|
gui/MemoryCardFile.cpp
|
|
gui/MemoryCardFolder.cpp
|
|
gui/MessageBoxes.cpp
|
|
gui/MSWstuff.cpp
|
|
gui/Panels/BaseApplicableConfigPanel.cpp
|
|
gui/Panels/BiosSelectorPanel.cpp
|
|
gui/Panels/CpuPanel.cpp
|
|
gui/Panels/DirPickerPanel.cpp
|
|
gui/Panels/GameFixesPanel.cpp
|
|
gui/Panels/GSWindowPanel.cpp
|
|
gui/Panels/LogOptionsPanels.cpp
|
|
gui/Panels/MemoryCardListPanel.cpp
|
|
gui/Panels/MemoryCardListView.cpp
|
|
gui/Panels/MiscPanelStuff.cpp
|
|
gui/Panels/PathsPanel.cpp
|
|
gui/Panels/SpeedhacksPanel.cpp
|
|
gui/Panels/VideoPanel.cpp
|
|
gui/RecentIsoList.cpp
|
|
gui/Saveslots.cpp
|
|
gui/SysState.cpp
|
|
gui/UpdateUI.cpp
|
|
)
|
|
|
|
# gui headers
|
|
set(pcsx2GuiHeaders
|
|
gui/AppAccelerators.h
|
|
gui/AppCommon.h
|
|
gui/AppConfig.h
|
|
gui/AppCoreThread.h
|
|
gui/AppEventListeners.h
|
|
gui/AppForwardDefs.h
|
|
gui/AppGameDatabase.h
|
|
gui/App.h
|
|
gui/ApplyState.h
|
|
gui/AppSaveStates.h
|
|
gui/ConsoleLogger.h
|
|
gui/CpuUsageProvider.h
|
|
gui/Debugger/BreakpointWindow.h
|
|
gui/Debugger/CtrlDisassemblyView.h
|
|
gui/Debugger/CtrlMemView.h
|
|
gui/Debugger/CtrlRegisterList.h
|
|
gui/Debugger/DebugEvents.h
|
|
gui/Debugger/DebuggerLists.h
|
|
gui/Debugger/DisassemblyDialog.h
|
|
gui/Dialogs/BaseConfigurationDialog.inl
|
|
gui/Dialogs/ConfigurationDialog.h
|
|
gui/Dialogs/LogOptionsDialog.h
|
|
gui/Dialogs/ModalPopups.h
|
|
gui/DriveList.h
|
|
gui/GSFrame.h
|
|
gui/i18n.h
|
|
gui/IsoDropTarget.h
|
|
gui/MainFrame.h
|
|
gui/MemoryCardFile.h
|
|
gui/MemoryCardFolder.h
|
|
gui/MSWstuff.h
|
|
gui/Panels/ConfigurationPanels.h
|
|
gui/Panels/LogOptionsPanels.h
|
|
gui/Panels/MemoryCardPanels.h
|
|
gui/pxEventThread.h
|
|
gui/RecentIsoList.h
|
|
gui/Saveslots.h
|
|
)
|
|
|
|
# Warning: the declaration of the .h are mandatory in case of resources files. It will ensure the creation
|
|
# from the bin2cpp tools at right good moment (ie .h must be created before the pcsx2 compilation)
|
|
# Gui resources headers
|
|
set(res_bin "${CMAKE_BINARY_DIR}/pcsx2/gui/Resources")
|
|
set(res_src "${CMAKE_SOURCE_DIR}/pcsx2/gui/Resources")
|
|
set(pcsx2GuiResources
|
|
${res_bin}/AppIcon16.h
|
|
${res_bin}/AppIcon32.h
|
|
${res_bin}/AppIcon64.h
|
|
${res_bin}/BackgroundLogo.h
|
|
${res_bin}/ButtonIcon_Camera.h
|
|
${res_bin}/ConfigIcon_Cpu.h
|
|
${res_bin}/ConfigIcon_Gamefixes.h
|
|
${res_bin}/ConfigIcon_MemoryCard.h
|
|
${res_bin}/ConfigIcon_Paths.h
|
|
${res_bin}/ConfigIcon_Speedhacks.h
|
|
${res_bin}/ConfigIcon_Video.h
|
|
${res_bin}/Logo.h
|
|
${res_bin}/NoIcon.h
|
|
${res_bin}/Breakpoint_Active.h
|
|
${res_bin}/Breakpoint_Inactive.h
|
|
)
|
|
|
|
# IPU sources
|
|
set(pcsx2IPUSources
|
|
IPU/IPU.cpp
|
|
IPU/IPU_Fifo.cpp
|
|
IPU/IPUdither.cpp
|
|
IPU/IPUdma.cpp
|
|
IPU/mpeg2lib/Idct.cpp
|
|
IPU/mpeg2lib/Mpeg.cpp
|
|
IPU/yuv2rgb.cpp)
|
|
|
|
# IPU headers
|
|
set(pcsx2IPUHeaders
|
|
IPU/IPUdma.h
|
|
IPU/IPU_Fifo.h
|
|
IPU/IPU.h
|
|
IPU/mpeg2lib/Mpeg.h
|
|
IPU/mpeg2lib/Vlc.h
|
|
IPU/yuv2rgb.h
|
|
)
|
|
|
|
# Linux sources
|
|
set(pcsx2LinuxSources
|
|
CDVD/Linux/DriveUtility.cpp
|
|
CDVD/Linux/IOCtlSrc.cpp
|
|
Linux/LnxConsolePipe.cpp
|
|
Linux/LnxKeyCodes.cpp
|
|
Linux/LnxFlatFileReader.cpp
|
|
)
|
|
|
|
set(pcsx2OSXSources
|
|
CDVD/Linux/DriveUtility.cpp
|
|
CDVD/Linux/IOCtlSrc.cpp
|
|
Linux/LnxConsolePipe.cpp
|
|
# Linux/LnxKeyCodes.cpp
|
|
Darwin/DarwinFlatFileReader.cpp
|
|
)
|
|
|
|
set(pcsx2FreeBSDSources
|
|
CDVD/Linux/DriveUtility.cpp
|
|
CDVD/Linux/IOCtlSrc.cpp
|
|
Linux/LnxConsolePipe.cpp
|
|
Linux/LnxKeyCodes.cpp
|
|
Darwin/DarwinFlatFileReader.cpp
|
|
)
|
|
|
|
# Linux headers
|
|
set(pcsx2LinuxHeaders
|
|
)
|
|
|
|
# ps2 sources
|
|
set(pcsx2ps2Sources
|
|
ps2/BiosTools.cpp
|
|
ps2/pgif.cpp
|
|
ps2/LegacyDmac.cpp
|
|
ps2/Iop/IopHwRead.cpp
|
|
ps2/Iop/IopHwWrite.cpp
|
|
ps2/Iop/PsxBios.cpp)
|
|
|
|
# ps2 headers
|
|
set(pcsx2ps2Headers
|
|
ps2/BiosTools.h
|
|
ps2/eeHwTraceLog.inl
|
|
ps2/pgif.h
|
|
ps2/HwInternal.h
|
|
ps2/Iop/IopHw_Internal.h)
|
|
|
|
# RDebug sources
|
|
set(pcsx2RDebugSources
|
|
RDebug/deci2.cpp
|
|
RDebug/deci2_dbgp.cpp
|
|
RDebug/deci2_dcmp.cpp
|
|
RDebug/deci2_drfp.cpp
|
|
RDebug/deci2_iloadp.cpp
|
|
RDebug/deci2_netmp.cpp
|
|
RDebug/deci2_ttyp.cpp)
|
|
|
|
# RDebug headers
|
|
set(pcsx2RDebugHeaders
|
|
RDebug/deci2_dbgp.h
|
|
RDebug/deci2_dcmp.h
|
|
RDebug/deci2_drfp.h
|
|
RDebug/deci2.h
|
|
RDebug/deci2_iloadp.h
|
|
RDebug/deci2_netmp.h
|
|
RDebug/deci2_ttyp.h)
|
|
|
|
# Recording sources
|
|
set(rec_src "Recording")
|
|
set(rec_vp_src "${rec_src}/VirtualPad")
|
|
set(pcsx2RecordingSources
|
|
${rec_src}/InputRecording.cpp
|
|
${rec_src}/InputRecordingControls.cpp
|
|
${rec_src}/InputRecordingFile.cpp
|
|
${rec_src}/NewRecordingFrame.cpp
|
|
${rec_src}/PadData.cpp
|
|
${rec_src}/Utilities/InputRecordingLogger.cpp
|
|
${rec_vp_src}/VirtualPad.cpp
|
|
${rec_vp_src}/VirtualPadData.cpp
|
|
${rec_vp_src}/VirtualPadResources.cpp
|
|
)
|
|
|
|
# Recording headers
|
|
set(pcsx2RecordingHeaders
|
|
${rec_src}/InputRecording.h
|
|
${rec_src}/InputRecordingControls.h
|
|
${rec_src}/InputRecordingFile.h
|
|
${rec_src}/NewRecordingFrame.h
|
|
${rec_src}/PadData.h
|
|
${rec_src}/Utilities/InputRecordingLogger.h
|
|
${rec_vp_src}/VirtualPad.h
|
|
${rec_vp_src}/VirtualPadData.h
|
|
${rec_vp_src}/VirtualPadResources.h
|
|
)
|
|
|
|
# Warning: the declaration of the .h are mandatory in case of resources files. It will ensure the creation
|
|
# from the bin2cpp tools at the right moment (ie .h must be created before the pcsx2 compilation)
|
|
# Recording - VirtualPad resources headers
|
|
set(res_rec_vp_src "${CMAKE_SOURCE_DIR}/pcsx2/Recording/VirtualPad/img")
|
|
set(pcsx2RecordingVirtualPadResources
|
|
${res_rec_vp_src}/circlePressed.h
|
|
${res_rec_vp_src}/controllerFull.h
|
|
${res_rec_vp_src}/controllerHalf.h
|
|
${res_rec_vp_src}/controllerThreeQuarters.h
|
|
${res_rec_vp_src}/crossPressed.h
|
|
${res_rec_vp_src}/downPressed.h
|
|
${res_rec_vp_src}/l1Pressed.h
|
|
${res_rec_vp_src}/l2Pressed.h
|
|
${res_rec_vp_src}/l3Pressed.h
|
|
${res_rec_vp_src}/leftPressed.h
|
|
${res_rec_vp_src}/r1Pressed.h
|
|
${res_rec_vp_src}/r2Pressed.h
|
|
${res_rec_vp_src}/r3Pressed.h
|
|
${res_rec_vp_src}/rightPressed.h
|
|
${res_rec_vp_src}/selectPressed.h
|
|
${res_rec_vp_src}/squarePressed.h
|
|
${res_rec_vp_src}/startPressed.h
|
|
${res_rec_vp_src}/trianglePressed.h
|
|
${res_rec_vp_src}/upPressed.h
|
|
)
|
|
|
|
# System sources
|
|
set(pcsx2SystemSources
|
|
System/SysCoreThread.cpp
|
|
System/SysThreadBase.cpp)
|
|
|
|
# System headers
|
|
set(pcsx2SystemHeaders
|
|
System/RecTypes.h
|
|
System/SysThreads.h)
|
|
|
|
# Utilities sources
|
|
set(pcsx2UtilitiesSources
|
|
Utilities/FileUtils.cpp)
|
|
|
|
# Utilities headers
|
|
set(pcsx2UtilitiesHeaders
|
|
Utilities/AsciiFile.h)
|
|
|
|
# Zip tools utilies sources
|
|
set(pcsx2ZipToolsSources
|
|
ZipTools/thread_gzip.cpp
|
|
ZipTools/thread_lzma.cpp)
|
|
|
|
# Zip tools utilies headers
|
|
set(pcsx2ZipToolsHeaders
|
|
ZipTools/ThreadedZipTools.h)
|
|
|
|
|
|
# Windows sources
|
|
set(pcsx2WindowsSources
|
|
CDVD/Windows/DriveUtility.cpp
|
|
CDVD/Windows/IOCtlSrc.cpp
|
|
windows/FlatFileReaderWindows.cpp
|
|
windows/Optimus.cpp
|
|
windows/PatchBrowser.cpp
|
|
windows/VCprojects/IopSif.cpp
|
|
windows/WinCompressNTFS.cpp
|
|
windows/WinConsolePipe.cpp
|
|
windows/WinKeyCodes.cpp
|
|
)
|
|
|
|
# Windows headers
|
|
set(pcsx2WindowsHeaders
|
|
windows/resource.h
|
|
windows/Win32.h)
|
|
|
|
# x86 sources
|
|
set(pcsx2x86Sources
|
|
x86/BaseblockEx.cpp
|
|
x86/iCOP0.cpp
|
|
x86/iCore.cpp
|
|
x86/iFPU.cpp
|
|
x86/iFPUd.cpp
|
|
x86/iMisc.cpp
|
|
x86/iMMI.cpp
|
|
x86/iR3000A.cpp
|
|
x86/iR3000Atables.cpp
|
|
x86/iR5900Misc.cpp
|
|
x86/ir5900tables.cpp
|
|
x86/ix86-32/iCore-32.cpp
|
|
x86/ix86-32/iR5900-32.cpp
|
|
x86/ix86-32/iR5900Arit.cpp
|
|
x86/ix86-32/iR5900AritImm.cpp
|
|
x86/ix86-32/iR5900Branch.cpp
|
|
x86/ix86-32/iR5900Jump.cpp
|
|
x86/ix86-32/iR5900LoadStore.cpp
|
|
x86/ix86-32/iR5900Move.cpp
|
|
x86/ix86-32/iR5900MultDiv.cpp
|
|
x86/ix86-32/iR5900Shift.cpp
|
|
x86/ix86-32/iR5900Templates.cpp
|
|
x86/ix86-32/recVTLB.cpp
|
|
x86/newVif_Dynarec.cpp
|
|
x86/newVif_Unpack.cpp
|
|
x86/newVif_UnpackSSE.cpp
|
|
)
|
|
|
|
# x86 headers
|
|
set(pcsx2x86Headers
|
|
x86/BaseblockEx.h
|
|
x86/iCOP0.h
|
|
x86/iCore.h
|
|
x86/iFPU.h
|
|
x86/iMMI.h
|
|
x86/iR3000A.h
|
|
x86/iR5900Arit.h
|
|
x86/iR5900AritImm.h
|
|
x86/iR5900Branch.h
|
|
x86/iR5900.h
|
|
x86/iR5900Jump.h
|
|
x86/iR5900LoadStore.h
|
|
x86/iR5900Move.h
|
|
x86/iR5900MultDiv.h
|
|
x86/iR5900Shift.h
|
|
x86/microVU_Alloc.inl
|
|
x86/microVU_Analyze.inl
|
|
x86/microVU_Branch.inl
|
|
x86/microVU_Clamp.inl
|
|
x86/microVU_Compile.inl
|
|
x86/microVU.cpp
|
|
x86/microVU_Execute.inl
|
|
x86/microVU_Flags.inl
|
|
x86/microVU.h
|
|
x86/microVU_IR.h
|
|
x86/microVU_Log.inl
|
|
x86/microVU_Lower.inl
|
|
x86/microVU_Macro.inl
|
|
x86/microVU_Misc.h
|
|
x86/microVU_Misc.inl
|
|
x86/microVU_Profiler.h
|
|
x86/microVU_Tables.inl
|
|
x86/microVU_Upper.inl
|
|
x86/newVif.h
|
|
x86/newVif_HashBucket.h
|
|
x86/newVif_UnpackSSE.h
|
|
x86/R5900_Profiler.h
|
|
)
|
|
|
|
# common Sources
|
|
set(Common
|
|
${pcsx2Sources}
|
|
${pcsx2Headers}
|
|
${pcsx2CDVDSources}
|
|
${pcsx2CDVDHeaders}
|
|
${pcsx2SPU2Sources}
|
|
${pcsx2SPU2Headers}
|
|
${pcsx2DEV9Sources}
|
|
${pcsx2DEV9Headers}
|
|
${pcsx2PADHeaders}
|
|
${pcsx2PADSources}
|
|
${pcsx2GSHeaders}
|
|
${pcsx2GSSources}
|
|
${pcsx2DebugToolsSources}
|
|
${pcsx2GuiSources}
|
|
${pcsx2GuiResources}
|
|
${pcsx2GuiHeaders}
|
|
${pcsx2IPUSources}
|
|
${pcsx2IPUHeaders}
|
|
${pcsx2ps2Sources}
|
|
${pcsx2ps2Headers}
|
|
${pcsx2RecordingSources}
|
|
${pcsx2RecordingVirtualPadResources}
|
|
${pcsx2RecordingHeaders}
|
|
${pcsx2SystemSources}
|
|
${pcsx2SystemHeaders}
|
|
${pcsx2UtilitiesSources}
|
|
${pcsx2UtilitiesHeaders}
|
|
${pcsx2x86Sources}
|
|
${pcsx2x86Headers}
|
|
${pcsx2ZipToolsSources}
|
|
${pcsx2ZipToolsHeaders})
|
|
|
|
# platform sources
|
|
# Linux
|
|
if(Linux)
|
|
set(Platform
|
|
${pcsx2LinuxSources}
|
|
${pcsx2LinuxHeaders}
|
|
${pcsx2USBSources}
|
|
${pcsx2USBHeaders}
|
|
)
|
|
|
|
set(Platform_Libs
|
|
PkgConfig::AIO
|
|
PkgConfig::EGL
|
|
PkgConfig::LIBUDEV
|
|
PkgConfig::X11_XCB
|
|
PkgConfig::XCB
|
|
X11::X11
|
|
ALSA::ALSA
|
|
)
|
|
elseif(UNIX AND NOT APPLE)
|
|
set(Platform_Libs X11::X11)
|
|
endif()
|
|
|
|
# Windows
|
|
if(Windows)
|
|
set(Platform
|
|
${pcsx2WindowsSources}
|
|
${pcsx2WindowsHeaders})
|
|
endif()
|
|
|
|
# MacOSX
|
|
if(APPLE)
|
|
set(Platform
|
|
${pcsx2OSXSources}
|
|
${pcsx2LinuxHeaders}
|
|
${pcsx2USBNullSources}
|
|
${pcsx2USBNullHeaders})
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
|
|
set(Platform
|
|
${pcsx2FreeBSDSources}
|
|
${pcsx2LinuxHeaders})
|
|
endif()
|
|
|
|
set(pcsx2FinalSources
|
|
${Common}
|
|
${Platform}
|
|
)
|
|
|
|
set(pcsx2FinalLibs
|
|
Utilities
|
|
x86emitter
|
|
fmt::fmt
|
|
yaml-cpp
|
|
chdr-static
|
|
wxWidgets::all
|
|
GTK::gtk
|
|
HarfBuzz::HarfBuzz
|
|
ZLIB::ZLIB
|
|
PkgConfig::SOUNDTOUCH
|
|
SDL::SDL
|
|
PCAP::PCAP
|
|
PkgConfig::SAMPLERATE
|
|
LibXml2::LibXml2
|
|
OpenGL::GL
|
|
PNG::PNG
|
|
Freetype::Freetype
|
|
LibLZMA::LibLZMA
|
|
${Platform_Libs}
|
|
)
|
|
|
|
if(PORTAUDIO_FOUND)
|
|
set(pcsx2FinalLibs ${pcsx2FinalLibs} PkgConfig::PORTAUDIO)
|
|
endif()
|
|
|
|
if(PULSEAUDIO_FOUND)
|
|
set(pcsx2FinalLibs ${pcsx2FinalLibs} PulseAudio::PulseAudio)
|
|
endif()
|
|
|
|
### Generate the resources files
|
|
file(MAKE_DIRECTORY ${res_bin})
|
|
|
|
foreach(res_file IN ITEMS
|
|
AppIcon16 AppIcon32 AppIcon64 BackgroundLogo Logo NoIcon ButtonIcon_Camera
|
|
ConfigIcon_Cpu ConfigIcon_Gamefixes ConfigIcon_MemoryCard
|
|
ConfigIcon_Paths ConfigIcon_Speedhacks ConfigIcon_Video Breakpoint_Active Breakpoint_Inactive)
|
|
add_custom_command(OUTPUT "${res_bin}/${res_file}.h" COMMAND perl ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl "${res_src}/${res_file}.png" "${res_bin}/${res_file}" )
|
|
endforeach()
|
|
|
|
### Generate Recording resource files
|
|
### Drop them into the folder alongside the png files
|
|
foreach(res_file IN ITEMS
|
|
circlePressed controllerFull controllerHalf controllerThreeQuarters crossPressed downPressed l1Pressed l2Pressed l3Pressed leftPressed
|
|
r1Pressed r2Pressed r3Pressed rightPressed selectPressed squarePressed startPressed trianglePressed upPressed)
|
|
add_custom_command(OUTPUT "${res_rec_vp_src}/${res_file}.h" COMMAND perl ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl "${res_rec_vp_src}/${res_file}.png" "${res_rec_vp_src}/${res_file}" )
|
|
endforeach()
|
|
|
|
if(USE_VTUNE)
|
|
set(pcsx2FinalLibs ${pcsx2FinalLibs} Vtune::Vtune)
|
|
endif()
|
|
|
|
add_pcsx2_executable(${Output} "${pcsx2FinalSources}" "${pcsx2FinalLibs}" "${pcsx2FinalFlags}")
|
|
target_compile_features(${Output} PRIVATE cxx_std_17)
|
|
|
|
# additonal include directories
|
|
target_include_directories(${Output} PRIVATE
|
|
gui
|
|
x86
|
|
${CMAKE_BINARY_DIR}/pcsx2/gui
|
|
${CMAKE_BINARY_DIR}/common/include/
|
|
)
|
|
|
|
if(COMMAND target_precompile_headers)
|
|
message("Using precompiled headers.")
|
|
target_precompile_headers(${Output} PRIVATE PrecompiledHeader.h)
|
|
endif()
|
|
|
|
if (APPLE)
|
|
# MacOS defaults to having a maximum protection of the __DATA segment of rw (non-executable)
|
|
# We have a bunch of page-sized arrays in bss that we use for jit
|
|
# Obviously not being able to make those arrays executable would be a problem
|
|
target_link_options(${Output} PRIVATE -Wl,-segprot,__DATA,rwx,rw)
|
|
|
|
# MacOS relies on X11's GL headers even though it doesn't use X11
|
|
target_include_directories(${Output} PRIVATE ${X11_INCLUDE_DIR})
|
|
|
|
set_target_properties(${Output} PROPERTIES
|
|
MACOSX_BUNDLE true
|
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/gui/Resources/Info.plist.in"
|
|
OUTPUT_NAME PCSX2
|
|
)
|
|
|
|
target_sources(${Output} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/gui/Resources/PCSX2.icns")
|
|
target_sources(${Output} PRIVATE "${CMAKE_SOURCE_DIR}/bin/GameIndex.yaml")
|
|
set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/gui/Resources/PCSX2.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
set_source_files_properties("${CMAKE_SOURCE_DIR}/bin/GameIndex.yaml" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
|
|
# If they say to skip postprocess bundle, leave the target in but make it so they have
|
|
# to manually run it
|
|
if (SKIP_POSTPROCESS_BUNDLE)
|
|
set(postprocessBundleType "")
|
|
else()
|
|
set(postprocessBundleType ALL)
|
|
endif()
|
|
|
|
add_custom_target(pcsx2-postprocess-bundle ${postprocessBundleType}
|
|
COMMAND ${CMAKE_COMMAND} "-DPCSX2_BUNDLE_PATH=$<TARGET_FILE_DIR:${Output}>/../.."
|
|
-P ${CMAKE_SOURCE_DIR}/cmake/Pcsx2PostprocessBundle.cmake
|
|
)
|
|
add_dependencies(pcsx2-postprocess-bundle ${Output})
|
|
endif()
|
|
|
|
if(NOT DISABLE_SETCAP)
|
|
if(PACKAGE_MODE)
|
|
install(CODE "execute_process(COMMAND /bin/bash -c \"echo 'Enabling networking capability on Linux...';set -x; [ -f '${CMAKE_INSTALL_FULL_BINDIR}/${Output}' ] && sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' '${CMAKE_INSTALL_FULL_BINDIR}/${Output}'; set +x\")")
|
|
else()
|
|
install(CODE "execute_process(COMMAND /bin/bash -c \"echo 'Enabling networking capability on Linux...';set -x; [ -f '${CMAKE_SOURCE_DIR}/bin/${Output}' ] && sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' '${CMAKE_SOURCE_DIR}/bin/${Output}'; set +x\")")
|
|
endif()
|
|
endif()
|