2019-12-03 19:23:33 +00:00
|
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
|
|
|
|
project(Sunshine)
|
|
|
|
# set up include-directories
|
|
|
|
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
2019-12-08 17:55:58 +00:00
|
|
|
|
2020-01-10 21:19:50 +00:00
|
|
|
add_subdirectory(Simple-Web-Server)
|
|
|
|
add_subdirectory(moonlight-common-c/enet)
|
|
|
|
|
2020-01-01 17:47:34 +00:00
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
find_package(OpenSSL REQUIRED)
|
2020-01-03 19:25:21 +00:00
|
|
|
find_package(FFmpeg REQUIRED)
|
2019-12-08 17:55:58 +00:00
|
|
|
|
2020-01-01 17:47:34 +00:00
|
|
|
if(WIN32)
|
|
|
|
set(PLATFORM_TARGET_FILES
|
2020-01-12 16:54:43 +00:00
|
|
|
sunshine/platform/windows.cpp
|
2020-01-15 17:31:28 +00:00
|
|
|
sunshine/platform/windows_dxgi.cpp
|
|
|
|
sunshine/platform/windows_wasapi.cpp)
|
2020-01-01 17:47:34 +00:00
|
|
|
set(PLATFORM_LIBRARIES
|
|
|
|
winmm
|
2020-01-15 17:31:28 +00:00
|
|
|
ksuser
|
2020-01-01 17:47:34 +00:00
|
|
|
wsock32
|
2020-01-07 22:15:55 +00:00
|
|
|
ws2_32
|
2020-01-15 17:31:28 +00:00
|
|
|
windowsapp
|
2020-01-07 22:15:55 +00:00
|
|
|
d3d11 dxgi)
|
2020-01-01 17:47:34 +00:00
|
|
|
else()
|
2020-01-17 15:23:20 +00:00
|
|
|
set(Boost_USE_STATIC_LIBS ON)
|
2020-01-01 17:47:34 +00:00
|
|
|
find_package(X11 REQUIRED)
|
|
|
|
set(PLATFORM_TARGET_FILES
|
|
|
|
sunshine/platform/linux.cpp
|
|
|
|
sunshine/platform/linux_evdev.cpp)
|
|
|
|
|
|
|
|
set(PLATFORM_LIBRARIES
|
|
|
|
Xfixes
|
|
|
|
Xtst
|
|
|
|
xcb
|
|
|
|
xcb-shm
|
|
|
|
xcb-xfixes
|
|
|
|
${X11_LIBRARIES}
|
|
|
|
evdev
|
|
|
|
pulse
|
2020-01-03 19:25:21 +00:00
|
|
|
pulse-simple
|
|
|
|
)
|
2020-01-01 17:47:34 +00:00
|
|
|
|
|
|
|
set(PLATFORM_INCLUDE_DIRS
|
|
|
|
${X11_INCLUDE_DIR}
|
|
|
|
/usr/include/libevdev-1.0)
|
|
|
|
endif()
|
2020-01-17 15:23:20 +00:00
|
|
|
|
|
|
|
find_package(Boost COMPONENTS log filesystem REQUIRED)
|
|
|
|
|
2019-12-03 19:23:33 +00:00
|
|
|
set(SUNSHINE_TARGET_FILES
|
|
|
|
moonlight-common-c/reedsolomon/rs.c
|
|
|
|
moonlight-common-c/reedsolomon/rs.h
|
|
|
|
moonlight-common-c/src/Input.h
|
|
|
|
moonlight-common-c/src/Rtsp.h
|
|
|
|
moonlight-common-c/src/RtspParser.c
|
|
|
|
moonlight-common-c/src/Video.h
|
2019-12-08 17:55:58 +00:00
|
|
|
sunshine/utility.h
|
|
|
|
sunshine/uuid.h
|
|
|
|
sunshine/config.h
|
|
|
|
sunshine/config.cpp
|
|
|
|
sunshine/main.cpp
|
2019-12-22 22:34:12 +00:00
|
|
|
sunshine/main.h
|
2019-12-08 17:55:58 +00:00
|
|
|
sunshine/crypto.cpp
|
|
|
|
sunshine/crypto.h
|
|
|
|
sunshine/nvhttp.cpp
|
|
|
|
sunshine/nvhttp.h
|
|
|
|
sunshine/stream.cpp
|
|
|
|
sunshine/stream.h
|
|
|
|
sunshine/video.cpp
|
2019-12-14 22:57:04 +00:00
|
|
|
sunshine/video.h
|
|
|
|
sunshine/thread_safe.h
|
2019-12-08 17:55:58 +00:00
|
|
|
sunshine/input.cpp
|
|
|
|
sunshine/input.h
|
|
|
|
sunshine/audio.cpp
|
|
|
|
sunshine/audio.h
|
|
|
|
sunshine/platform/common.h
|
2019-12-14 22:57:04 +00:00
|
|
|
sunshine/process.cpp
|
|
|
|
sunshine/process.h
|
2019-12-27 15:04:18 +00:00
|
|
|
sunshine/network.cpp
|
|
|
|
sunshine/network.h
|
2019-12-22 22:34:12 +00:00
|
|
|
sunshine/move_by_copy.h
|
|
|
|
sunshine/task_pool.h
|
|
|
|
sunshine/thread_pool.h
|
2019-12-08 17:55:58 +00:00
|
|
|
${PLATFORM_TARGET_FILES})
|
2019-12-03 19:23:33 +00:00
|
|
|
|
|
|
|
include_directories(
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Simple-Web-Server
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/moonlight-common-c/enet/include
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/moonlight-common-c/reedsolomon
|
|
|
|
${FFMPEG_INCLUDE_DIRS}
|
2019-12-08 17:55:58 +00:00
|
|
|
${PLATFORM_INCLUDE_DIRS}
|
2019-12-03 19:23:33 +00:00
|
|
|
)
|
|
|
|
|
2019-12-04 21:58:31 +00:00
|
|
|
list(APPEND SUNSHINE_COMPILE_OPTIONS -fPIC -Wall -Wno-missing-braces -Wno-maybe-uninitialized -Wno-sign-compare)
|
2020-01-17 14:44:47 +00:00
|
|
|
string(TOUPPER "x${CMAKE_BUILD_TYPE}" BUILD_TYPE)
|
|
|
|
if("${BUILD_TYPE}" STREQUAL "XDEBUG")
|
2020-01-03 19:25:21 +00:00
|
|
|
list(APPEND SUNSHINE_COMPILE_OPTIONS -O0 -pedantic -ggdb3)
|
|
|
|
if(WIN32)
|
|
|
|
set_source_files_properties(sunshine/nvhttp.cpp PROPERTIES COMPILE_FLAGS -O2)
|
|
|
|
endif()
|
2019-12-08 17:55:58 +00:00
|
|
|
else()
|
2019-12-03 19:23:33 +00:00
|
|
|
add_definitions(-DNDEBUG)
|
|
|
|
list(APPEND SUNSHINE_COMPILE_OPTIONS -O3)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
list(APPEND SUNSHINE_EXTERNAL_LIBRARIES
|
|
|
|
${CMAKE_THREAD_LIBS_INIT}
|
|
|
|
${OPENSSL_LIBRARIES}
|
|
|
|
enet
|
2019-12-05 23:13:16 +00:00
|
|
|
opus
|
2019-12-08 17:55:58 +00:00
|
|
|
${FFMPEG_LIBRARIES}
|
2020-01-01 17:47:34 +00:00
|
|
|
${Boost_LIBRARIES}
|
2019-12-08 17:55:58 +00:00
|
|
|
${PLATFORM_LIBRARIES})
|
2019-12-03 19:23:33 +00:00
|
|
|
|
|
|
|
add_definitions(-DSUNSHINE_ASSETS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/assets")
|
|
|
|
add_executable(sunshine ${SUNSHINE_TARGET_FILES})
|
|
|
|
target_link_libraries(sunshine ${SUNSHINE_EXTERNAL_LIBRARIES})
|
|
|
|
target_compile_definitions(sunshine PUBLIC ${SUNSHINE_DEFINITIONS})
|
|
|
|
set_target_properties(sunshine PROPERTIES CXX_STANDARD 17)
|
|
|
|
|
|
|
|
target_compile_options(sunshine PRIVATE ${SUNSHINE_COMPILE_OPTIONS})
|