diff --git a/cmake/find_modules/FindSFML.cmake b/cmake/find_modules/FindSFML.cmake deleted file mode 100644 index 2cdce5ab4..000000000 --- a/cmake/find_modules/FindSFML.cmake +++ /dev/null @@ -1,209 +0,0 @@ -# Locate SFML library -# This module defines -# SFML_FOUND, if false, do not try to link to SFML -# SFML_LIBRARY, the name of the librarys to link against -# SFML_INCLUDE_DIR, where to find SFML headers -# -# By default this script will link to the shared-nondebug version of SFML -# You can change this by define this variables befor calling FIND_PACKAGE -# -# SFML_DEBUG - If defined it will link to the debug version of SFML -# SFML_STATIC - If defined it will link to the static version of SFML -# -# For example: -# SET(SFML_STATIC true) -# FIND_PACKAGE(SFML REQUIRED COMPONENTS System Window) -# -# Created by Nils Hasenbanck. Based on the FindSDL_*.cmake modules, -# created by Eric Wing, which were influenced by the FindSDL.cmake -# module, but with modifications to recognize OS X frameworks and -# additional Unix paths (FreeBSD, etc). -# -# Changelog: -# 2010-04-04 - Add support for visual studio 2008 (9.0) -# 2010-04-09 - Add support for visual studio 2005 (8.0) -# - Now the test for the requested components is also implemented. -# - It also will only link to the requested components -# - You can chose wich debug/nondebug static/shared versions of the librarys you want to link to - -SET(SFML_LIBRARY "") -SET(SFML_INCLUDE_DIR "") - -SET( SFMLDIR $ENV{SFMLDIR} ) -IF(WIN32 AND NOT(CYGWIN)) - # Convert backslashes to slashes - STRING(REGEX REPLACE "\\\\" "/" SFMLDIR "${SFMLDIR}") -ENDIF(WIN32 AND NOT(CYGWIN)) - -SET(SFML_COMPONENTS - System - Audio - Graphics - Network - Window -) - -SET(SFML_MODE - _SHARED_NONDEBUG - _SHARED_DEBUG - _STATIC_NONDEBUG - _STATIC_DEBUG -) - -SET(SFML_INCLUDE_SEARCH_DIR - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include/SFML - /usr/include/SFML - /usr/local/include - /usr/include - /sw/include/SFML # Fink - /sw/include - /opt/local/include/SFML # DarwinPorts - /opt/local/include - /opt/csw/include/SFML # Blastwave - /opt/csw/include - /opt/include/SFML - /opt/include - ${SFMLDIR} - ${SFMLDIR}/include -) - -SET(SFML_LIBRARY_SEARCH_DIR - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw - /opt/local - /opt/csw - /opt - ${SFMLDIR} - ${SFMLDIR}/lib/vc2008 - ${SFMLDIR}/lib/vc2005 -) - -#looking for the include files -FOREACH(COMPONENT ${SFML_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - STRING(TOLOWER ${COMPONENT} LOWERCOMPONENT) - - FIND_PATH(SFML_${UPPERCOMPONENT}_INCLUDE_DIR - ${COMPONENT}.hpp - PATH_SUFFIXES include SFML - PATHS ${SFML_INCLUDE_SEARCH_DIR} - ) - - IF(SFML_${UPPERCOMPONENT}_INCLUDE_DIR) - IF(WIN32) - # In wxWIN we need the root include directory without the "/SFML" at the end... so we have to remove it. - # This is a oversized "remove 5 chars at the right end of the string" function: - string(LENGTH ${SFML_${UPPERCOMPONENT}_INCLUDE_DIR} STRING_SIZE) - math(EXPR STRING_SIZE ${STRING_SIZE}-5) - string(SUBSTRING "${SFML_${UPPERCOMPONENT}_INCLUDE_DIR}" 0 ${STRING_SIZE} SFML_${UPPERCOMPONENT}_INCLUDE_DIR) - ENDIF(WIN32) - - LIST(APPEND SFML_INCLUDE_DIR ${SFML_${UPPERCOMPONENT}_INCLUDE_DIR}) - LIST(REMOVE_DUPLICATES SFML_INCLUDE_DIR) - ENDIF(SFML_${UPPERCOMPONENT}_INCLUDE_DIR) -ENDFOREACH(COMPONENT) - -#looking for the librarys -FOREACH(MODE ${SFML_MODE}) - string(COMPARE EQUAL ${MODE} "_SHARED_NONDEBUG" string_equal_result) - IF(string_equal_result) - SET(_STA "") - SET(_DBG "") - ENDIF(string_equal_result) - - string(COMPARE EQUAL ${MODE} "_SHARED_DEBUG" string_equal_result) - IF(string_equal_result) - SET(_STA "") - SET(_DBG "-d") - ENDIF(string_equal_result) - - string(COMPARE EQUAL ${MODE} "_STATIC_NONDEBUG" string_equal_result) - IF(string_equal_result) - SET(_STA "-s") - SET(_DBG "") - ENDIF(string_equal_result) - - string(COMPARE EQUAL ${MODE} "_STATIC_DEBUG" string_equal_result) - IF(string_equal_result) - SET(_STA "-s") - SET(_DBG "-d") - ENDIF(string_equal_result) - - FOREACH(COMPONENT ${SFML_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - STRING(TOLOWER ${COMPONENT} LOWERCOMPONENT) - FIND_LIBRARY(SFML_${UPPERCOMPONENT}_LIBRARY${MODE} - NAMES sfml-${LOWERCOMPONENT}${_STA}${_DBG} - PATH_SUFFIXES lib64 lib - PATHS ${SFML_LIBRARY_SEARCH_DIR} - ) - ENDFOREACH(COMPONENT) - - IF(WIN32) - #Now we are looking for "sfml-main.lib". - #Because we need it if we give ADD_EXECUTABLE the WIN32 switch to creat a GUI application (that one without a cmd promt) - FIND_LIBRARY( SFML_MAIN_LIBRARY${MODE} - NAMES sfml-main${_DBG} - PATH_SUFFIXES lib64 lib - PATHS ${SFML_LIBRARY_SEARCH_DIR} - ) - ENDIF(WIN32) -ENDFOREACH(MODE) - - -#Test if we have the include directory, the system lib and other needed components -#We also fill SFML_LIBRARY here with all the files we like to link to - -IF(NOT(SFML_DEBUG) AND NOT(SFML_STATIC)) - SET(MODE_LABEL "_SHARED_NONDEBUG") -ENDIF(NOT(SFML_DEBUG) AND NOT(SFML_STATIC)) - -IF(SFML_DEBUG AND NOT(SFML_STATIC)) - SET(MODE_LABEL "_SHARED_DEBUG") -ENDIF(SFML_DEBUG AND NOT(SFML_STATIC)) - -IF(NOT(SFML_DEBUG) AND SFML_STATIC) - SET(MODE_LABEL "_STATIC_NONDEBUG") -ENDIF(NOT(SFML_DEBUG) AND SFML_STATIC) - -IF(SFML_DEBUG AND SFML_STATIC) - SET(MODE_LABEL "_STATIC_DEBUG") -ENDIF(SFML_DEBUG AND SFML_STATIC) - -LIST(APPEND SFML_LIBRARY ${SFML_MAIN_LIBRARY${MODE_LABEL}}) - -LIST(APPEND SFML_FIND_COMPONENTS "System") #We allways need at last the System component -LIST(REMOVE_DUPLICATES SFML_FIND_COMPONENTS) - -SET(SFML_FOUND "YES") -FOREACH(COMPONENT ${SFML_FIND_COMPONENTS}) - SET( MODUL_NAME SFML_${COMPONENT}_LIBRARY${MODE_LABEL} ) - STRING(TOUPPER ${MODUL_NAME} MODUL_NAME) - - IF(NOT ${MODUL_NAME}) - SET(SFML_FOUND "NO") - MESSAGE("-- SFML: Could not locate : ${MODUL_NAME}") - ELSE(NOT ${MODUL_NAME}) - LIST(APPEND SFML_LIBRARY ${${MODUL_NAME}}) - ENDIF(NOT ${MODUL_NAME}) -ENDFOREACH(COMPONENT) - -LIST(REMOVE_DUPLICATES SFML_LIBRARY) - -IF(NOT SFML_INCLUDE_DIR) - SET(SFML_FOUND "NO") - MESSAGE("-- SFML: Could not locate include directory") -ENDIF(NOT SFML_INCLUDE_DIR) - -IF(NOT SFML_FOUND) - MESSAGE(FATAL_ERROR "Components of SFML are missing!") -ENDIF(NOT SFML_FOUND) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SFML DEFAULT_MSG SFML_LIBRARY SFML_INCLUDE_DIR) - diff --git a/cmake/unix.cmake b/cmake/unix.cmake index 0bbb9db06..90df487f5 100644 --- a/cmake/unix.cmake +++ b/cmake/unix.cmake @@ -72,7 +72,16 @@ find_package(wxWidgets ${WX_VERSION} COMPONENTS ${WX_LIBS} REQUIRED) include(${wxWidgets_USE_FILE}) # SFML -set(SFML_FIND_COMPONENTS system audio window network) +set(SFML_FIND_COMPONENTS System Audio Window Network) +list(TRANSFORM SFML_FIND_COMPONENTS TOLOWER OUTPUT_VARIABLE SFML2_FIND_COMPONENTS) +find_package(SFML 2 QUIET COMPONENTS ${SFML2_FIND_COMPONENTS}) +if(SFML_FOUND) + list(TRANSFORM SFML2_FIND_COMPONENTS PREPEND sfml- OUTPUT_VARIABLE SFML_LIBRARIES) +else() + list(TRANSFORM SFML_FIND_COMPONENTS PREPEND SFML:: OUTPUT_VARIABLE SFML_LIBRARIES) + find_package(SFML 3 COMPONENTS ${SFML_FIND_COMPONENTS} REQUIRED) +endif() + find_package(Freetype REQUIRED) find_package(FTGL REQUIRED) @@ -92,7 +101,6 @@ else(NO_FLUIDSYNTH) endif() find_package(FreeImage REQUIRED) -find_package(SFML COMPONENTS ${SFML_FIND_COMPONENTS} REQUIRED) find_package(OpenGL REQUIRED) if (NOT NO_LUA) find_package(Lua REQUIRED) @@ -100,7 +108,6 @@ endif() find_package(MPG123 REQUIRED) include_directories( ${FREEIMAGE_INCLUDE_DIR} - ${SFML_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${FTGL_INCLUDE_DIR} ${LUA_INCLUDE_DIR} @@ -157,7 +164,7 @@ target_link_libraries(slade ${EXTERNAL_LIBRARIES} ${wxWidgets_LIBRARIES} ${FREEIMAGE_LIBRARIES} - ${SFML_LIBRARY} + ${SFML_LIBRARIES} ${FREETYPE_LIBRARIES} ${FTGL_LIBRARIES} ${OPENGL_LIBRARIES} diff --git a/cmake/win_msvc.cmake b/cmake/win_msvc.cmake index fdd5f161e..c9a42a313 100644 --- a/cmake/win_msvc.cmake +++ b/cmake/win_msvc.cmake @@ -43,7 +43,16 @@ endif () find_package(freeimage CONFIG REQUIRED) find_package(MPG123 CONFIG REQUIRED) find_package(OpenGL REQUIRED) -find_package(SFML COMPONENTS system audio window network CONFIG REQUIRED) + +set(SFML_FIND_COMPONENTS System Audio Window Network) +list(TRANSFORM SFML_FIND_COMPONENTS TOLOWER OUTPUT_VARIABLE SFML2_FIND_COMPONENTS) +find_package(SFML 2 QUIET COMPONENTS ${SFML2_FIND_COMPONENTS}) +if(SFML_FOUND) + list(TRANSFORM SFML2_FIND_COMPONENTS PREPEND sfml- OUTPUT_VARIABLE SFML_LIBRARIES) +else() + list(TRANSFORM SFML_FIND_COMPONENTS PREPEND SFML:: OUTPUT_VARIABLE SFML_LIBRARIES) + find_package(SFML 3 COMPONENTS ${SFML_FIND_COMPONENTS} REQUIRED) +endif() # Include Search Paths --------------------------------------------------------- @@ -99,14 +108,11 @@ target_link_libraries(slade ${FREETYPE_LIBRARIES} ${FTGL_LIBRARIES} ${OPENGL_LIBRARIES} + ${SFML_LIBRARIES} ${WX_LIBS} ${ZLIB_LIBRARY} freeimage::FreeImage MPG123::libmpg123 - sfml-audio - sfml-main - sfml-network - sfml-window ) if (NOT NO_LUA)