mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-02-16 02:20:42 +00:00
Modernize CMake build script
This commit is contained in:
@@ -52,55 +52,6 @@ endif()
|
||||
SET(MOONLIGHT_COMMON_INCLUDE_DIR ./third_party/moonlight-common-c/src)
|
||||
SET(GAMESTREAM_INCLUDE_DIR ./libgamestream)
|
||||
|
||||
if(NOT AMLOGIC_FOUND AND NOT BROADCOM_FOUND AND NOT FREESCALE_FOUND AND NOT SOFTWARE_FOUND)
|
||||
message(FATAL_ERROR "No video output available")
|
||||
endif()
|
||||
|
||||
if (SOFTWARE_FOUND)
|
||||
list(APPEND SRC_LIST ./src/video/ffmpeg.c)
|
||||
if (SDL_FOUND)
|
||||
list(APPEND SRC_LIST ./src/video/sdl.c ./src/audio/sdl.c ./src/input/sdl.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_SDL)
|
||||
list(APPEND MOONLIGHT_OPTIONS SDL)
|
||||
endif()
|
||||
if (X11_FOUND)
|
||||
list(APPEND SRC_LIST ./src/video/x11.c ./src/video/egl.c ./src/input/x11.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_X11)
|
||||
list(APPEND MOONLIGHT_OPTIONS X11)
|
||||
endif()
|
||||
if(VDPAU_ACCEL_FOUND)
|
||||
list(APPEND SRC_LIST ./src/video/ffmpeg_vdpau.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_VDPAU)
|
||||
list(APPEND MOONLIGHT_OPTIONS VDPAU)
|
||||
endif()
|
||||
if(VA_ACCEL_FOUND)
|
||||
list(APPEND SRC_LIST ./src/video/ffmpeg_vaapi.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_VAAPI)
|
||||
list(APPEND MOONLIGHT_OPTIONS VAAPI)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (AMLOGIC_FOUND OR BROADCOM_FOUND OR FREESCALE_FOUND OR X11_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_EMBEDDED)
|
||||
list(APPEND MOONLIGHT_OPTIONS EMBEDDED)
|
||||
endif()
|
||||
|
||||
if (ALSA_FOUND)
|
||||
list(APPEND SRC_LIST ./src/audio/alsa.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_ALSA)
|
||||
list(APPEND MOONLIGHT_OPTIONS ALSA)
|
||||
endif()
|
||||
|
||||
if (PULSE_FOUND)
|
||||
list(APPEND SRC_LIST ./src/audio/pulse.c)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_PULSE)
|
||||
list(APPEND MOONLIGHT_OPTIONS PULSE)
|
||||
endif()
|
||||
|
||||
if (CEC_FOUND)
|
||||
list(APPEND SRC_LIST ./src/input/cec.c)
|
||||
endif()
|
||||
|
||||
include_directories("${PROJECT_BINARY_DIR}")
|
||||
|
||||
add_subdirectory(libgamestream)
|
||||
@@ -111,6 +62,7 @@ target_link_libraries(moonlight gamestream)
|
||||
if (CEC_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_LIBCEC)
|
||||
list(APPEND MOONLIGHT_OPTIONS CEC)
|
||||
target_sources(moonlight PRIVATE ./src/input/cec.c)
|
||||
target_include_directories(moonlight PRIVATE ./third_party/libcec ${CEC_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${CEC_LIBRARIES})
|
||||
endif()
|
||||
@@ -145,39 +97,65 @@ if(FREESCALE_FOUND)
|
||||
install(TARGETS moonlight-imx DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
if(SDL_FOUND)
|
||||
target_include_directories(moonlight PRIVATE ${SDL_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${SDL_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(X11_FOUND)
|
||||
target_include_directories(moonlight PRIVATE ${XLIB_INCLUDE_DIRS} ${EGL_INCLUDE_DIRS} ${GLES_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${XLIB_LIBRARIES} ${EGL_LIBRARIES} ${GLES_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if (SOFTWARE_FOUND)
|
||||
target_sources(moonlight PRIVATE ./src/video/ffmpeg.c)
|
||||
target_include_directories(moonlight PRIVATE ${AVCODEC_INCLUDE_DIRS} ${AVUTIL_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})
|
||||
if(SDL_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_SDL)
|
||||
list(APPEND MOONLIGHT_OPTIONS SDL)
|
||||
target_sources(moonlight PRIVATE ./src/video/sdl.c ./src/audio/sdl.c ./src/input/sdl.c)
|
||||
target_include_directories(moonlight PRIVATE ${SDL_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${SDL_LIBRARIES})
|
||||
endif()
|
||||
if(X11_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_X11)
|
||||
list(APPEND MOONLIGHT_OPTIONS X11)
|
||||
target_sources(moonlight PRIVATE ./src/video/x11.c ./src/video/egl.c ./src/input/x11.c)
|
||||
target_include_directories(moonlight PRIVATE ${XLIB_INCLUDE_DIRS} ${EGL_INCLUDE_DIRS} ${GLES_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${XLIB_LIBRARIES} ${EGL_LIBRARIES} ${GLES_LIBRARIES})
|
||||
endif()
|
||||
if(VDPAU_ACCEL_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_VDPAU)
|
||||
list(APPEND MOONLIGHT_OPTIONS VDPAU)
|
||||
target_sources(moonlight PRIVATE ./src/video/ffmpeg_vdpau.c)
|
||||
target_include_directories(moonlight PRIVATE ${VDPAU_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${VDPAU_LIBRARIES})
|
||||
endif()
|
||||
if(VA_ACCEL_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_VAAPI)
|
||||
list(APPEND MOONLIGHT_OPTIONS VAAPI)
|
||||
target_sources(moonlight PRIVATE ./src/video/ffmpeg_vaapi.c)
|
||||
target_include_directories(moonlight PRIVATE ${LIBVA_INCLUDE_DIRS} ${LIBVA_X11_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${LIBVA_LIBRARIES} ${LIBVA_X11_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ALSA_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_ALSA)
|
||||
list(APPEND MOONLIGHT_OPTIONS ALSA)
|
||||
target_sources(moonlight PRIVATE ./src/audio/alsa.c)
|
||||
target_include_directories(moonlight PRIVATE ${ALSA_INCLUDE_DIR})
|
||||
target_link_libraries(moonlight ${ALSA_LIBRARY})
|
||||
endif()
|
||||
|
||||
if (PULSE_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_PULSE)
|
||||
list(APPEND MOONLIGHT_OPTIONS PULSE)
|
||||
target_sources(moonlight PRIVATE ./src/audio/pulse.c)
|
||||
target_include_directories(moonlight PRIVATE ${PULSE_INCLUDE_DIRS})
|
||||
target_link_libraries(moonlight ${PULSE_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if (AMLOGIC_FOUND OR BROADCOM_FOUND OR FREESCALE_FOUND OR X11_FOUND)
|
||||
list(APPEND MOONLIGHT_DEFINITIONS HAVE_EMBEDDED)
|
||||
list(APPEND MOONLIGHT_OPTIONS EMBEDDED)
|
||||
endif()
|
||||
|
||||
if(NOT AMLOGIC_FOUND AND NOT BROADCOM_FOUND AND NOT FREESCALE_FOUND AND NOT SOFTWARE_FOUND)
|
||||
message(FATAL_ERROR "No video output available")
|
||||
endif()
|
||||
|
||||
configure_file("./src/configuration.h.in" "${PROJECT_BINARY_DIR}/configuration.h")
|
||||
|
||||
set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS})
|
||||
|
||||
Reference in New Issue
Block a user