504 lines
23 KiB
CMake
504 lines
23 KiB
CMake
cmake_minimum_required (VERSION 3.8)
|
|
|
|
project(Cxbx-Reloaded)
|
|
|
|
# Allow devs to disable regeneration option.
|
|
# Suppress extra stuff from generated solution
|
|
#set(CMAKE_SUPPRESS_REGENERATION true)
|
|
|
|
# Output all binary files into one folder
|
|
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${Cxbx-Reloaded_BINARY_DIR}/bin")
|
|
endif()
|
|
|
|
set(SUBHOOK_TESTS OFF)
|
|
set(SUBHOOK_INSTALL OFF)
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/subhook" EXCLUDE_FROM_ALL)
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/XbSymbolDatabase")
|
|
|
|
# Not require since only include a header file
|
|
#add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/simpleini")
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/SDL2" EXCLUDE_FROM_ALL)
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/mio" EXCLUDE_FROM_ALL)
|
|
|
|
# Cxbx-Reloaded projects
|
|
set(CXBXR_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
add_custom_target(misc-batch
|
|
${CMAKE_COMMAND} -DTargetRunTimeDir=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>
|
|
-P ${CXBXR_ROOT_DIR}/projects/misc/batch.cmake
|
|
WORKING_DIRECTORY ${CXBXR_ROOT_DIR}
|
|
)
|
|
|
|
# Custom CMake projects since some import libraries doesn't have it.
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/libtom")
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/imgui")
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/libusb")
|
|
|
|
set(nv2a_vsh_cpu_UNIT_TEST OFF)
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/import/nv2a_vsh_cpu" EXCLUDE_FROM_ALL)
|
|
|
|
# Split the files into group for which project is likely
|
|
# going to be used for both header and source files.
|
|
# Then move only specific project files into their
|
|
# cmakelist file in finalize stage.
|
|
# Any of files being shared between two projects need to
|
|
# leave in parent cmakelist (here) for better sync across
|
|
# child projects.
|
|
|
|
# Common (GUI and Emulator)
|
|
file (GLOB CXBXR_HEADER_COMMON
|
|
"${CXBXR_ROOT_DIR}/src/common/AddressRanges.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuDes.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuRsa.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuSha.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/LibRc4.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/CxbxDebugger.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/cxbxr.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/EmuEEPROM.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/Error.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/FilePaths.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/DInputKeyboardCodes.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/DInputKeyboardMouse.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/layout_xbox_device.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/LibusbDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputManager.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/SdlJoystick.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/XInputPad.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/RawDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/IPCHybrid.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/Logging.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/Settings.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/cliConfig.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/cliConverter.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/CPUID.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/CxbxUtil.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/std_extend.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/strConverter.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/AlignPosfix1.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/AlignPrefix1.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/EmuShared.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Mutex.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Util.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/WineEnv.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbdm/CxbxXbdm.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbe/Xbe.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbe/XbePrinter.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbox/Logging.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbox/Types.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbox_types.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xdvdfs-tools/buffered_io.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/xdvdfs-tools/xdvdfs.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbConvert.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbD3D8Types.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XAPI/Xapi.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlLogging.h"
|
|
"${CXBXR_ROOT_DIR}/src/Cxbx.h"
|
|
"${CXBXR_ROOT_DIR}/src/CxbxVersion.h"
|
|
"${CXBXR_ROOT_DIR}/src/version.h"
|
|
)
|
|
|
|
# GUI v1
|
|
file (GLOB CXBXR_HEADER_GUIv1
|
|
"${CXBXR_ROOT_DIR}/src/common/input/Button.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/EmuDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputWindow.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgDukeControllerConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgLibusbControllerConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgLightgunConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgSBControllerConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgAbout.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgAudioConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgInputConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgEepromConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgLoggingConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgNetworkConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgVideoConfig.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/Wnd.h"
|
|
"${CXBXR_ROOT_DIR}/src/gui/WndMain.h"
|
|
)
|
|
|
|
# Emulator (module)
|
|
file (GLOB CXBXR_HEADER_EMU_IMPORT
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_dx9.h"
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_opengl3.h"
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_win32.h"
|
|
)
|
|
file (GLOB CXBXR_HEADER_EMU
|
|
"${CXBXR_ROOT_DIR}/src/common/audio/converter.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/audio/XADPCM.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/Timer.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/gloffscreen/glextensions.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/gloffscreen/gloffscreen.h"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Threads.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/audio.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/ui.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/settings.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/video.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/video/RenderBase.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/CxbxPixelShaderTemplate.hlsl"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/CxbxVertexShaderTemplate.hlsl"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/CxbxVertexShaderPassthrough.hlsl"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/Direct3D9.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/FixedFunctionPixelShader.hlsl"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/FixedFunctionPixelShader.hlsli"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/FixedFunctionVertexShader.hlsl"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/FixedFunctionVertexShaderState.hlsli"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/PixelShader.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/Shader.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/VertexShader.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/VertexShaderCache.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/WalkIndexBuffer.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/FixedFunctionState.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/ResourceTracker.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbD3D8Logging.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbPixelShader.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbPushBuffer.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbState.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbVertexBuffer.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbVertexShader.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/common/windows/WFXformat.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSound.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundGlobal.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundInline.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/XbDSoundFuncs.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/XbDSoundLogging.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/XbDSoundTypes.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/common/XbInternalStruct.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/Intercept.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/Patches.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XACTENG/XactEng.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XGRAPHIC/XGraphic.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XONLINE/XOnline.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/common/strings.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlAvModes.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlKe.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlKi.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlPs.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/init/CxbxKrnl.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/init/KrnlPatches.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/PhysicalMemory.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/PoolManager.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/VMManager.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/Emu.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuFile.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuFS.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuNtDll.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/NativeHandle.h"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/PatchRdtsc.hpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/ADM1032Device.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/EEPROMDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/network/NVNetDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/LED.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/MCPXDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/PCIBus.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/PCIDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMBus.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMCDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/Hub.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/OHCI.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/UsbCommon.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/USBDevice.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/XidGamepad.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_debug.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_int.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_psh.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_regs.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_shaders.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_shaders_common.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_vsh.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/qemu-thread.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/queue.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/swizzle.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/vga.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/x86/EmuX86.h"
|
|
"${CXBXR_ROOT_DIR}/src/devices/Xbox.h"
|
|
)
|
|
|
|
# filter hlsl files into its own list
|
|
# excluding hlsli file(s)
|
|
set(CXBXR_HEADER_HLSL ${CXBXR_HEADER_EMU})
|
|
list(FILTER CXBXR_HEADER_HLSL INCLUDE REGEX ".*\\.hlsl$")
|
|
|
|
# Common (GUI and Emulator)
|
|
file (GLOB CXBXR_SOURCE_COMMON
|
|
"${CXBXR_ROOT_DIR}/src/common/AddressRanges.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuDes.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuRsa.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/EmuSha.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/crypto/LibRc4.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/CxbxDebugger.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/cxbxr.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/EmuEEPROM.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/Error.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/FilePaths.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/DInputKeyboardMouse.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputManager.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/LibusbDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/SdlJoystick.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/XInputPad.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/RawDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/Logging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/Settings.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/cliConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/cliConverter.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/CxbxUtil.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/EmuShared.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/InlineFunc.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/IPCWindows.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Mutex.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Util.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/WineEnv.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbdm/CxbxXbdm.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbe/Xbe.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbe/XbePrinter.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbox/Logging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xbox/Types.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xdvdfs-tools/buffered_io.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/xdvdfs-tools/xdvdfs.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbConvert.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XAPI/Xapi.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlLogging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlXbox.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlXc.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlXe.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/CxbxVersion.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/HighPerformanceGraphicsEnabler.c"
|
|
)
|
|
|
|
# GUI v1
|
|
file (GLOB CXBXR_SOURCE_GUIv1
|
|
"${CXBXR_ROOT_DIR}/src/common/input/Button.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/EmuDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/input/InputWindow.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgDukeControllerConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgLibusbControllerConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgLightgunConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/input/DlgSBControllerConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgAbout.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgAudioConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgInputConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgEepromConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgLoggingConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgNetworkConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/DlgVideoConfig.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/WinMain.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/Wnd.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/gui/WndMain.cpp"
|
|
)
|
|
|
|
# Emulator (module)
|
|
# TODO: Merge CXBXR_KRNL_CPP into CXBXR_SOURCE_EMU once cxbx project is removed.
|
|
file (GLOB CXBXR_KRNL_CPP
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/init/CxbxKrnl.cpp"
|
|
)
|
|
file (GLOB CXBXR_SOURCE_EMU_IMPORT
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_dx9.cpp"
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_opengl3.cpp"
|
|
"${CXBXR_ROOT_DIR}/import/imgui/backends/imgui_impl_win32.cpp"
|
|
)
|
|
file (GLOB CXBXR_SOURCE_EMU
|
|
"${CXBXR_KRNL_CPP}"
|
|
"${CXBXR_ROOT_DIR}/src/common/Timer.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/gloffscreen/glextensions.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/gloffscreen/gloffscreen_common.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/util/gloffscreen/gloffscreen_wgl.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/VerifyAddressRanges.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/common/win32/Threads.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/audio.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/ui.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/imgui/video.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/common/video/RenderBase.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/PixelShader.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/RenderStates.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/Shader.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/TextureStates.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/VertexShader.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/VertexShaderCache.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/Direct3D9/WalkIndexBuffer.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/FixedFunctionState.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/ResourceTracker.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbD3D8Logging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbPixelShader.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbPushBuffer.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbVertexBuffer.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/D3D8/XbVertexShader.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSound.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSound3DCalculator.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundBuffer.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundGlobal.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DirectSoundStream.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/DirectSound/XFileMediaObject.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/XbDSoundLogging.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/common/XbInternalDSVoice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/DSOUND/common/XbInternalStruct.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/Intercept.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/JVS/JVS.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/Patches.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XACTENG/XactEng.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/hle/XGRAPHIC/XGraphic.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnl.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlAv.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlDbg.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlEx.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlFs.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlHal.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlIo.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlKd.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlKe.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlKi.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlMm.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlNt.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlOb.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlPhy.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlPs.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/EmuKrnlRtl.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/exports/KernelThunk.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/PhysicalMemory.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/PoolManager.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/memory-manager/VMManager.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/Emu.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuFile.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuFS.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/EmuNtDll.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/NativeHandle.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/core/kernel/support/PatchRdtsc.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/ADM1032Device.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/Chihiro/JvsIO.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/Chihiro/MediaBoard.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/EEPROMDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/network/NVNetDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/MCPXDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/PCIBus.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/PCIDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMBus.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMCDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/SMDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/Hub.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/OHCI.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/USBDevice.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/usb/XidGamepad.cpp"
|
|
|
|
#NOTE: These files are direct includes inside nv2a.cpp file. If we comment them out, we will have compile errors.
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_DEBUG.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PBUS.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PCOUNTER.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PCRTC.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PFB.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PFIFO.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PGRAPH.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PMC.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRAMDAC.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRAMIN.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRMA.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRMCIO.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRMDIO.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRMFB.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PRMVIO.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PSTRAPS.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PTIMER.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PTV.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PVIDEO.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_PVPE.cpp"
|
|
#"${CXBXR_ROOT_DIR}/src/devices/video/EmuNV2A_USER.cpp"
|
|
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_debug.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_psh.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_shaders.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/nv2a_vsh.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/qemu-thread-win32.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/video/swizzle.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/x86/EmuX86.cpp"
|
|
"${CXBXR_ROOT_DIR}/src/devices/Xbox.cpp"
|
|
# Temporary usage for need ReserveAddressRanges func with cxbx.exe's emulation.
|
|
"${CXBXR_ROOT_DIR}/src/common/ReserveAddressRanges.cpp"
|
|
)
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/cxbx")
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/cxbxr-ldr")
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/projects/cxbxr-emu")
|
|
|
|
set(cxbxr_INSTALL_files "COPYING" "README.md")
|
|
|
|
# Cxbx-Reloaded project with third-party libraries
|
|
set_target_properties(cxbx cxbxr-ldr cxbxr-emu misc-batch SDL2 subhook libXbSymbolDatabase libtommath libtomcrypt imgui libusb
|
|
PROPERTIES FOLDER Cxbx-Reloaded
|
|
)
|
|
|
|
set_target_properties(nv2a_vsh_emulator nv2a_vsh_disassembler nv2a_vsh_cpu
|
|
PROPERTIES FOLDER Cxbx-Reloaded/nv2a_vsh
|
|
)
|
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
|
# Configure startup project
|
|
set_property(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" PROPERTY VS_STARTUP_PROJECT cxbx)
|
|
endif()
|
|
|
|
# Check if generator is Visual Studio then enable Cxbxr-Debugger project.
|
|
# Since C# is currently supported with Visual Studio for now.
|
|
if(${CMAKE_GENERATOR} MATCHES "Visual Studio ([^9]|[9][0-9])")
|
|
# Issues with compile (the same with develop branch) and
|
|
# for some reason did not put the files into virtual folder?
|
|
# Might need to put the list in the source folder for workaround fix.
|
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/src/CxbxDebugger")
|
|
|
|
set_target_properties(Tests_cs_x86
|
|
PROPERTIES EXCLUDE_FROM_ALL TRUE
|
|
)
|
|
|
|
# Cxbx-Debugger project with third-party libraries
|
|
set_target_properties(cxbxr-debugger cs_x86 Tests_cs_x86 capstone-shared
|
|
PROPERTIES FOLDER Cxbx-Reloaded/debugger
|
|
)
|
|
endif()
|
|
|
|
install(FILES ${cxbxr_INSTALL_files}
|
|
DESTINATION bin
|
|
)
|
|
|
|
# Copy HLSL files to the output directory, which are loaded at runtime
|
|
set(CXBXR_HLSL_FILES ${CXBXR_HEADER_EMU})
|
|
list(FILTER CXBXR_HLSL_FILES INCLUDE REGEX ".*/src/core/hle/D3D8/Direct3D9/[^/]+\.hlsli?")
|
|
add_custom_command(
|
|
TARGET misc-batch POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/hlsl
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CXBXR_HLSL_FILES} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/hlsl"
|
|
# These files can be edited.
|
|
# Create backup copies for convenience of restoring original shader behaviour.
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/hlsl/backup
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CXBXR_HLSL_FILES} "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/hlsl/backup"
|
|
)
|
|
install(DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIG>/hlsl DESTINATION bin)
|
|
|
|
set(cxbxr_GLEW_DLL "${CMAKE_SOURCE_DIR}/import/glew-2.0.0/bin/Release/Win32/glew32.dll")
|
|
|
|
install(PROGRAMS ${cxbxr_GLEW_DLL}
|
|
DESTINATION bin
|
|
)
|
|
|
|
install(PROGRAMS $<TARGET_FILE_DIR:cxbx>/${CMAKE_SHARED_LIBRARY_PREFIX}subhook${CMAKE_SHARED_LIBRARY_SUFFIX}
|
|
DESTINATION bin
|
|
)
|
|
|
|
install(PROGRAMS $<TARGET_FILE_DIR:cxbx>/${CMAKE_SHARED_LIBRARY_PREFIX}SDL2${CMAKE_SHARED_LIBRARY_SUFFIX}
|
|
DESTINATION bin
|
|
)
|