From 6ac255095a2c8a43e96217d47ddd69629dfefd24 Mon Sep 17 00:00:00 2001 From: filux Date: Fri, 18 Sep 2015 19:17:52 +0200 Subject: [PATCH] implemented basic support for SDL2 in cmake files (only); changed a general idea of how and where are showed deprecation warnings --- CMakeLists.txt | 34 +++- data/glest_game | 2 +- mk/cmake/Modules/FindSDL2.cmake | 180 ++++++++++++++++++ mk/macosx/CMakeLists.txt | 23 +-- source/g3d_viewer/CMakeLists.txt | 18 +- source/glest_game/CMakeLists.txt | 18 +- source/glest_map_editor/CMakeLists.txt | 20 +- source/shared_lib/CMakeLists.txt | 24 +-- .../include/graphics/ImageReaders.h | 2 +- source/tests/CMakeLists.txt | 12 +- 10 files changed, 261 insertions(+), 72 deletions(-) create mode 100644 mk/cmake/Modules/FindSDL2.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 59e67260..a6ee30ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -353,6 +353,32 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) ENDIF() ENDIF() +IF(UNIX AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + OPTION(WANT_DEPRECATION_WARNINGS "Want to see warnings related with deprecated code parts." OFF) + # We don't wanna see bug reports with deprecation warnings from OSes where game isn't + # actively developed, and where usually those warnings can make "make log" completely unreadable. + # Main targets are: bsd and macos +ELSE() + OPTION(WANT_DEPRECATION_WARNINGS "Want to see warnings related with deprecated code parts." ON) +ENDIF() +IF(NOT WANT_DEPRECATION_WARNINGS) + ADD_DEFINITIONS(-Wno-deprecated -Wno-deprecated-declarations) +ENDIF() +MARK_AS_ADVANCED(WANT_DEPRECATION_WARNINGS) + +OPTION(WANT_USE_SDL2 "Want to use SDL2 instead of SDL1.X. SDL2 is not officially supported yet." OFF) +IF(NOT WANT_USE_SDL2) + SET(SDL_WINDOWS_DIR_DINC "SDL-1.2.x") + SET(SDL_VERSION_NAME "SDL") + SET(SDL_VERSION_SNAME "sdl") +ELSE() + SET(SDL_WINDOWS_DIR_DINC "SDL-2.0.x") + SET(SDL_VERSION_NAME "SDL2") + SET(SDL_VERSION_SNAME "sdl") + # ^ sdl > sdl2 +ENDIF() +MARK_AS_ADVANCED(WANT_USE_SDL2) + IF(WIN32) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${PROJECT_SOURCE_DIR}/source/win32_deps/lib @@ -370,7 +396,7 @@ IF(WIN32) ${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141 ${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5 ${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include - ${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include + ${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) @@ -476,6 +502,6 @@ endforeach() #MESSAGE( STATUS "=====> DirDefs: " ${DirDefs} ) #MESSAGE(STATUS "*** Compiler definitions are [${COMPILE_DEFINITIONS}]") -MARK_AS_ADVANCED(SDLMAIN_LIBRARY) -MARK_AS_ADVANCED(SDL_INCLUDE_DIR) -MARK_AS_ADVANCED(SDL_LIBRARY) +MARK_AS_ADVANCED(${SDL_VERSION_NAME}MAIN_LIBRARY) +MARK_AS_ADVANCED(${SDL_VERSION_NAME}_INCLUDE_DIR) +MARK_AS_ADVANCED(${SDL_VERSION_NAME}_LIBRARY) diff --git a/data/glest_game b/data/glest_game index 3f8657d7..736113a2 160000 --- a/data/glest_game +++ b/data/glest_game @@ -1 +1 @@ -Subproject commit 3f8657d76fcda3a44411752c1cec1a575d119d7b +Subproject commit 736113a2b4b883722279942e11e63bdb414fe39f diff --git a/mk/cmake/Modules/FindSDL2.cmake b/mk/cmake/Modules/FindSDL2.cmake new file mode 100644 index 00000000..d1bc1fe2 --- /dev/null +++ b/mk/cmake/Modules/FindSDL2.cmake @@ -0,0 +1,180 @@ +# Locate SDL2 library +# This module defines +# SDL2_LIBRARY, the name of the library to link against +# SDL2_FOUND, if false, do not try to link to SDL2 +# SDL2_INCLUDE_DIR, where to find SDL.h +# +# This module responds to the the flag: +# SDL2_BUILDING_LIBRARY +# If this is defined, then no SDL2_main will be linked in because +# only applications need main(). +# Otherwise, it is assumed you are building an application and this +# module will attempt to locate and set the the proper link flags +# as part of the returned SDL2_LIBRARY variable. +# +# Don't forget to include SDL2main.h and SDL2main.m your project for the +# OS X framework based version. (Other versions link to -lSDL2main which +# this module will try to find on your behalf.) Also for OS X, this +# module will automatically add the -framework Cocoa on your behalf. +# +# +# Additional Note: If you see an empty SDL2_LIBRARY_TEMP in your configuration +# and no SDL2_LIBRARY, it means CMake did not find your SDL2 library +# (SDL2.dll, libsdl2.so, SDL2.framework, etc). +# Set SDL2_LIBRARY_TEMP to point to your SDL2 library, and configure again. +# Similarly, if you see an empty SDL2MAIN_LIBRARY, you should set this value +# as appropriate. These values are used to generate the final SDL2_LIBRARY +# variable, but when these values are unset, SDL2_LIBRARY does not get created. +# +# +# $SDL2DIR is an environment variable that would +# correspond to the ./configure --prefix=$SDL2DIR +# used in building SDL2. +# l.e.galup 9-20-02 +# +# Modified by Eric Wing. +# Added code to assist with automated building by using environmental variables +# and providing a more controlled/consistent search behavior. +# Added new modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). +# Also corrected the header search path to follow "proper" SDL2 guidelines. +# Added a search for SDL2main which is needed by some platforms. +# Added a search for threads which is needed by some platforms. +# Added needed compile switches for MinGW. +# +# On OSX, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# SDL2_LIBRARY to override this selection or set the CMake environment +# CMAKE_INCLUDE_PATH to modify the search paths. +# +# Note that the header path has changed from SDL2/SDL.h to just SDL.h +# This needed to change because "proper" SDL2 convention +# is #include "SDL.h", not . This is done for portability +# reasons because not all systems place things in SDL2/ (see FreeBSD). +# +# Ported by Johnny Patterson. This is a literal port for SDL2 of the FindSDL.cmake +# module with the minor edit of changing "SDL" to "SDL2" where necessary. This +# was not created for redistribution, and exists temporarily pending official +# SDL2 CMake modules. + +#============================================================================= +# Copyright 2003-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +FIND_PATH(SDL2_INCLUDE_DIR SDL.h + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES include/SDL2 include + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include/SDL2 + /usr/include/SDL2 + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) +#MESSAGE("SDL2_INCLUDE_DIR is ${SDL2_INCLUDE_DIR}") + +FIND_LIBRARY(SDL2_LIBRARY_TEMP + NAMES SDL2 + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS + /sw + /opt/local + /opt/csw + /opt +) +#MESSAGE("SDL2_LIBRARY_TEMP is ${SDL2_LIBRARY_TEMP}") + +IF(NOT SDL2_BUILDING_LIBRARY) + IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") + # Non-OS X framework versions expect you to also dynamically link to + # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms + # seem to provide SDL2main for compatibility even though they don't + # necessarily need it. + FIND_LIBRARY(SDL2MAIN_LIBRARY + NAMES SDL2main + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS + /sw + /opt/local + /opt/csw + /opt + ) + ENDIF() +ENDIF() + +# SDL2 may require threads on your system. +# The Apple build may not need an explicit flag because one of the +# frameworks may already provide it. +# But for non-OSX systems, I will use the CMake Threads package. +IF(NOT APPLE) + FIND_PACKAGE(Threads) +ENDIF() + +# MinGW needs an additional library, mwindows +# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows +# (Actually on second look, I think it only needs one of the m* libraries.) +IF(MINGW) + SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") +ENDIF() + +SET(SDL2_FOUND "NO") +IF(SDL2_LIBRARY_TEMP) + # For SDL2main + IF(NOT SDL2_BUILDING_LIBRARY) + IF(SDL2MAIN_LIBRARY) + SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF() + ENDIF() + + # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. + # CMake doesn't display the -framework Cocoa string in the UI even + # though it actually is there if I modify a pre-used variable. + # I think it has something to do with the CACHE STRING. + # So I use a temporary variable until the end so I can set the + # "real" variable in one-shot. + IF(APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa") + ENDIF() + + # For threads, as mentioned Apple doesn't need this. + # In fact, there seems to be a problem if I used the Threads package + # and try using this line, so I'm just skipping it entirely for OS X. + IF(NOT APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) + ENDIF() + + # For MinGW library + IF(MINGW) + SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF() + + # Set the final string here so the GUI reflects the final state. + SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") + # Set the temp variable to INTERNAL so it is not seen in the CMake GUI + SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "") + #MESSAGE("SDL2_LIBRARY is ${SDL2_LIBRARY}") + + SET(SDL2_FOUND "YES") +ENDIF() + +INCLUDE(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 + REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR) diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index 314ccba4..9b0e184b 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -13,10 +13,7 @@ IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") ENDIF() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize" CACHE STRING "Flags used by the compiler during all build types." FORCE) -ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - -# don't try to be too much "modern" -ADD_DEFINITIONS(-Wno-deprecated -Wno-deprecated-declarations) +ENDIF() # Include extra paths to search for includes; this is the default system wide macports and X11 path. INCLUDE_DIRECTORIES(/usr/X11/include /opt/local/include) @@ -44,21 +41,3 @@ SET(CPACK_PACKAGE_FILE_NAME "MegaGlest-game-macos-${MEGAGLEST_VERSION}") SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns") SET(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns") SET(CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.sh") - -# Install files in to the package -#INSTALL(FILES -# ${LUA_LIBRARIES} -# DESTINATION ../Frameworks -#) - -#the SDL_LIBRARY is seen as a framework thus we need to remove the suffix... -#STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}") - -#INSTALL(DIRECTORY -# ${OGG_LIBRARY} -# ${XERCESC_LIBRARY} -# ${VORBIS_LIBRARY} -# ${SDL_LIBRARY_DIR} -# ${PNG_LIBRARY} -# DESTINATION ../Frameworks -# ) diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index cd8cb7cd..5dcf326f 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -7,13 +7,15 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_MEGAGLEST_MODEL_VIEWER) MESSAGE(STATUS "Will try to build MegaGlest model viewer") - IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + IF(UNIX AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") ADD_DEFINITIONS("-std=c++11") + # Required at least on bsd and macos, on linux most likely not but we probably want to see same output on + # linux too, e.g. deprecation warnings especially when newer than c++11 "standard" is on the way. ENDIF() - FIND_PACKAGE(SDL REQUIRED) - INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) + INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) FIND_PACKAGE(OpenGL REQUIRED) INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) @@ -63,7 +65,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) @@ -81,7 +83,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_ROOT}platform/common - # ${GLEST_LIB_INCLUDE_ROOT}platform/sdl + # ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ${GLEST_LIB_INCLUDE_ROOT}platform/posix ${GLEST_LIB_INCLUDE_ROOT}util ${GLEST_LIB_INCLUDE_ROOT}graphics @@ -106,9 +108,9 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) IF(WIN32) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ENDIF() SET(MG_SOURCE_FILES "../glest_game/graphics/particle_type.cpp" "../glest_game/graphics/unit_particle_type.cpp" "../glest_game/global/config.cpp") diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index 44886797..80f7f996 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -23,16 +23,16 @@ IF(BUILD_MEGAGLEST) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) ENDIF() - FIND_PACKAGE(SDL REQUIRED) - INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) + INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) ENDIF() FIND_PACKAGE(OpenGL REQUIRED) @@ -176,16 +176,16 @@ IF(BUILD_MEGAGLEST) INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) - #INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + #INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) IF(WIN32) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) - SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/sdl) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) + SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME}) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/unix) ENDIF() @@ -264,7 +264,7 @@ IF(BUILD_MEGAGLEST) endif() IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) ENDIF() IF(NOT WIN32) IF(WANT_STREFLOP) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index 8a5687e8..327a31ea 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -7,13 +7,15 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_MEGAGLEST_MAP_EDITOR) MESSAGE(STATUS "Will try to build MegaGlest map editor") - IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + IF(UNIX AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") ADD_DEFINITIONS("-std=c++11") + # Required at least on bsd and macos, on linux most likely not but we probably want to see same output on + # linux too, e.g. deprecation warnings especially when newer than c++11 "standard" is on the way. ENDIF() - FIND_PACKAGE(SDL REQUIRED) - INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) + INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) FIND_PACKAGE(OpenGL REQUIRED) INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) @@ -51,7 +53,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) @@ -68,7 +70,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_ROOT}platform/common - # ${GLEST_LIB_INCLUDE_ROOT}platform/sdl + # ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ${GLEST_LIB_INCLUDE_ROOT}platform/posix ${GLEST_LIB_INCLUDE_ROOT}util ${GLEST_LIB_INCLUDE_ROOT}graphics @@ -89,9 +91,9 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) IF(WIN32) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ENDIF() @@ -145,7 +147,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ENDIF() IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) ENDIF() IF(WANT_STREFLOP) diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index 6a790d32..756f0334 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -40,7 +40,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) @@ -97,10 +97,10 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST message(FATAL_ERROR " CURL version = [${CURL_VERSION}] we require AT LEAST [7.16.4]") ENDIF() - FIND_PACKAGE(SDL REQUIRED) - INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) + INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) ENDIF() FIND_PACKAGE(OpenGL REQUIRED) @@ -348,14 +348,14 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST ENDIF() IF(APPLE) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/${SDL_VERSION_SNAME}) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/macosx) ELSEIF(WIN32) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/win32) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} ${PROJECT_SOURCE_DIR}/source/win32_deps/src) ELSE() - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/${SDL_VERSION_SNAME}) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/unix) ENDIF() @@ -364,7 +364,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST SET(MG_SOURCES_ROOT "sources/") SET(MG_INCLUDE_FILES "") SET(MG_SOURCE_FILES "") - INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}platform/${SDL_VERSION_SNAME} ) INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}xml/rapidxml ) INCLUDE_DIRECTORIES("sources/") @@ -428,10 +428,10 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/ircclient.cpp) SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpserver.cpp) SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpclient.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/gl_wrap.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/thread.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window_gl.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/gl_wrap.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/thread.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/window.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/window_gl.cpp) SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/win32_deps/src/glprocs.c) ENDIF() @@ -505,7 +505,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST ENDIF() IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32) IF(WANT_STREFLOP) TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) diff --git a/source/shared_lib/include/graphics/ImageReaders.h b/source/shared_lib/include/graphics/ImageReaders.h index d9311fd8..2f9ee112 100644 --- a/source/shared_lib/include/graphics/ImageReaders.h +++ b/source/shared_lib/include/graphics/ImageReaders.h @@ -32,7 +32,7 @@ namespace ImageRegisterer { bool registerImageReaders(); //Since you can't call void methods here, I have used a method doing nothing except initializing the image Readers - static bool readersRegistered = registerImageReaders(); //should always return true, this should guarantee that the readers are registered <--> ImageReaders is included anywhere + static bool readersRegistered __attribute__((unused)) = registerImageReaders(); //should always return true, this should guarantee that the readers are registered <--> ImageReaders is included anywhere } }} //end namespace diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index e515c27a..270efac5 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -15,10 +15,10 @@ IF(BUILD_MEGAGLEST_TESTS) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CPPUNIT_LIBRARY}) ENDIF() - FIND_PACKAGE(SDL REQUIRED) - INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) + INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) ENDIF() find_package( FriBiDi ) @@ -83,10 +83,10 @@ IF(BUILD_MEGAGLEST_TESTS) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) - SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/sdl) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) + SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME}) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/unix) ENDIF()