Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,15 @@ jobs:
cache: npm
cache-dependency-path: package-lock.json

- name: Setup .NET for DualSense sidecar
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'

- name: Build self-contained DualSense sidecar
shell: pwsh
run: .\scripts\build-ds5-sidecar.ps1

- name: Build Web UI
shell: pwsh
run: |
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,7 @@ src_assets/common/assets/web/welcome.html
src_assets/common/assets/web/dist/
# Local dev scripts
build.sh

# Sunshine DualSense .NET build outputs
tools/sunshine-ds5-sidecar/bin/
tools/sunshine-ds5-sidecar/obj/
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,7 @@
path = src_assets/common/sunshine-control-panel
url = https://github.com/qiin2333/sunshine-control-panel.git
branch = main
[submodule "third-party/moonlight-audio-haptics"]
path = third-party/moonlight-audio-haptics
url = https://github.com/AlkaidLab/moonlight-audio-haptics.git
branch = codex/authored-stereo-ir-v2
3 changes: 3 additions & 0 deletions cmake/compile_definitions/common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ set(SUNSHINE_TARGET_FILES
"${CMAKE_SOURCE_DIR}/third-party/nanors/deps/obl/oblas_lite.c"
"${CMAKE_SOURCE_DIR}/third-party/nanors/rs.c"
"${CMAKE_SOURCE_DIR}/third-party/tray/src/tray.h"
"${CMAKE_SOURCE_DIR}/src/haptics/authored_ir.cpp"
"${CMAKE_SOURCE_DIR}/src/haptics/authored_ir.h"
"${CMAKE_SOURCE_DIR}/src/hdr/client_display_capabilities.cpp"
"${CMAKE_SOURCE_DIR}/src/hdr/client_display_capabilities.h"
"${CMAKE_SOURCE_DIR}/src/hdr/session_target.cpp"
Expand Down Expand Up @@ -260,6 +262,7 @@ list(APPEND SUNSHINE_EXTERNAL_LIBRARIES
${MINIUPNP_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
enet
moonlight::haptics
nlohmann_json::nlohmann_json
opus
${FFMPEG_LIBRARIES}
Expand Down
2 changes: 2 additions & 0 deletions cmake/compile_definitions/windows.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ set(PLATFORM_TARGET_FILES
"${CMAKE_SOURCE_DIR}/src/platform/windows/win_dark_mode.h"
"${CMAKE_SOURCE_DIR}/src/platform/windows/win_dark_mode.cpp"
"${CMAKE_SOURCE_DIR}/src/platform/windows/input.cpp"
"${CMAKE_SOURCE_DIR}/src/platform/windows/ds5/ds5_sidecar_client.h"
"${CMAKE_SOURCE_DIR}/src/platform/windows/ds5/ds5_sidecar_client.cpp"
"${CMAKE_SOURCE_DIR}/src/platform/windows/virtual_mouse.h"
"${CMAKE_SOURCE_DIR}/src/platform/windows/virtual_mouse.cpp"
"${CMAKE_SOURCE_DIR}/src/platform/windows/dsu_server.h"
Expand Down
7 changes: 6 additions & 1 deletion cmake/dependencies/common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ include(dependencies/Boost_Sunshine)
set(ENET_NO_INSTALL ON CACHE BOOL "Don't install any libraries built for enet")
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c/enet")

# Authored haptics analysis belongs to the unprivileged Sunshine process. The
# elevated DualSense sidecar and driver remain independent of this SDK.
set(MOONLIGHT_HAPTICS_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/moonlight-audio-haptics" EXCLUDE_FROM_ALL)
Comment thread
qiin2333 marked this conversation as resolved.
Resolved

# web server
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/Simple-Web-Server")

Expand Down Expand Up @@ -88,4 +93,4 @@ elseif(UNIX)
else()
include("${CMAKE_MODULE_PATH}/dependencies/linux.cmake")
endif()
endif()
endif()
13 changes: 13 additions & 0 deletions cmake/packaging/windows.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,19 @@ install(TARGETS sunshinesvc RUNTIME DESTINATION "tools" COMPONENT application)
install(TARGETS qiin-tabtip RUNTIME DESTINATION "tools" COMPONENT application)
install(TARGETS stylus-input-probe RUNTIME DESTINATION "tools" COMPONENT application)

# The optional DualSense runtime is first-party and self-contained. HIDMaestro
# itself is downloaded and digest-verified by the Control Panel when the user
# opts in, so it is intentionally absent from this directory.
set(DS5_SIDECAR_RUNTIME_DIR "${CMAKE_BINARY_DIR}/ds5-sidecar-runtime" CACHE PATH
"Path to the published self-contained Sunshine DualSense sidecar runtime")
if(EXISTS "${DS5_SIDECAR_RUNTIME_DIR}/Sunshine.Ds5Sidecar.exe")
install(DIRECTORY "${DS5_SIDECAR_RUNTIME_DIR}/"
DESTINATION "tools/sunshine-ds5-sidecar"
COMPONENT application)
else()
message(STATUS "Self-contained DualSense sidecar was not published; optional component install will be unavailable")
endif()

# Shared tool: nefconw.exe (used by VDD and vmouse install scripts)
install(FILES "${NEFCON_DRIVER_DIR}/nefconw.exe"
DESTINATION "tools"
Expand Down
Loading
Loading