From 0de664d0a886bcda45a0cd05551b6896c5c46ed0 Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sat, 14 Feb 2015 12:00:00 +0100 Subject: Import icculus.org release (2015-02-14) --- CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 7 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 168f85f..a55d9cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,8 @@ ENDIF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) PROJECT(avp) # required dependencies +INCLUDE(FindOpenGLES.cmake) +INCLUDE(FindOpenGLES2.cmake) INCLUDE(FindSDL2.cmake) INCLUDE(FindSDL) INCLUDE(FindOpenGL) @@ -27,6 +29,18 @@ IF(NOT SDL_TYPE STREQUAL "AUTO" AND NOT SDL_TYPE STREQUAL "SDL" AND NOT SDL_TYPE MESSAGE(FATAL_ERROR "Invalid SDL_TYPE setting ${SDL_TYPE}; must be one of AUTO SDL SDL2") ENDIF(NOT SDL_TYPE STREQUAL "AUTO" AND NOT SDL_TYPE STREQUAL "SDL" AND NOT SDL_TYPE STREQUAL "SDL2") +IF(SDL_FOUND) + IF(SDL_VERSION_STRING VERSION_LESS "1.2.0") + MESSAGE(WARNING "SDL 1.2 was claimed to be found with version ${SDL_VERSION_STRING}, ignoring...") + UNSET(SDL_FOUND) + ENDIF(SDL_VERSION_STRING VERSION_LESS "1.2.0") + + IF(SDL_VERSION_STRING VERSION_GREATER "1.2.99") + MESSAGE(WARNING "SDL 1.2 was claimed to be found with version ${SDL_VERSION_STRING}, ignoring...") + UNSET(SDL_FOUND) + ENDIF(SDL_VERSION_STRING VERSION_GREATER "1.2.99") +ENDIF(SDL_FOUND) + IF(SDL_TYPE STREQUAL "AUTO") IF(SDL_FOUND) MESSAGE(STATUS "SDL 1.2 found; using that.") @@ -58,12 +72,49 @@ IF(SDL_TYPE STREQUAL "SDL2") MESSAGE(WARNING "SDL 2.0 support is EXPERIMENTAL and INCOMPLETE.") ENDIF(SDL_TYPE STREQUAL "SDL2") -IF(NOT OPENGL_FOUND) - MESSAGE(FATAL_ERROR "OpenGL is required but CMake couldn't find it") -ENDIF(NOT OPENGL_FOUND) +# Use Desktop OpenGL if it is available, else try OpenGL ES. +IF(NOT OPENGL_TYPE) + SET(OPENGL_TYPE AUTO CACHE STRING "OpenGL Version; one of: AUTO OPENGL OPENGLES") + SET_PROPERTY(CACHE OPENGL_TYPE PROPERTY STRINGS "AUTO" "OPENGL" "OPENGLES") +ENDIF(NOT OPENGL_TYPE) + +IF(NOT OPENGL_TYPE STREQUAL "AUTO" AND NOT OPENGL_TYPE STREQUAL "OPENGL" AND NOT OPENGL_TYPE STREQUAL "OPENGLES") + MESSAGE(FATAL_ERROR "Invalid OPENGL_TYPE setting ${OPENGL_TYPE}; must be one of AUTO OPENGL OPENGLES") +ENDIF(NOT OPENGL_TYPE STREQUAL "AUTO" AND NOT OPENGL_TYPE STREQUAL "OPENGL" AND NOT OPENGL_TYPE STREQUAL "OPENGLES") + +IF(OPENGL_TYPE STREQUAL "AUTO") + IF(OPENGL_FOUND) + MESSAGE(STATUS "OpenGL found; using that.") + SET(OPENGL_TYPE "OPENGL") + ENDIF(OPENGL_FOUND) +ENDIF(OPENGL_TYPE STREQUAL "AUTO") + +IF(OPENGL_TYPE STREQUAL "AUTO") + IF(OPENGLES_FOUND) + MESSAGE(STATUS "OpenGL ES found; using that.") + SET(OPENGL_TYPE "OPENGLES") + ENDIF(OPENGLES_FOUND) +ENDIF(OPENGL_TYPE STREQUAL "AUTO") + +IF(OPENGL_TYPE STREQUAL "AUTO") + MESSAGE(FATAL_ERROR "OpenGL is required but CMake couldn't find it.") +ENDIF(OPENGL_TYPE STREQUAL "AUTO") +IF(OPENGL_TYPE STREQUAL "OPENGL") + IF(NOT OPENGL_FOUND) + MESAGE(FATAL_ERROR "OpenGL was requested but CMake couldn't find it.") + ENDIF(NOT OPENGL_FOUND) +ENDIF(OPENGL_TYPE STREQUAL "OPENGL") + +IF(OPENGL_TYPE STREQUAL "OPENGLES") + IF(NOT OPENGLES_FOUND) + MESSAGE(FATAL_ERROR "OpenGL ES was requested but CMake couldn't find it.") + ENDIF(NOT OPENGLES_FOUND) +ENDIF(OPENGL_TYPE STREQUAL "OPENGLES") + +# OpenAL IF(NOT OPENAL_FOUND) - MESSAGE(FATAL_ERROR "OpenAL is required but CMake couldn't find it") + MESSAGE(FATAL_ERROR "OpenAL is required but CMake couldn't find it.") ENDIF(NOT OPENAL_FOUND) # required source files @@ -307,7 +358,7 @@ ENDIF(SDL_TYPE STREQUAL "SDL2") # auto-include directories with source files FOREACH(sourcefile IN LISTS source) - GET_FILENAME_COMPONENT(includedir ${sourcefile} DIRECTORY) + GET_FILENAME_COMPONENT(includedir ${sourcefile} PATH) # newer CMake uses DIRECTORY LIST(APPEND include ${includedir}) ENDFOREACH(sourcefile) INCLUDE_DIRECTORIES(${include}) @@ -326,7 +377,16 @@ IF(SDL_TYPE STREQUAL "SDL2") INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR}) ENDIF(SDL_TYPE STREQUAL "SDL2") -INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) +IF(OPENGL_TYPE STREQUAL "OPENGL") + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) +ENDIF(OPENGL_TYPE STREQUAL "OPENGL") + +IF(OPENGL_TYPE STREQUAL "OPENGLES") + ADD_DEFINITIONS(-DUSE_OPENGL_ES=1) + INCLUDE_DIRECTORIES(${OPENGLES_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${EGL_INCLUDE_DIR}) +ENDIF(OPENGL_TYPE STREQUAL "OPENGLES") + INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) IF(SDL_TYPE STREQUAL "SDL") @@ -337,5 +397,13 @@ IF(SDL_TYPE STREQUAL "SDL2") TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARY}) ENDIF(SDL_TYPE STREQUAL "SDL2") -TARGET_LINK_LIBRARIES(avp ${OPENGL_gl_LIBRARY}) +IF(OPENGL_TYPE STREQUAL "OPENGL") + TARGET_LINK_LIBRARIES(avp ${OPENGL_gl_LIBRARY}) +ENDIF(OPENGL_TYPE STREQUAL "OPENGL") + +IF(OPENGL_TYPE STREQUAL "OPENGLES") + TARGET_LINK_LIBRARIES(avp ${OPENGLES_gl_LIBRARY}) + TARGET_LINK_LIBRARIES(avp ${EGL_LIBRARIES}) +ENDIF(OPENGL_TYPE STREQUAL "OPENGLES") + TARGET_LINK_LIBRARIES(avp ${OPENAL_LIBRARY}) -- cgit v1.3