X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=CMakeLists.txt;h=d4b606dc92e9a597717ae5b8a24cf48c918e549d;hb=fb7ec3e0b1fefa5d88bd1a4c8b81a3b71a72c1fd;hp=32e5df7042373364e264bdec84d19b4143052e9c;hpb=e30246776bbbe8bc09423436813dd50843d7ffc6;p=supertux.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 32e5df704..d4b606dc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,13 +66,11 @@ FIND_PACKAGE(Boost REQUIRED) INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIR}) LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) -FIND_PACKAGE(SDL REQUIRED) -INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +INCLUDE(FindPkgConfig) +PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2) +PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0) SET(HAVE_SDL TRUE) -FIND_PACKAGE(SDL_image REQUIRED) -INCLUDE_DIRECTORIES(${SDLIMAGE_INCLUDE_DIR}) - OPTION(ENABLE_OPENGL "Enable OpenGL support" ON) IF(ENABLE_OPENGL) FIND_PACKAGE(OpenGL) @@ -161,7 +159,7 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/external/squirrel) include_directories (${CMAKE_BINARY_DIR}/) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/src/) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/squirrel/include/) -include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/tinygettext/) +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/) @@ -179,7 +177,7 @@ FILE(GLOB SUPERTUX_SOURCES_C RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} external/obsta FILE(GLOB SUPERTUX_SOURCES_CXX RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/main.cpp src/*/*.cpp src/supertux/menu/*.cpp src/video/sdl/*.cpp) -FILE(GLOB TINYGETTEXT_SOURCES_CXX RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} external/tinygettext/tinygettext/*.cpp) +FILE(GLOB TINYGETTEXT_SOURCES_CXX RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} external/tinygettext/src/*.cpp) SET_SOURCE_FILES_PROPERTIES(${TINYGETTEXT_SOURCES_CXX} PROPERTIES COMPILE_DEFINITIONS HAVE_SDL) IF(HAVE_OPENGL) @@ -228,13 +226,29 @@ ENDIF(COMPILE_AMALGATION) OPTION(WERROR "Stop on first compiler warning" OFF) OPTION(WARNINGS "Enable long list of warnings for compiler to check" OFF) + +# http://www.guyrutenberg.com/2014/01/05/enabling-c11-c0x-in-cmake/ +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +else(COMPILER_SUPPORTS_CXX11) + CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) + if(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") + else(COMPILER_SUPPORTS_CXX0X) + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") + endif(COMPILER_SUPPORTS_CXX0X) +endif(COMPILER_SUPPORTS_CXX11) + + IF(CMAKE_COMPILER_IS_GNUCC) SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "Debug flags") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "Debug flags") SET(CMAKE_CXX_FLAGS_PROFILE "-pg" CACHE STRING "Profile flags") SET(CMAKE_C_FLAGS_PROFILE "-pg" CACHE STRING "Profile flags") SET(CMAKE_LD_FLAGS_PROFILE "-lgmon" CACHE STRING "Profile flags") - ADD_DEFINITIONS(-Wall -Wextra -funit-at-a-time) + ADD_DEFINITIONS(-Wall -Wextra -Wno-unused-parameter -funit-at-a-time) IF(WERROR) ADD_DEFINITIONS(-Werror) ELSE(WERROR) @@ -341,9 +355,12 @@ ADD_DEPENDENCIES(supertux2 gitversion) ## Link supertux binary with squirrel and other libraries +TARGET_INCLUDE_DIRECTORIES(supertux2 PUBLIC ${SDL2_INCLUDE_DIRS}) +TARGET_INCLUDE_DIRECTORIES(supertux2 PUBLIC ${SDL2IMAGE_INCLUDE_DIRS}) +TARGET_LINK_LIBRARIES(supertux2 ${SDL2_LIBRARIES}) +TARGET_LINK_LIBRARIES(supertux2 ${SDL2IMAGE_LIBRARIES}) + TARGET_LINK_LIBRARIES(supertux2 squirrel) -TARGET_LINK_LIBRARIES(supertux2 ${SDL_LIBRARY}) -TARGET_LINK_LIBRARIES(supertux2 ${SDLIMAGE_LIBRARY}) TARGET_LINK_LIBRARIES(supertux2 ${OPENAL_LIBRARY}) TARGET_LINK_LIBRARIES(supertux2 ${OGGVORBIS_LIBRARIES}) TARGET_LINK_LIBRARIES(supertux2 ${PHYSFS_LIBRARY}) @@ -395,7 +412,7 @@ ENDIF(WIN32 AND NOT UNIX) INSTALL(TARGETS supertux2 DESTINATION ${INSTALL_SUBDIR_BIN}) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/INSTALL ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/COPYING ${CMAKE_CURRENT_SOURCE_DIR}/WHATSNEW.txt DESTINATION ${INSTALL_SUBDIR_DOC}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/INSTALL.md ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/COPYING ${CMAKE_CURRENT_SOURCE_DIR}/WHATSNEW.txt DESTINATION ${INSTALL_SUBDIR_DOC}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/credits.txt DESTINATION ${INSTALL_SUBDIR_SHARE}) @@ -431,7 +448,7 @@ SET(CPACK_RPM_PACKAGE_GROUP "Amusements/Games/Action/Arcade") IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # The OS X PackageMaker doesn't seem to like files with no extension ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") + SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") SET(CPACK_PACKAGE_VERSION_MAJOR "0") @@ -474,14 +491,13 @@ MARK_AS_ADVANCED( ) MARK_AS_ADVANCED( - SDLMAIN_LIBRARY - SDL_INCLUDE_DIR - SDL_LIBRARY + SDL2_INCLUDE_DIRS + SDL2_LIBRARIES ) MARK_AS_ADVANCED( - SDLIMAGE_INCLUDE_DIR - SDLIMAGE_LIBRARY + SDL2IMAGE_INCLUDE_DIRS + SDL2IMAGE_LIBRARIES ) MARK_AS_ADVANCED(