From ff31dda22f785178a62ae434a0e49f66ddc85b92 Mon Sep 17 00:00:00 2001 From: Iwan Timmer Date: Thu, 30 Nov 2017 20:05:51 +0100 Subject: [PATCH] Modernize CMake build script --- CMakeLists.txt | 96 +++++++++++++++++++------------------------------- 1 file changed, 37 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 682a3b2..3baf8ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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})