From c6b91498a8ce7095aa214931fc213ffc010383fd Mon Sep 17 00:00:00 2001 From: techyian Date: Fri, 25 Jan 2019 14:12:54 +0000 Subject: [PATCH] libs: added Raspberry Pi SDL support --- CMakeLists.txt | 62 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b6a8290..cc8e50ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -639,25 +639,59 @@ if(BUNDLED_SDL AND BUILD_CLIENT) set(SDL_WITH_GLES "${FEATURE_RENDERER_GLES}") endif() - # ${CMAKE_CURRENT_BINARY_DIR}/libs/sdl2 - # ${PROJECT_BINARY_DIR}/sdl2 - ExternalProject_Add(bundled_sdl - SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/sdl2 - # DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}/sdl2 - # URL https://www.libsdl.org/release/SDL2-2.0.7.tar.gz - BINARY_DIR ${LIBS_BINARYDIR_DIR}/sdl2 - CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} - -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="10.7" - -DVIDEO_OPENGLES=${SDL_WITH_GLES} -DSDL_SHARED=OFF -DSDL_RENDER=OFF -DRENDER_D3D=OFF -DFORCE_STATIC_VCRT=ON - -DCMAKE_INSTALL_PREFIX=${LIBS_BINARYDIR_DIR}/sdl2 - PREFIX ${LIBS_BINARYDIR_DIR}/sdl2 - ) + if(ARM) + #check if we're running on Raspberry Pi + if(EXISTS "/opt/vc/include/bcm_host.h") + set(BCMHOST found) + endif() + + if(DEFINED BCMHOST) + if (FEATURE_RENDERER_GLES) + ExternalProject_Add(bundled_sdl + SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/sdl2 + # DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}/sdl2 + # URL https://www.libsdl.org/release/SDL2-2.0.9.tar.gz + BINARY_DIR ${LIBS_BINARYDIR_DIR}/sdl2 + CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} + -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="10.7" + -DVIDEO_OPENGLES=${SDL_WITH_GLES} -DSDL_SHARED=OFF -DSDL_RENDER=OFF -DRENDER_D3D=OFF -DFORCE_STATIC_VCRT=ON + -DCMAKE_INSTALL_PREFIX=${LIBS_BINARYDIR_DIR}/sdl2 + PREFIX ${LIBS_BINARYDIR_DIR}/sdl2 + CONFIGURE_COMMAND ${CMAKE_CURRENT_LIST_DIR}/sdl2/./configure --host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl --prefix=${LIBS_BINARYDIR_DIR}/sdl2 + ) + else() + ExternalProject_Add(bundled_sdl + SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/sdl2 + # DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}/sdl2 + # URL https://www.libsdl.org/release/SDL2-2.0.9.tar.gz + BINARY_DIR ${LIBS_BINARYDIR_DIR}/sdl2 + CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} + -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="10.7" + -DVIDEO_OPENGLES=${SDL_WITH_GLES} -DSDL_SHARED=OFF -DSDL_RENDER=OFF -DRENDER_D3D=OFF -DFORCE_STATIC_VCRT=ON + -DCMAKE_INSTALL_PREFIX=${LIBS_BINARYDIR_DIR}/sdl2 + PREFIX ${LIBS_BINARYDIR_DIR}/sdl2 + CONFIGURE_COMMAND ${CMAKE_CURRENT_LIST_DIR}/sdl2/./configure --host=armv7l-raspberry-linux-gnueabihf --prefix=${LIBS_BINARYDIR_DIR}/sdl2 + ) + endif() + endif() + else() + ExternalProject_Add(bundled_sdl + SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/sdl2 + # DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}/sdl2 + # URL https://www.libsdl.org/release/SDL2-2.0.9.tar.gz + BINARY_DIR ${LIBS_BINARYDIR_DIR}/sdl2 + CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} + -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="10.7" + -DVIDEO_OPENGLES=${SDL_WITH_GLES} -DSDL_SHARED=OFF -DSDL_RENDER=OFF -DRENDER_D3D=OFF -DFORCE_STATIC_VCRT=ON + -DCMAKE_INSTALL_PREFIX=${LIBS_BINARYDIR_DIR}/sdl2 + PREFIX ${LIBS_BINARYDIR_DIR}/sdl2 + ) + endif() if(CMAKE_SYSTEM MATCHES "Darwin" OR WIN32) set(SDL32_BUNDLED_LIBRARIES optimized "${LIBS_BINARYDIR_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2main${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARYDIR_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2maind${CMAKE_STATIC_LIBRARY_SUFFIX}") endif() set(SDL32_BUNDLED_LIBRARIES ${SDL32_BUNDLED_LIBRARIES} optimized "${LIBS_BINARYDIR_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARYDIR_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2d${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(SDL32_BUNDLED_INCLUDE_DIR "${LIBS_BINARYDIR_DIR}/sdl2/include") set_target_properties(bundled_sdl PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER}) endif()