79 lines
3.0 KiB
CMake
79 lines
3.0 KiB
CMake
set(SDL_VERSION "2" CACHE STRING "Version of SDL to use (1.2 or 2)")
|
|
|
|
if (SDL_VERSION EQUAL "2")
|
|
include(FindPkgConfig)
|
|
pkg_search_module(SDL2 sdl2)
|
|
if (SDL2_FOUND)
|
|
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS})
|
|
set(SDL_LIBRARY ${SDL2_LIBRARIES})
|
|
set(SDLMAIN_LIBRARY "")
|
|
link_directories(${SDL2_LIBDIR})
|
|
set(SDL_VERSION_DEBIAN "2-2.0-0")
|
|
endif()
|
|
endif()
|
|
|
|
if(SDL_VERSION EQUAL "1.2" OR NOT SDL2_FOUND)
|
|
find_package(SDL 1.2)
|
|
set(SDL_VERSION "1.2" PARENT_SCOPE)
|
|
set(SDL_VERSION_DEBIAN "1.2debian")
|
|
set(USE_PIXMAN ON)
|
|
endif()
|
|
|
|
if (NOT SDL2_FOUND AND NOT SDL_FOUND)
|
|
set(BUILD_SDL OFF PARENT_SCOPE)
|
|
return()
|
|
endif()
|
|
|
|
find_feature(USE_PIXMAN "pixman-1")
|
|
if(USE_PIXMAN)
|
|
add_definitions(-DUSE_PIXMAN)
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libpixman-1.0" PARENT_SCOPE)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
list(APPEND SDL_LIBRARY imm32 version winmm)
|
|
elseif(APPLE)
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit -framework AudioUnit -framework Carbon -framework CoreAudio -framework ForceFeedback -framework IOKit")
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}" PARENT_SCOPE)
|
|
endif()
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libsdl${SDL_VERSION_DEBIAN}" PARENT_SCOPE)
|
|
|
|
file(GLOB PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sdl-*.c)
|
|
set(PLATFORM_LIBRARY ${SDL_LIBRARY} ${SDLMAIN_LIBRARY} ${PIXMAN-1_LIBRARIES})
|
|
include_directories(${CMAKE_SOURCE_DIR}/src/platform/sdl ${PIXMAN-1_INCLUDE_DIRS} ${SDL_INCLUDE_DIR})
|
|
|
|
set(SDL_INCLUDE_DIR "${SDL_INCLUDE_DIR}" PARENT_SCOPE)
|
|
set(SDL_LIBRARY "${SDL_LIBRARY}" PARENT_SCOPE)
|
|
set(SDLMAIN_LIBRARY "${SDLMAIN_LIBRARY}" PARENT_SCOPE)
|
|
|
|
set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/main.c)
|
|
|
|
if(BUILD_RASPI)
|
|
add_definitions(-DBUILD_RASPI)
|
|
set(EGL_MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/egl-sdl.c)
|
|
set(EGL_LIBRARY "-lEGL -lGLESv2 -lbcm_host")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fgnu89-inline")
|
|
add_executable(${BINARY_NAME}-rpi ${PLATFORM_SRC} ${MAIN_SRC} ${EGL_MAIN_SRC})
|
|
set_target_properties(${BINARY_NAME}-rpi PROPERTIES COMPILE_DEFINITIONS "${FEATURE_DEFINES}")
|
|
target_link_libraries(${BINARY_NAME}-rpi ${BINARY_NAME} ${PLATFORM_LIBRARY} ${EGL_LIBRARY})
|
|
install(TARGETS ${BINARY_NAME}-rpi DESTINATION bin COMPONENT ${BINARY_NAME}-rpi)
|
|
endif()
|
|
|
|
if(BUILD_PANDORA)
|
|
list(APPEND MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/pandora-sdl.c)
|
|
else()
|
|
list(APPEND MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/sw-sdl.c)
|
|
if(BUILD_GL)
|
|
list(APPEND MAIN_SRC ${CMAKE_SOURCE_DIR}/src/platform/sdl/gl-sdl.c)
|
|
list(APPEND PLATFORM_SRC ${CMAKE_SOURCE_DIR}/src/platform/opengl/gl.c)
|
|
include_directories(${OPENGL_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
|
|
add_executable(${BINARY_NAME}-sdl WIN32 ${PLATFORM_SRC} ${MAIN_SRC})
|
|
set_target_properties(${BINARY_NAME}-sdl PROPERTIES COMPILE_DEFINITIONS "${FEATURE_DEFINES}")
|
|
target_link_libraries(${BINARY_NAME}-sdl ${BINARY_NAME} ${PLATFORM_LIBRARY} ${OPENGL_LIBRARY})
|
|
set_target_properties(${BINARY_NAME}-sdl PROPERTIES OUTPUT_NAME ${BINARY_NAME})
|
|
install(TARGETS ${BINARY_NAME}-sdl DESTINATION bin COMPONENT ${BINARY_NAME}-sdl)
|