X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=CMakeLists.txt;h=9a9dde2ca4b02ae9100c70cfd49b9542c20cf915;hb=d46cd438afabe7f92e0daa97c1b1176edfda3a56;hp=8e8046e53fac3a43c97e2a5c43c15ae7c68758e8;hpb=5a632cca810d50b4620fba49f57fc5236cec21af;p=supertux.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e8046e53..9a9dde2ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,6 @@ ENDIF(COMMAND cmake_policy) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/mk/cmake) ## For autopackage -OPTION(ENABLE_BINRELOC "Enable autopackage's BINRELOC features" OFF) SET(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/games/supertux2") ## Check endianess @@ -67,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) @@ -79,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) @@ -162,13 +174,12 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/squirrel/include/) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/tinygettext/include/) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/findlocale/) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/obstack/) -include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/binreloc/) ## MSVC Compatibility headers and definitions 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 @@ -261,7 +272,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) @@ -290,7 +303,6 @@ IF(GENERATE_MESSAGESPOT) LIST(APPEND MESSAGES_POT_FILES ${MESSAGES_POT_FILE}) FILE(GLOB SUPERTUX_LEVEL_DIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} data/levels/*) - LIST(REMOVE_ITEM SUPERTUX_LEVEL_DIRS "data/levels/.svn") FOREACH(SUPERTUX_LEVEL_DIR ${SUPERTUX_LEVEL_DIRS}) FILE(GLOB SUPERTUX_LEVELS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SUPERTUX_LEVEL_DIR}/*.stl ${SUPERTUX_LEVEL_DIR}/*.stwm ${SUPERTUX_LEVEL_DIR}/*.txt) @@ -335,19 +347,13 @@ 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) ENDIF(MINGW) ENDIF(WIN32) -## Add binreloc.c if enabled -IF(ENABLE_BINRELOC) - SET(SUPERTUX_SOURCES_C ${SUPERTUX_SOURCES_C} ${CMAKE_CURRENT_SOURCE_DIR}/external/binreloc/binreloc.c) -ENDIF(ENABLE_BINRELOC) - - ## Generate supertux executable in the right place SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) @@ -372,7 +378,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}) @@ -422,6 +432,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 @@ -430,7 +442,7 @@ INSTALL(DIRECTORY data/images data/speech data/sounds data/locale - DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE) + DESTINATION ${INSTALL_SUBDIR_SHARE}) ## Create config.h now that INSTALL_SUBDIR_* have been set. @@ -487,7 +499,6 @@ MARK_AS_ADVANCED( ) MARK_AS_ADVANCED( - ENABLE_BINRELOC APPDATADIR )