diff --git a/CMakeLists.txt b/CMakeLists.txt index 81c1304ad6..d8aa57e468 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -450,7 +450,7 @@ if(ANDROID) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) -elseif(NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES OpenBSD) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBS rt) endif() @@ -898,6 +898,10 @@ if(NOT ANDROID) message(STATUS "Using static hidapi-hidraw from Externals") add_subdirectory(Externals/hidapi/linux) list(APPEND LIBS hidapi-hidraw udev) + elseif(MSVC) + message(STATUS "Using static hidapi-hid from Externals") + add_subdirectory(Externals/hidapi/windows) + list(APPEND LIBS hidapi-hid) else() message(STATUS "Using static hidapi-libusb from Externals") add_subdirectory(Externals/hidapi/libusb) diff --git a/Externals/hidapi/windows/CMakeLists.txt b/Externals/hidapi/windows/CMakeLists.txt new file mode 100644 index 0000000000..3b0b4ce5fa --- /dev/null +++ b/Externals/hidapi/windows/CMakeLists.txt @@ -0,0 +1 @@ +add_library(hidapi-hid hid.c) diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index 3334c83f34..bceeec8e45 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -33,8 +33,17 @@ endif(PULSEAUDIO_FOUND) if(WIN32) set(SRCS ${SRCS} XAudio2Stream.cpp) + + add_dolphin_library(audiocommon_xaudio27 "XAudio2_7Stream.cpp" "${LIBS}") + target_include_directories(audiocommon_xaudio27 PRIVATE + ${PROJECT_SOURCE_DIR}/Externals + ${PROJECT_SOURCE_DIR}/Externals/XAudio2_7 + ) + list(APPEND LIBS audiocommon_xaudio27) + elseif(APPLE) set(SRCS ${SRCS} CoreAudioSoundStream.cpp) endif() + add_dolphin_library(audiocommon "${SRCS}" "${LIBS}") diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 0a99131bc4..2a5ff1d4d8 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -37,6 +37,9 @@ set(SRCS Analytics.cpp if(ANDROID) set(SRCS ${SRCS} Logging/ConsoleListenerDroid.cpp) +elseif(WIN32) + set(SRCS ${SRCS} + Logging/ConsoleListenerWin.cpp) else() set(SRCS ${SRCS} Logging/ConsoleListenerNix.cpp) @@ -98,4 +101,8 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") endif() add_dolphin_library(common "${SRCS}" "${LIBS}") -add_executable(traversal_server TraversalServer.cpp) + +if(UNIX) + # Posix networking code needs to be fixed for Windows + add_executable(traversal_server TraversalServer.cpp) +endif() diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index acf3d7766b..de5373c70c 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -274,6 +274,12 @@ set(LIBS ${LIBS} ${MBEDTLS_LIBRARIES}) if(WIN32) set(SRCS ${SRCS} HW/EXI/BBA-TAP/TAP_Win32.cpp HW/WiimoteReal/IOWin.cpp) + list(APPEND LIBS + videod3d + videod3d12 + setupapi.lib + iphlpapi.lib + ) elseif(APPLE) set(SRCS ${SRCS} HW/EXI/BBA-TAP/TAP_Apple.cpp HW/WiimoteReal/IOdarwin.mm) set(LIBS ${LIBS} diff --git a/Source/Core/DolphinWX/CMakeLists.txt b/Source/Core/DolphinWX/CMakeLists.txt index 45f3ce542e..3c9efc81b2 100644 --- a/Source/Core/DolphinWX/CMakeLists.txt +++ b/Source/Core/DolphinWX/CMakeLists.txt @@ -212,6 +212,10 @@ if(wxWidgets_FOUND) install(DIRECTORY ${BUNDLE_PATH} DESTINATION /Applications USE_SOURCE_PERMISSIONS ) + elseif(WIN32) + set_target_properties(${DOLPHIN_EXE} PROPERTIES + WIN32_EXECUTABLE ON + ) else() install(TARGETS ${DOLPHIN_EXE} RUNTIME DESTINATION ${bindir}) endif() diff --git a/Source/Core/VideoBackends/CMakeLists.txt b/Source/Core/VideoBackends/CMakeLists.txt index 82f2b0c3f3..c0ec4f0eee 100644 --- a/Source/Core/VideoBackends/CMakeLists.txt +++ b/Source/Core/VideoBackends/CMakeLists.txt @@ -1,7 +1,12 @@ add_subdirectory(OGL) add_subdirectory(Null) add_subdirectory(Software) -if(NOT APPLE) -add_subdirectory(Vulkan) + +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + add_subdirectory(D3D) + add_subdirectory(D3D12) +endif() + +if(NOT APPLE) + add_subdirectory(Vulkan) endif() -# TODO: Add other backends here! diff --git a/Source/Core/VideoBackends/D3D/CMakeLists.txt b/Source/Core/VideoBackends/D3D/CMakeLists.txt new file mode 100644 index 0000000000..c6d75950a9 --- /dev/null +++ b/Source/Core/VideoBackends/D3D/CMakeLists.txt @@ -0,0 +1,50 @@ +set(SRCS + BoundingBox.cpp + BoundingBox.h + D3DBase.cpp + D3DBase.h + D3DBlob.cpp + D3DBlob.h + D3DShader.cpp + D3DShader.h + D3DState.cpp + D3DState.h + D3DTexture.cpp + D3DTexture.h + D3DUtil.cpp + D3DUtil.h + FramebufferManager.cpp + FramebufferManager.h + GeometryShaderCache.cpp + GeometryShaderCache.h + main.cpp + NativeVertexFormat.cpp + PerfQuery.cpp + PerfQuery.h + PixelShaderCache.cpp + PixelShaderCache.h + PSTextureEncoder.cpp + PSTextureEncoder.h + Render.cpp + Render.h + Television.cpp + Television.h + TextureCache.cpp + TextureCache.h + TextureEncoder.h + VertexManager.cpp + VertexManager.h + VertexShaderCache.cpp + VertexShaderCache.h + VideoBackend.h + XFBEncoder.cpp + XFBEncoder.h +) + +set(LIBS + videocommon + SOIL + common +) + +add_dolphin_library(videod3d "${SRCS}" "${LIBS}") diff --git a/Source/Core/VideoBackends/D3D12/CMakeLists.txt b/Source/Core/VideoBackends/D3D12/CMakeLists.txt new file mode 100644 index 0000000000..efae294ac3 --- /dev/null +++ b/Source/Core/VideoBackends/D3D12/CMakeLists.txt @@ -0,0 +1,55 @@ +set(SRCS + BoundingBox.cpp + BoundingBox.h + D3DBase.cpp + D3DBase.h + D3DCommandListManager.cpp + D3DCommandListManager.h + D3DDescriptorHeapManager.cpp + D3DDescriptorHeapManager.h + D3DQueuedCommandList.cpp + D3DQueuedCommandList.h + D3DShader.cpp + D3DShader.h + D3DState.cpp + D3DState.h + D3DStreamBuffer.cpp + D3DStreamBuffer.h + D3DTexture.cpp + D3DTexture.h + D3DUtil.cpp + D3DUtil.h + FramebufferManager.cpp + FramebufferManager.h + main.cpp + NativeVertexFormat.cpp + NativeVertexFormat.h + PerfQuery.cpp + PerfQuery.h + PSTextureEncoder.cpp + PSTextureEncoder.h + Render.cpp + Render.h + ShaderCache.cpp + ShaderCache.h + ShaderConstantsManager.cpp + ShaderConstantsManager.h + StaticShaderCache.cpp + StaticShaderCache.h + TextureCache.cpp + TextureCache.h + TextureEncoder.h + VertexManager.cpp + VertexManager.h + VideoBackend.h + XFBEncoder.cpp + XFBEncoder.h +) + +set(LIBS + videocommon + SOIL + common +) + +add_dolphin_library(videod3d12 "${SRCS}" "${LIBS}")