X-Git-Url: https://git.octo.it/?p=supertux.git;a=blobdiff_plain;f=CMakeLists.txt;h=d6cc2dabf1c24ea2e4ce495ecd3686be216ece29;hp=607b9763a4d0ae64ebe0bc1f3cf320b2e34cc8fb;hb=1ac08923e2d854f7255915b35242f50dfcf7baf7;hpb=b525265f5a6d9600221c207f3abd802ad2cac48e diff --git a/CMakeLists.txt b/CMakeLists.txt index 607b9763a..d6cc2dabf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ PROJECT(SUPERTUX) ## Version, for display in title bar. -## Will add 'commit ' to the end if git is available. +## Will add 'commit ' to the end if git is available and this is a git repository. SET(SUPERTUX_VERSION "0.3.4-GIT") ### CMake configuration @@ -66,11 +66,13 @@ INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIR}) LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) INCLUDE(FindPkgConfig) -PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2) +PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2>=2.0.1) PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0) SET(HAVE_SDL TRUE) OPTION(ENABLE_OPENGL "Enable OpenGL support" ON) +OPTION(GLBINDING_ENABLED "Use glbinding instead of GLEW" OFF) +OPTION(GLBINDING_DEBUG_OUTPUT "Enable glbinding debug output for each called OpenGL function" OFF) IF(ENABLE_OPENGL) FIND_PACKAGE(OpenGL) IF(OPENGL_FOUND) @@ -78,10 +80,21 @@ IF(ENABLE_OPENGL) SET(HAVE_OPENGL TRUE) ENDIF(OPENGL_FOUND) - FIND_PACKAGE(GLEW) - IF(GLEW_FOUND) - INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR}) - ENDIF(GLEW_FOUND) + IF(GLBINDING_ENABLED) + FIND_PACKAGE(GLBINDING REQUIRED) + IF(GLBINDING_FOUND) + INCLUDE_DIRECTORIES(${GLBINDING_INCLUDES}) + ADD_DEFINITIONS(-DUSE_GLBINDING) + IF (GLBINDING_DEBUG_OUTPUT) + ADD_DEFINITIONS(-DUSE_GLBINDING_DEBUG_OUTPUT) + ENDIF() + ENDIF() + ELSE() + FIND_PACKAGE(GLEW REQUIRED) + IF(GLEW_FOUND) + INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR}) + ENDIF(GLEW_FOUND) + ENDIF() ENDIF(ENABLE_OPENGL) FIND_PACKAGE(OpenAL REQUIRED) @@ -107,7 +120,10 @@ ENDIF(CURL_FOUND) MARK_AS_ADVANCED(GIT_EXECUTABLE) FIND_PROGRAM(GIT_EXECUTABLE git) -IF(GIT_EXECUTABLE) +# The .git directory inside the base directory +SET(GIT_CFG_DIR "${CMAKE_BINARY_DIR}/.git/") + +IF(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR}) ADD_CUSTOM_TARGET(gitversion ALL ${CMAKE_COMMAND} -E echo "#ifndef VERSION_H" > "${CMAKE_BINARY_DIR}/version.h.tmp" COMMAND ${CMAKE_COMMAND} -E echo "#define VERSION_H" >> "${CMAKE_BINARY_DIR}/version.h.tmp" @@ -120,7 +136,7 @@ IF(GIT_EXECUTABLE) WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" COMMENT "Updating ${CMAKE_BINARY_DIR}/version.h..." VERBATIM) -ELSE(GIT_EXECUTABLE) +ELSE(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR}) ADD_CUSTOM_TARGET(gitversion ALL ${CMAKE_COMMAND} -E echo "#ifndef VERSION_H" > "${CMAKE_BINARY_DIR}/version.h.tmp" COMMAND ${CMAKE_COMMAND} -E echo "#define VERSION_H" >> "${CMAKE_BINARY_DIR}/version.h.tmp" @@ -131,7 +147,7 @@ ELSE(GIT_EXECUTABLE) WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Updating ${CMAKE_BINARY_DIR}/version.h..." VERBATIM) -ENDIF(GIT_EXECUTABLE) +ENDIF(GIT_EXECUTABLE AND EXISTS ${GIT_CFG_DIR}) SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/version.h PROPERTIES GENERATED true) @@ -166,7 +182,7 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/obstack/) IF(MSVC) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/mk/msvc) -ADD_DEFINITIONS(-D_USE_MATH_DEFINES -DNOMINMAX) + ADD_DEFINITIONS(-D_USE_MATH_DEFINES -DNOMINMAX) ENDIF(MSVC) ## Build list of sources for supertux binary @@ -259,7 +275,9 @@ IF(CMAKE_COMPILER_IS_GNUCC) # -Wold-style-cast -Wpadded -Wabi -Winline -Wunsafe-loop-optimizations -Wstrict-overflow=5 # fails on MinGW: # -ansi - SET(SUPERTUX2_EXTRA_WARNING_FLAGS "-fdiagnostics-show-option -pedantic -Wno-long-long -Wcast-align -Wdisabled-optimization -Winit-self -Winvalid-pch -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wredundant-decls -Wstack-protector -Wformat=2 -Weffc++ -Wctor-dtor-privacy -Wstrict-null-sentinel -Wno-unused-parameter -Wshadow") + # fails on clang: + # -Wlogical-op -Wstrict-null-sentinel + SET(SUPERTUX2_EXTRA_WARNING_FLAGS "-fdiagnostics-show-option -pedantic -Wno-long-long -Wcast-align -Wdisabled-optimization -Winit-self -Winvalid-pch -Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wredundant-decls -Wstack-protector -Wformat=2 -Weffc++ -Wctor-dtor-privacy -Wno-unused-parameter -Wshadow -Wnon-virtual-dtor -Wcast-qual") ENDIF(WARNINGS) ENDIF(CMAKE_COMPILER_IS_GNUCC) @@ -332,7 +350,7 @@ IF(WIN32) IF(MINGW) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o - COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons -i${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons/supertux.rc -o ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o) + COMMAND ${CMAKE_RC_COMPILER} -I${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons -i${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons/supertux.rc -o ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o) SET(SUPERTUX_SOURCES_C ${SUPERTUX_SOURCES_C} ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o) ELSE(MINGW) SET(SUPERTUX_EXE_SRCS ${SUPERTUX_EXE_SRCS} supertux.rc) @@ -363,7 +381,11 @@ TARGET_LINK_LIBRARIES(supertux2 ${OGGVORBIS_LIBRARIES}) TARGET_LINK_LIBRARIES(supertux2 ${PHYSFS_LIBRARY}) IF(HAVE_OPENGL) TARGET_LINK_LIBRARIES(supertux2 ${OPENGL_LIBRARY}) - TARGET_LINK_LIBRARIES(supertux2 ${GLEW_LIBRARY}) + IF(GLBINDING_FOUND) + TARGET_LINK_LIBRARIES(supertux2 ${GLBINDING_LIBRARIES}) + ELSE() + TARGET_LINK_LIBRARIES(supertux2 ${GLEW_LIBRARY}) + ENDIF() ENDIF(HAVE_OPENGL) IF(HAVE_LIBCURL) TARGET_LINK_LIBRARIES(supertux2 ${CURL_LIBRARY}) @@ -413,6 +435,8 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/INSTALL.md ${CMAKE_CURRENT_SOURCE_DIR} INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/credits.txt DESTINATION ${INSTALL_SUBDIR_SHARE}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/supertux2.appdata.xml DESTINATION "share/appdata" ) + INSTALL(DIRECTORY data/images data/fonts data/levels