Add an experimental CMake build system as a possible replacement for SCons. Only tested on Linux, should work on OS X and Windows in the future as well though.

Some notes about this:
- config.h doesn't get written yet, so you'll have to use one generated by SCons
- dependency checking isn't really implemented, yet. Just some basic checks for OpenGL or ALSA, we need something more sophisticated though.
- the OpenGL plugin fails to load for some reason which I can't debug right now due to the libc debuginfo package version in openSUSE not matching the runtime packages
- there's even some support for generating install packages (rpm/deb/.. packages, NSIS installer, etc). It doesn't work properly right now though, since some paths seem to be hardcoded into Dolphin's source
- probably lots of other stuff I forgot... Just take a look at all the TODOs in the CMakeLists.txt files for more information ;P

Additionally, I added various files to the svn:ignore list.

tl;dr: Unless you are a dev or you're building binary packages, this commit shouldn't bother you :P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6326 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
NeoBrainX 2010-11-01 15:47:02 +00:00
parent 4b9831cdce
commit b75a805859
24 changed files with 879 additions and 0 deletions

256
CMakeLists.txt Normal file
View File

@ -0,0 +1,256 @@
########################################
# General setup
#
cmake_minimum_required (VERSION 2.6)
project (dolphin-emu)
set(DOLPHIN_IS_STABLE FALSE)
set(DOLPHIN_BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Binary/${CMAKE_HOST_SYSTEM_NAME})
set(DOLPHIN_PLUGINS_DIR ${DOLPHIN_BIN_DIR}/plugins)
set(DOLPHIN_USER_DIR ${DOLPHIN_BIN_DIR})
set(DOLPHIN_SYS_DIR ${DOLPHIN_BIN_DIR})
set(DOLPHIN_LICENSE_DIR ${DOLPHIN_BIN_DIR})
include(FindSubversion OPTIONAL) # for revision info
if(Subversion_FOUND)
Subversion_WC_INFO(. DOLPHIN) # defines DOLPHIN_WC_REVISION
endif()
include(FindPkgConfig REQUIRED) # TODO: Make this optional or even implement our own package detection
# setup paths
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DOLPHIN_BIN_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DOLPHIN_PLUGINS_DIR})
# Various compile flags - TODO: Can these be simplified with a more general CMake variable?
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
# gcc uses some optimizations which might break stuff without this flag
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
add_definitions(-DFILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE)
if(UNIX)
# UNIX needs -fPIC for shared libraries, TODO: Would -fpic be enough as well?
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif(UNIX)
########################################
# Dependency checking
#
# TODO: Use find_library for other stuff?
#
# NOTES:
# there are numerous possible cases:
# - dependency may be required or optional
# - dependency may be already installed (but optionally the bundled one may be used)
#
# TODO: We should have a number of options for optional dependencies (disable, force bundled, bundled or native, force native)
# e.g. the OpenGL plugin defaults to force native, so we error out if no GL libs are found. The user is free to explicitely disable it though.
# Stuff which is likely to be needed by users is made an option with default ON, other stuff (like e.g. sound backends) is made completely optionally.
# TODO: wxWidgets: Since _DEBUG gets defined in Debug builds, wxWidgets will enable some debugging functionality as well.
# However, because we still link against release wx libs, which makes compilation fail because of undefined references.
# When building the Debug configuration, we should probably check if the debug wx libs are available and fall back to the bundled ones otherwise.
include(FindOpenGL REQUIRED)
include(FindALSA OPTIONAL)
include(FindGTK2 OPTIONAL) # TODO: Or REQUIRED?
include(FindOpenAL OPTIONAL)
include(FindwxWidgets OPTIONAL)
include(FindX11 OPTIONAL) # TODO: Or REQUIRED on UNIX?
pkg_search_module(AO ao)
pkg_search_module(BLUEZ bluez)
# TODO: Make some of these optional like explained above
if(ALSA_FOUND)
add_definitions(-DHAVE_ALSA=1)
message("ALSA found, enabling ALSA sound backend")
else()
add_definitions(-DHAVE_ALSA=0)
message("ALSA NOT found, disabling ALSA sound backend")
endif(ALSA_FOUND)
if(AO_FOUND)
add_definitions(-DHAVE_AO=1)
include_directories(${AO_INCLUDE_DIRS})
message("ao found, enabling ao sound backend")
else()
add_definitions(-DHAVE_AO=0)
message("ao NOT found, disabling ao sound backend")
endif(AO_FOUND)
if(BLUEZ_FOUND)
add_definitions(-DHAVE_BLUEZ=1)
include_directories(${BLUEZ_INCLUDE_DIRS})
message("bluez found, enabling bluetooth support")
else()
add_definitions(-DHAVE_BLUEZ=0)
message("bluez NOT found, enabling bluetooth support")
endif(BLUEZ_FOUND)
include_directories(${OPENGL_INCLUDE_DIR})
if(GTK2_FOUND)
include_directories(${GTK2_INCLUDE_DIRS})
message("GTK 2 found") # TODO: What is this needed for actually?
else()
message("GTK 2 NOT found")
endif(GTK2_FOUND)
if(OPENAL_FOUND)
add_definitions(-DHAVE_OPENAL=1)
include_directories(${OPENAL_INCLUDE_DIR})
message("OpenAL found, enabling OpenAL sound backend")
else()
add_definitions(-DHAVE_OPENAL=0)
message("OpenAL NOT found, disabling OpenAL sound backend")
endif(OPENAL_FOUND)
if(wxWidgets_FOUND)
add_definitions(-DHAVE_WX=1)
include(${wxWidgets_USE_FILE})
message("wxWidgets found, enabling GUI build")
else(wxWidgets_FOUND)
add_definitions(-DHAVE_WX=0)
message("wxWidgets NOT found, disabling GUI build (using CLI interface)")
endif(wxWidgets_FOUND)
if(X11_FOUND)
add_definitions(-DHAVE_X11=1)
include_directories(${X11_INCLUDE_DIR})
message("X11 found") # TODO: What is this needed for actually?
else()
add_definitions(-DHAVE_X11=0)
message("X11 NOT found")
endif(X11_FOUND)
########################################
# Setup include directories (and make sure they are preferred over the Externals)
#
include_directories(Source/PluginSpecs)
include_directories(Externals)
include_directories(.) # config.h, TODO: Move to Source? Or just add the corresponding definitions to the compiler flags?
include_directories(Source/Core/AudioCommon/Src)
include_directories(Source/Core/Common/Src)
include_directories(Source/Core/Core/Src)
include_directories(Source/Core/DebuggerUICommon/Src)
include_directories(Source/Core/DebuggerWX/Src)
include_directories(Source/Core/DiscIO/Src)
include_directories(Source/Core/DolphinWX/Src)
include_directories(Source/Core/DSPCore/Src)
include_directories(Source/Core/InputCommon/Src)
include_directories(Source/Core/InputUICommon/Src)
include_directories(Source/Core/VideoCommon/Src)
########################################
# Process externals and setup their include directories
#
# NOTES about adding Externals:
# - add the include directory here
# - make sure to tell cmake to link them statically or dynamically (most should be linked statically)
# - ideally, the nested CMakeLists.txt should only contain a list of sources and an add_library()+target_link_libraries() call pair
# - place the CMakeLists.txt in the first-level subdirectory, e.g. Externals/WiiUse/CMakeLists.txt (that is: NOT in some Src/ subdirectory)
#
add_subdirectory(Externals/Bochs_disasm)
include_directories(Externals/Bochs_disasm)
# TODO: Try using the native lib first
add_subdirectory(Externals/Lua)
include_directories(Externals/Lua)
# TODO: Try using the native lib first
add_subdirectory(Externals/LZO)
include_directories(Externals/LZO)
include(FindSDL OPTIONAL)
if(SDL_FOUND)
include_directories(SLD_INCLUDE_DIR)
else(SDL_FOUND)
# TODO: No CMakeLists.txt there, yet...
add_subdirectory(Externals/SDL)
include_directories(Externals/SDL/include)
endif(SDL_FOUND)
# TODO: Try using the native lib first
add_subdirectory(Externals/SFML)
include_directories(Externals/SFML/include)
# TODO: Try using the native lib first
add_subdirectory(Externals/SOIL)
include_directories(Externals/SOIL) # TODO: Or Externals/SOIL/SOIL?
include(FindZLIB OPTIONAL) # TODO: Move to top
if(ZLIB_FOUND)
include_directories(ZLIB_INCLUDE_DIRS)
else(ZLIB_FOUND)
# TODO: No CMakeLists.txt there, yet...
add_subdirectory(Externals/zlib)
include_directories(Externals/zlib)
endif(ZLIB_FOUND)
add_subdirectory(Externals/WiiUse)
include_directories(Externals/WiiUse/Src)
########################################
# Pre-build events: Define configuration variables and write svnrev header
#
file(WRITE ./Source/Core/Common/Src/svnrev.h "#define SVN_REV_STR \"" ${DOLPHIN_WC_REVISION} "-" ${CMAKE_BUILD_TYPE} "\"")
# TODO: Write config.h here or add the corresponding compile definitions using add_definitions
########################################
# Start compiling our code
#
add_subdirectory(Source)
########################################
# copy over the Data folder ... TODO: Don't copy .svn dirs!
#
file(COPY Data/user DESTINATION ${DOLPHIN_USER_DIR})
file(COPY Data/sys DESTINATION ${DOLPHIN_SYS_DIR})
file(COPY Data/license.txt DESTINATION ${DOLPHIN_LICENSE_DIR})
########################################
# Install and CPack information
#
install(DIRECTORY Data/user DESTINATION share/dolphin-emu)
install(DIRECTORY Data/sys DESTINATION share/dolphin-emu)
install(FILES Data/license.txt DESTINATION share/dolphin-emu)
# TODO: Move childrens's install commands here?
# packaging information
include(CPack)
set(CPACK_PACKAGE_NAME "dolphin-emu")
set(CPACK_PACKAGE_VENDOR "Dolphin Team")
set(CPACK_PACKAGE_VERSION_MAJOR "2")
set(CPACK_PACKAGE_VERSION_MINOR "0")
if(DOLPHIN_IS_STABLE)
set(CPACK_PACKAGE_VERSION_PATCH "0")
else()
set(CPACK_PACKAGE_VERSION_PATCH ${DOLPHIN_WC_REV})
endif()
# TODO: CPACK_PACKAGE_DESCRIPTION_FILE
# TODO: CPACK_PACKAGE_DESCRIPTION_SUMMARY
# TODO: CPACK_RESOURCE_FILE_README
# TODO: CPACK_RESOURCE_FILE_WELCOME
# TODO: CPACK_PACKAGE_EXECUTABLES
# TODO: CPACK_PACKAGE_ICON
# TODO: CPACK_NSIS_*
# TODO: Use CPack components for DSPSpy, etc => cpack_add_component

11
Externals/Bochs_disasm/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,11 @@
set(SRCS dis_decode.cpp
dis_groups.cpp
resolve.cpp
syntax.cpp
PowerPCDisasm.cpp)
if(WIN32)
set(SRCS ${SRCS} stdafx.cpp)
endif(WIN32)
add_library(bdisasm STATIC ${SRCS})

1
Externals/LZO/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1 @@
add_library(lzo2 STATIC minilzo.c)

38
Externals/Lua/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,38 @@
# TODO?
#luaenv = env.Clone()
#
#if not sys.platform == 'win32':
# luaenv['CPPDEFINES'].append('LUA_USE_LINUX') # Also works for OS X
set(SRCS lapi.c
lauxlib.c
lbaselib.c
lcode.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lundump.c
lvm.c
lzio.c
print.c)
add_library(lua STATIC ${SRCS})

12
Externals/SFML/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,12 @@
include_directories(include)
set(SRCS src/SFML/Network/Ftp.cpp
src/SFML/Network/Http.cpp
src/SFML/Network/IPAddress.cpp
src/SFML/Network/Packet.cpp
src/SFML/Network/SelectorBase.cpp
src/SFML/Network/SocketTCP.cpp
src/SFML/Network/SocketUDP.cpp
src/SFML/Network/Unix/SocketHelper.cpp)
add_library(sfml-network ${SRCS})

6
Externals/SOIL/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,6 @@
set(SRCS image_DXT.c
image_helper.c
SOIL.c
stb_image_aug.c)
add_library(SOIL STATIC ${SRCS})

14
Externals/WiiUse/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,14 @@
set(SRCS Src/ir.c
Src/wiiuse.c)
if(APPLE)
set(SRCS ${SRCS} Src/io_osx.m)
elseif(UNIX)
set(SRCS ${SRCS} Src/io_nix.c)
set(LIBS ${LIBS} bluetooth)
elseif(WIN32)
set(SRCS ${SRCS} Src/io_win.c)
endif()
add_library(wiiuse STATIC ${SRCS})
target_link_libraries(wiiuse ${LIBS})

3
Source/CMakeLists.txt Normal file
View File

@ -0,0 +1,3 @@
add_subdirectory(Core)
add_subdirectory(Plugins)
# TODO: Add DSPSpy, DSPTool, TestSuite and UnitTests. Preferrably make them option()s and cpack components

View File

@ -0,0 +1,31 @@
set(SRCS Src/AudioCommon.cpp
Src/AudioCommonConfig.cpp
Src/Mixer.cpp
Src/WaveFile.cpp)
if(APPLE)
set(SRCS ${SRCS} Src/CoreAudioSoundStream.cpp)
else()
if(ALSA_FOUND)
set(SRCS ${SRCS} Src/AlsaSoundStream.cpp)
endif(ALSA_FOUND)
if(AO_FOUND)
set(SRCS ${SRCS} Src/AOSoundStream.cpp)
endif(AO_FOUND)
if(OPENAL_FOUND OR WIN32)
set(SRCS ${SRCS} Src/OpenALSoundStream.cpp)
endif(OPENAL_FOUND OR WIN32)
if(PULSEAUDIO_FOUND)
set(SRCS ${SRCS} Src/PulseAudioStream.cpp)
endif(PULSEAUDIO_FOUND)
if(WIN32)
set(SRCS ${SRCS} Src/DSoundStream.cpp)
endif(WIN32)
endif()
add_library(audiocommon STATIC ${SRCS})

View File

@ -0,0 +1,15 @@
add_subdirectory(AudioCommon)
add_subdirectory(Common)
add_subdirectory(Core)
if(wxWidgets_FOUND)
add_subdirectory(DebuggerUICommon)
add_subdirectory(DebuggerWX)
add_subdirectory(InputUICommon)
endif()
add_subdirectory(DiscIO)
add_subdirectory(DolphinWX)
add_subdirectory(DSPCore)
add_subdirectory(InputCommon)
add_subdirectory(VideoCommon)

View File

@ -0,0 +1,42 @@
set(SRCS Src/ABI.cpp
Src/BreakPoints.cpp
Src/CDUtils.cpp
Src/ColorUtil.cpp
Src/ConsoleListener.cpp
Src/CPUDetect.cpp
Src/DynamicLibrary.cpp
Src/FileSearch.cpp
Src/FileUtil.cpp
Src/Hash.cpp
Src/IniFile.cpp
Src/LogManager.cpp
Src/MathUtil.cpp
Src/MemArena.cpp
Src/MemoryUtil.cpp
Src/Misc.cpp
Src/MsgHandler.cpp
Src/NandPaths.cpp
Src/OpenCL.cpp
Src/Plugin.cpp
Src/PluginDSP.cpp
Src/PluginVideo.cpp
Src/SDCardUtil.cpp
Src/StringUtil.cpp
Src/SymbolDB.cpp
Src/SysConf.cpp
Src/Thread.cpp
Src/Thunk.cpp
Src/Timer.cpp
Src/Version.cpp
Src/x64Analyzer.cpp
Src/x64Emitter.cpp
Src/Crypto/bn.cpp
Src/Crypto/ec.cpp
Src/Crypto/md5.cpp
Src/Crypto/sha1.cpp)
if(WIN32)
set(SRCS ${SRCS} Src/ExtendedTrace.cpp Src/stdafx.cpp)
endif(WIN32)
add_library(common STATIC ${SRCS})

View File

@ -0,0 +1,144 @@
set(SRCS Src/ActionReplay.cpp
Src/ARDecrypt.cpp
Src/ConfigManager.cpp
Src/Console.cpp
Src/Core.cpp
Src/CoreParameter.cpp
Src/CoreRerecording.cpp
Src/CoreTiming.cpp
Src/GeckoCodeConfig.cpp
Src/GeckoCode.cpp
Src/LuaInterface.cpp
Src/MemTools.cpp
Src/OnFrame.cpp
Src/PatchEngine.cpp
Src/PluginManager.cpp
Src/State.cpp
Src/stdafx.cpp
Src/Tracer.cpp
Src/VolumeHandler.cpp
Src/Boot/Boot_BS2Emu.cpp
Src/Boot/Boot.cpp
Src/Boot/Boot_DOL.cpp
Src/Boot/Boot_ELF.cpp
Src/Boot/Boot_WiiWAD.cpp
Src/Boot/ElfReader.cpp
Src/Debugger/Debugger_SymbolMap.cpp
Src/Debugger/Dump.cpp
Src/Debugger/PPCDebugInterface.cpp
Src/HLE/HLE.cpp
Src/HLE/HLE_Misc.cpp
Src/HLE/HLE_OS.cpp
Src/HW/AudioInterface.cpp
Src/HW/CPU.cpp
Src/HW/DSP.cpp
Src/HW/DVDInterface.cpp
Src/HW/EXI_Channel.cpp
Src/HW/EXI.cpp
Src/HW/EXI_Device.cpp
Src/HW/EXI_DeviceAD16.cpp
Src/HW/EXI_DeviceAMBaseboard.cpp
Src/HW/EXI_DeviceEthernet.cpp
Src/HW/EXI_DeviceIPL.cpp
Src/HW/EXI_DeviceMemoryCard.cpp
Src/HW/EXI_DeviceMic.cpp
Src/HW/GCPad.cpp
Src/HW/GCPadEmu.cpp
Src/HW/GPFifo.cpp
Src/HW/HW.cpp
Src/HW/Memmap.cpp
Src/HW/MemmapFunctions.cpp
Src/HW/MemoryInterface.cpp
Src/HW/ProcessorInterface.cpp
Src/HW/SI.cpp
Src/HW/SI_DeviceAMBaseboard.cpp
Src/HW/SI_Device.cpp
Src/HW/SI_DeviceGBA.cpp
Src/HW/SI_DeviceGCController.cpp
Src/HW/StreamADPCM.cpp
Src/HW/SystemTimers.cpp
Src/HW/VideoInterface.cpp
Src/HW/WII_IOB.cpp
Src/HW/WII_IPC.cpp
Src/HW/Wiimote.cpp
Src/HW/WiimoteEmu/WiimoteEmu.cpp
Src/HW/WiimoteEmu/Attachment/Classic.cpp
Src/HW/WiimoteEmu/Attachment/Attachment.cpp
Src/HW/WiimoteEmu/Attachment/Nunchuk.cpp
Src/HW/WiimoteEmu/Attachment/Drums.cpp
Src/HW/WiimoteEmu/Attachment/Guitar.cpp
Src/HW/WiimoteEmu/Attachment/Turntable.cpp
Src/HW/WiimoteEmu/EmuSubroutines.cpp
Src/HW/WiimoteEmu/Encryption.cpp
#Src/HW/WiimoteEmu/Speaker.cpp
Src/HW/WiimoteReal/WiimoteReal.cpp
Src/IPC_HLE/WII_IPC_HLE.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp
Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp
Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp
Src/IPC_HLE/WiiMote_HID_Attr.cpp
Src/PowerPC/LUT_frsqrtex.cpp
Src/PowerPC/PowerPC.cpp
Src/PowerPC/PPCAnalyst.cpp
Src/PowerPC/PPCCache.cpp
Src/PowerPC/PPCSymbolDB.cpp
Src/PowerPC/PPCTables.cpp
Src/PowerPC/Profiler.cpp
Src/PowerPC/SignatureDB.cpp
Src/PowerPC/Interpreter/Interpreter_Branch.cpp
Src/PowerPC/Interpreter/Interpreter.cpp
Src/PowerPC/Interpreter/Interpreter_FloatingPoint.cpp
Src/PowerPC/Interpreter/Interpreter_Integer.cpp
Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp
Src/PowerPC/Interpreter/Interpreter_LoadStorePaired.cpp
Src/PowerPC/Interpreter/Interpreter_Paired.cpp
Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp
Src/PowerPC/Interpreter/Interpreter_Tables.cpp
Src/PowerPC/Jit64IL/IR.cpp
Src/PowerPC/Jit64IL/IR_X86.cpp
Src/PowerPC/Jit64IL/JitILAsm.cpp
Src/PowerPC/Jit64IL/JitIL_Branch.cpp
Src/PowerPC/Jit64IL/JitIL.cpp
Src/PowerPC/Jit64IL/JitIL_FloatingPoint.cpp
Src/PowerPC/Jit64IL/JitIL_Integer.cpp
Src/PowerPC/Jit64IL/JitIL_LoadStore.cpp
Src/PowerPC/Jit64IL/JitIL_LoadStoreFloating.cpp
Src/PowerPC/Jit64IL/JitIL_LoadStorePaired.cpp
Src/PowerPC/Jit64IL/JitIL_Paired.cpp
Src/PowerPC/Jit64IL/JitIL_SystemRegisters.cpp
Src/PowerPC/Jit64IL/JitIL_Tables.cpp
Src/PowerPC/Jit64/Jit64_Tables.cpp
Src/PowerPC/Jit64/JitAsm.cpp
Src/PowerPC/Jit64/Jit_Branch.cpp
Src/PowerPC/Jit64/Jit.cpp
Src/PowerPC/Jit64/Jit_FloatingPoint.cpp
Src/PowerPC/Jit64/Jit_Integer.cpp
Src/PowerPC/Jit64/Jit_LoadStore.cpp
Src/PowerPC/Jit64/Jit_LoadStoreFloating.cpp
Src/PowerPC/Jit64/Jit_LoadStorePaired.cpp
Src/PowerPC/Jit64/Jit_Paired.cpp
Src/PowerPC/Jit64/JitRegCache.cpp
Src/PowerPC/Jit64/Jit_SystemRegisters.cpp
Src/PowerPC/JitCommon/JitAsmCommon.cpp
Src/PowerPC/JitCommon/JitBackpatch.cpp
Src/PowerPC/JitCommon/JitBase.cpp
Src/PowerPC/JitCommon/JitCache.cpp
Src/PowerPC/JitCommon/Jit_Util.cpp)
if(WIN32)
set(SRCS ${SRCS} Src/HW/BBA-TAP/TAP_Win32.cpp Src/stdafx.cpp)
elseif(APPLE)
set(SRCS ${SRCS} Src/HW/BBA-TAP/TAP_Apple.cpp)
elseif(UNIX)
set(SRCS ${SRCS} Src/HW/BBA-TAP/TAP_Unix.cpp)
endif()
add_library(core STATIC ${SRCS})
target_link_libraries(core bdisasm inputcommon lua sfml-network wiiuse)

View File

@ -0,0 +1,25 @@
set(SRCS Src/assemble.cpp
Src/disassemble.cpp
Src/DSPAccelerator.cpp
Src/DSPIntCCUtil.cpp
Src/DSPIntExtOps.cpp
Src/DSPHWInterface.cpp
Src/DSPMemoryMap.cpp
Src/DSPStacks.cpp
Src/DSPAnalyzer.cpp
Src/DspIntArithmetic.cpp
Src/DspIntBranch.cpp
Src/DspIntLoadStore.cpp
Src/DspIntMisc.cpp
Src/DspIntMultiplier.cpp
Src/DSPEmitter.cpp
Src/DSPCodeUtil.cpp
Src/LabelMap.cpp
Src/DSPInterpreter.cpp
Src/DSPCore.cpp
Src/DSPTables.cpp
Src/Jit/DSPJitExtOps.cpp
Src/Jit/DSPJitUtil.cpp
Src/Jit/DSPJitMisc.cpp)
add_library(dspcore STATIC ${SRCS})

View File

@ -0,0 +1,5 @@
set(SRCS Src/CodeView.cpp
Src/DebuggerUIUtil.cpp
Src/MemoryView.cpp)
add_library(debugger_ui_util STATIC ${SRCS})

View File

@ -0,0 +1,13 @@
set(SRCS Src/BreakpointDlg.cpp
Src/BreakpointView.cpp
Src/BreakpointWindow.cpp
Src/CodeWindow.cpp
Src/CodeWindowFunctions.cpp
Src/JitWindow.cpp
Src/MemoryCheckDlg.cpp
Src/MemoryWindow.cpp
Src/RegisterView.cpp
Src/RegisterWindow.cpp)
add_library(debwx STATIC ${SRCS})
target_link_libraries(debwx common debugger_ui_util)

View File

@ -0,0 +1,25 @@
set(SRCS Src/BannerLoader.cpp
Src/BannerLoaderGC.cpp
Src/BannerLoaderWii.cpp
Src/Blob.cpp
Src/CompressedBlob.cpp
Src/DiscScrubber.cpp
Src/DriveBlob.cpp
Src/FileBlob.cpp
Src/FileHandlerARC.cpp
Src/FileMonitor.cpp
Src/Filesystem.cpp
Src/FileSystemGCWii.cpp
Src/NANDContentLoader.cpp
Src/VolumeCommon.cpp
Src/VolumeCreator.cpp
Src/VolumeDirectory.cpp
Src/VolumeGC.cpp
Src/VolumeWad.cpp
Src/VolumeWiiCrypted.cpp
Src/WiiWad.cpp
Src/AES/aes_cbc.c
Src/AES/aes_core.c)
add_library(discio STATIC ${SRCS})
target_link_libraries(discio common)

View File

@ -0,0 +1,79 @@
set(SRCS Src/BootManager.cpp)
set(LIBS core
lzo2
discio
bdisasm
inputcommon
common
lua
z
sfml-network)
if(wxWidgets_FOUND)
set(MEMCARDSRCS Src/MemcardManager.cpp
Src/MemoryCards/GCMemcard.cpp
Src/WxUtils.cpp)
set(SRCS ${SRCS}
Src/AboutDolphin.cpp
Src/ARCodeAddEdit.cpp
Src/CheatsWindow.cpp
Src/ConfigMain.cpp
Src/Frame.cpp
Src/FrameAui.cpp
Src/FrameTools.cpp
Src/GameListCtrl.cpp
Src/GeckoCodeDiag.cpp
Src/HotkeyDlg.cpp
Src/InputConfigDiag.cpp
Src/InputConfigDiagBitmaps.cpp
Src/ISOFile.cpp
Src/ISOProperties.cpp
Src/LogWindow.cpp
Src/LuaWindow.cpp
Src/Main.cpp
Src/NetPlay.cpp
Src/NetPlayClient.cpp
Src/NetPlayServer.cpp
Src/NetWindow.cpp
Src/PatchAddEdit.cpp
Src/WiimoteConfigDiag.cpp
Src/MemoryCards/WiiSaveCrypted.cpp)
set(WXLIBS debwx
debugger_ui_util
inputuicommon
memcard
${wxWidgets_LIBRARIES})
else(wxWidgets_FOUND)
set(SRCS ${SRCS}
Src/MainNoGUI.cpp
Src/cmdline.c)
endif()
if(WIN32)
set(SRCS ${SRCS} Src/stdafx.cpp)
elseif(APPLE AND NOT wxWidgets_FOUND)
# TODO
elseif(APPLE AND wxWidgets_FOUND)
# TODO
else()
set(SRCS ${SRCS} Src/X11Utils.cpp)
endif()
set(LIBS ${LIBS} SDL)
set(EXEGUI dolphin-emu)
set(EXENOGUI dolphin-emu-nogui)
if(wxWidgets_FOUND)
add_library(memcard STATIC ${MEMCARDSRCS})
add_executable(${EXEGUI} ${SRCS})
target_link_libraries(${EXEGUI} ${LIBS} ${WXLIBS})
install(TARGETS ${EXEGUI} RUNTIME DESTINATION bin) # TODO: Move to root dir?
else()
add_executable(${EXENOGUI} ${SRCS})
target_link_libraries(${EXENOGUI} ${LIBS})
install(TARGETS ${EXENOGUI} RUNTIME DESTINATION bin) # TODO: Move to root dir?
endif()

View File

@ -0,0 +1,26 @@
set(SRCS Src/ControllerEmu.cpp
Src/InputConfig.cpp
#Src/UDPWiimote.cpp
#Src/UDPWrapper.cpp
Src/ControllerInterface/ControllerInterface.cpp)
if(WIN32)
set(SRCS ${SRCS}
Src/ControllerInterface/DInput/DInput.cpp
Src/ControllerInterface/DInput/DInputJoystick.cpp
Src/ControllerInterface/DInput/DInputKeyboardMouse.cpp
Src/ControllerInterface/SDL/SDL.cpp
Src/ControllerInterface/XInput/XInput.cpp)
elseif(APPLE)
set(SRCS ${SRCS}
Src/ControllerInterface/OSX/OSX.mm
Src/ControllerInterface/OSX/OSXKeyboard.mm
Src/ControllerInterface/OSX/OSXMouse.mm
Src/ControllerInterface/SDL/SDL.cpp)
elseif(X11_FOUND)
set(SRCS ${SRCS}
Src/ControllerInterface/SDL/SDL.cpp
Src/ControllerInterface/Xlib/Xlib.cpp)
endif()
add_library(inputcommon ${SRCS})

View File

@ -0,0 +1,4 @@
set(SRCS Src/WXInputBase.cpp)
add_library(inputuicommon ${SRCS})
target_link_libraries(inputuicommon inputcommon)

View File

@ -0,0 +1,41 @@
set(SRCS Src/BPMemory.cpp
Src/BPStructs.cpp
Src/CommandProcessor.cpp
Src/CPMemory.cpp
Src/DLCache.cpp
Src/Fifo.cpp
Src/HiresTextures.cpp
Src/ImageWrite.cpp
Src/IndexGenerator.cpp
Src/memcpy_amd.cpp
Src/OnScreenDisplay.cpp
Src/OpcodeDecoding.cpp
Src/PixelEngine.cpp
Src/PixelShaderGen.cpp
Src/PixelShaderManager.cpp
Src/Profiler.cpp
Src/Statistics.cpp
Src/TextureCacheBase.cpp
Src/TextureConversionShader.cpp
Src/TextureDecoder.cpp
Src/VertexLoader.cpp
Src/VertexLoaderManager.cpp
Src/VertexLoader_Color.cpp
Src/VertexLoader_Normal.cpp
Src/VertexLoader_Position.cpp
Src/VertexLoader_TextCoord.cpp
Src/VertexManagerBase.cpp
Src/VertexShaderGen.cpp
Src/VertexShaderManager.cpp
Src/VideoConfig.cpp
Src/VideoState.cpp
Src/XFBConvert.cpp
Src/XFMemory.cpp
Src/XFStructs.cpp)
# TODO?
if(OPENCL_FOUND)
set(SRCS ${SRCS} Src/OpenCL/OCLTextureDecoder.cpp)
endif(OPENCL_FOUND)
add_library(videocommon STATIC ${SRCS})

View File

@ -0,0 +1,4 @@
add_subdirectory(Plugin_DSP_HLE)
add_subdirectory(Plugin_DSP_LLE)
add_subdirectory(Plugin_VideoOGL)
# TODO: Add other plugins here!

View File

@ -0,0 +1,24 @@
set(SRCS
Src/DSPHandler.cpp
Src/MailHandler.cpp
Src/HLEMixer.cpp
Src/main.cpp
Src/Config.cpp
Src/UCodes/UCode_AX.cpp
Src/UCodes/UCode_AXWii.cpp
Src/UCodes/UCode_CARD.cpp
Src/UCodes/UCode_InitAudioSystem.cpp
Src/UCodes/UCode_ROM.cpp
Src/UCodes/UCodes.cpp
Src/UCodes/UCode_GBA.cpp
Src/UCodes/UCode_Zelda.cpp
Src/UCodes/UCode_Zelda_ADPCM.cpp
Src/UCodes/UCode_Zelda_Voice.cpp
Src/UCodes/UCode_Zelda_Synth.cpp)
if(wxWidgets_FOUND)
set(SRCS ${SRCS} Src/ConfigDlg.cpp)
endif(wxWidgets_FOUND)
add_library(Plugin_DSP_HLE SHARED ${SRCS})
target_link_libraries(Plugin_DSP_HLE common audiocommon)

View File

@ -0,0 +1,22 @@
set(SRCS
Src/Config.cpp
Src/DSPDebugInterface.cpp
Src/DSPHost.cpp
Src/DSPSymbols.cpp
Src/Globals.cpp
Src/main.cpp
Src/Tools.cpp)
set(LIBS dspcore audiocommon common)
if(wxWidgets_FOUND)
set(SRCS
${SRCS}
Src/DSPConfigDlgLLE.cpp
Src/Debugger/DSPDebugWindow.cpp
Src/Debugger/DSPRegisterView.cpp)
set(LIBS ${LIBS} debugger_ui_util)
endif(wxWidgets_FOUND)
add_library(Plugin_DSP_LLE SHARED ${SRCS})
target_link_libraries(Plugin_DSP_LLE ${LIBS})

View File

@ -0,0 +1,38 @@
set(SRCS Src/BPFunctions.cpp
Src/FramebufferManager.cpp
Src/GLUtil.cpp
Src/main.cpp
Src/NativeVertexFormat.cpp
Src/PixelShaderCache.cpp
Src/PostProcessing.cpp
Src/RasterFont.cpp
Src/Render.cpp
Src/TextureCache.cpp
Src/TextureConverter.cpp
Src/VertexShaderCache.cpp
Src/VertexManager.cpp
Src/XFB.cpp)
set(LIBS videocommon
GLEW
SOIL
common
Cg
CgGL)
if(wxWidgets_FOUND)
set(SRCS ${SRCS}
Src/GUI/ConfigDlg.cpp
Src/Debugger/Debugger.cpp)
endif(wxWidgets_FOUND)
if(APPLE AND NOT wxWidgets_FOUND)
set(SRCS ${SRCS} cocoaGL.m)
elif(WIN32)
set(SRCS ${SRCS} OS/Win32.cpp)
#elif(NOT APPLE AND OPENCL_FOUND) # TODO: Add OpenCL support
# set(LIBS ${LIBS} OpenCL)
endif()
add_library(Plugin_VideoOGL SHARED ${SRCS})
target_link_libraries(Plugin_VideoOGL ${LIBS})