From 165b7b87c57c2c87e53a4702ae025ec05b80f989 Mon Sep 17 00:00:00 2001 From: Anselme Date: Fri, 25 Mar 2016 21:45:37 +0100 Subject: [PATCH] SFML now uses SFML_MODULES instead of USE_SFML (i also added support for sfml-network) --- template.cmake | 325 ++++++++++++++++++++++++++----------------------- 1 file changed, 170 insertions(+), 155 deletions(-) diff --git a/template.cmake b/template.cmake index c031b62..dd35ae1 100644 --- a/template.cmake +++ b/template.cmake @@ -44,7 +44,7 @@ if(${CMAKE_BUILD_TYPE} MATCHES "Debug") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIB_DEBUG_PATH}) #for SHARED list(APPEND LIB_PATHS ${LIB_DEBUG_PATH}) - list(APPEND LIB_PATHS "\n" ${LIB_RELEASE_PATH}) + list(APPEND LIB_PATHS ${LIB_RELEASE_PATH}) else() set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIB_RELEASE_PATH}) #for STATIC set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIB_RELEASE_PATH}) #for SHARED @@ -90,8 +90,11 @@ if(USE_ENGINE) set(USE_RENDERER True) set(USE_INPUT True) set(USE_BULLET True) + + # window and system are already requested by sparrowInput + LIST(APPEND SFML_MODULES graphics audio) - LIST(APPEND INCLUDE_PATHS "\n" ${PROJECT_SOURCE_DIR}/../sparrowengine/src) + LIST(APPEND INCLUDE_PATHS ${PROJECT_SOURCE_DIR}/../sparrowengine/src) LIST(APPEND LIB_DEPENDENCIES_LIST ${SPARROW_ENGINE_LIBRARY}) endif() @@ -103,143 +106,151 @@ if(USE_INPUT) ${LIB_PATHS} ) - set(USE_SFML True) + LIST(APPEND SFML_MODULES window system) - LIST(APPEND INCLUDE_PATHS "\n" ${PROJECT_SOURCE_DIR}/../sparrowinput/src) - LIST(APPEND INCLUDE_PATHS "\n" ${PROJECT_SOURCE_DIR}/../SparrowInput/src) + LIST(APPEND INCLUDE_PATHS ${PROJECT_SOURCE_DIR}/../sparrowinput/src) + LIST(APPEND INCLUDE_PATHS ${PROJECT_SOURCE_DIR}/../SparrowInput/src) LIST(APPEND LIB_DEPENDENCIES_LIST ${SPARROW_INPUT_LIBRARY}) endif() if(SFML_MODULES) - if(";${SFML_MODULE};" MATCHES ";graphics;") - set(USE_SFML_GRAPHICS True) - set(USE_SFML_WINDOW True) - set(USE_SFML_SYSTEM True) - endif() - if(";${SFML_MODULE};" MATCHES ";window;") - set(USE_SFML_WINDOW True) - set(USE_SFML_SYSTEM True) - endif() - if(";${SFML_MODULE};" MATCHES ";audio;") - set(USE_SFML_AUDIO True) - set(USE_SFML_SYSTEM True) - endif() - if(";${SFML_MODULE};" MATCHES ";network;") - set(USE_SFML_NETWORK True) - set(USE_SFML_SYSTEM True) - endif() - if(";${SFML_MODULE};" MATCHES ";system;") - set(USE_SFML_SYSTEM True) - endif() - - #TODO update everything to use SFML_MODULES instead of USE_SFML -endif() - -if(USE_SFML) - find_library(SFML_LIBRARY_WINDOW - NAMES - sfml-window - PATHS - ${LIB_PATHS} - ) - - find_library(SFML_LIBRARY_SYSTEM - NAMES - sfml-system - PATHS - ${LIB_PATHS} - ) - - find_library(SFML_LIBRARY_AUDIO - NAMES - sfml-audio - PATHS - ${LIB_PATHS} - ) - - find_library(SFML_LIBRARY_GRAPHICS - NAMES - sfml-graphics - PATHS - ${LIB_PATHS} - ) - - set(USE_OPENGL True) - add_definitions(-DSFML_STATIC) - find_library(SFML_DEP_FREETYPE - NAMES freetype - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_JPEG - NAMES jpeg - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_OPENAL - NAMES openal openal32 - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_FLAC - NAMES flac FLAC - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_VORBISENC - NAMES vorbisenc - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_VORBISFILE - NAMES vorbisfile - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_VORBIS - NAMES vorbis - PATHS ${LIB_PATHS} - ) - find_library(SFML_DEP_OGG - NAMES ogg - PATHS ${LIB_PATHS} - ) + LIST(FIND SFML_MODULES "graphics" USE_SFML_GRAPHICS) + LIST(FIND SFML_MODULES "window" USE_SFML_WINDOW) + LIST(FIND SFML_MODULES "audio" USE_SFML_AUDIO) + LIST(FIND SFML_MODULES "network" USE_SFML_NETWORK) + LIST(FIND SFML_MODULES "system" USE_SFML_SYSTEM) - if(WIN32) - find_library(SFML_DEP_WINMM - NAMES winmm + if(${USE_SFML_GRAPHICS} GREATER -1) + set(USE_SFML_WINDOW 1) + set(USE_SFML_SYSTEM 1) + + find_library(SFML_LIBRARY_GRAPHICS + NAMES sfml-graphics PATHS ${LIB_PATHS} ) - find_library(SFML_DEP_GDI - NAMES gdi32 + find_library(SFML_DEP_FREETYPE + NAMES freetype PATHS ${LIB_PATHS} ) - SET(SFML_DEPENDENCIES - ${SFML_DEP_WINMM} - ${SFML_DEP_GDI} + find_library(SFML_DEP_JPEG + NAMES jpeg + PATHS ${LIB_PATHS} + ) + + LIST(APPEND LIB_SFML_LIST + ${SFML_LIBRARY_GRAPHICS} ${SFML_DEP_FREETYPE} ${SFML_DEP_JPEG} - ${SFML_DEP_OPENAL} - ${SFML_DEP_FLAC} - ${SFML_DEP_VORBISENC} - ${SFML_DEP_VORBISFILE} - ${SFML_DEP_VORBIS} - ${SFML_DEP_OGG} - ) - elseif(UNIX) - SET(SFML_DEPENDENCIES - ${SFML_DEP_FREETYPE} - ${SFML_DEP_JPEG} - ${SFML_DEP_OPENAL} - ${SFML_DEP_FLAC} - ${SFML_DEP_VORBISENC} - ${SFML_DEP_VORBISFILE} - ${SFML_DEP_VORBIS} - ${SFML_DEP_OGG} ) + MESSAGE(STATUS "using SFML graphics") endif() - LIST(APPEND LIB_DEPENDENCIES_LIST - ${SFML_LIBRARY_WINDOW} - ${SFML_LIBRARY_GRAPHICS} - ${SFML_LIBRARY_SYSTEM} - ${SFML_LIBRARY_AUDIO} - ${SFML_DEPENDENCIES}) # order is VERY important + + if(${USE_SFML_WINDOW} GREATER -1) + set(USE_SFML_SYSTEM 1) + set(USE_OPENGL True) + + find_library(SFML_LIBRARY_WINDOW + NAMES sfml-window + PATHS ${LIB_PATHS} + ) + + if(WIN32) + find_library(SFML_DEP_GDI + NAMES gdi32 + PATHS ${LIB_PATHS} + ) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_WINDOW} ${SFML_DEP_GDI}) + elseif(UNIX) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_WINDOW}) + endif() + MESSAGE(STATUS "using SFML window") + endif() + + if(${USE_SFML_AUDIO} GREATER -1) + set(USE_SFML_SYSTEM 1) + + find_library(SFML_LIBRARY_AUDIO + NAMES sfml-audio + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_OPENAL + NAMES openal openal32 + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_FLAC + NAMES flac FLAC + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_VORBISENC + NAMES vorbisenc + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_VORBISFILE + NAMES vorbisfile + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_VORBIS + NAMES vorbis + PATHS ${LIB_PATHS} + ) + find_library(SFML_DEP_OGG + NAMES ogg + PATHS ${LIB_PATHS} + ) + + LIST(APPEND LIB_SFML_LIST + ${SFML_LIBRARY_AUDIO} + ${SFML_DEP_OPENAL} + ${SFML_DEP_FLAC} + ${SFML_DEP_VORBISENC} + ${SFML_DEP_VORBISFILE} + ${SFML_DEP_VORBIS} + ${SFML_DEP_OGG} + ) + MESSAGE(STATUS "using SFML audio") + endif() + + if(${USE_SFML_NETWORK} GREATER -1) + set(USE_SFML_SYSTEM 1) + + find_library(SFML_LIBRARY_NETWORK + NAMES sfml-network + PATHS ${LIB_PATHS} + ) + + if(WIN32) + find_library(SFML_DEP_WINSOCK + NAMES ws2_32 + PATHS ${LIB_PATHS} + ) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_NETWORK} ${SFML_DEP_WINSOCK}) + elseif(UNIX) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_NETWORK}) + endif() + MESSAGE(STATUS "using SFML network") + endif() + + if(${USE_SFML_SYSTEM} GREATER -1) + find_library(SFML_LIBRARY_SYSTEM + NAMES sfml-system + PATHS ${LIB_PATHS} + ) + + if(WIN32) + find_library(SFML_DEP_WINMM + NAMES winmm + PATHS ${LIB_PATHS} + ) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_SYSTEM} ${SFML_DEP_WINMM}) + elseif(UNIX) + LIST(APPEND LIB_SFML_LIST ${SFML_LIBRARY_SYSTEM}) + endif() + MESSAGE(STATUS "using SFML system") + endif() + + LIST(APPEND LIB_DEPENDENCIES_LIST ${LIB_SFML_LIST}) endif() if(USE_BULLET) @@ -263,56 +274,60 @@ if(USE_BULLET) PATHS ${LIB_PATHS} ) - LIST(APPEND LIB_DEPENDENCIES_LIST ${BULLET_DYNAMICS_LIBRARY} ${BULLET_COLLISION_LIBRARY} ${LINEAR_MATH_LIBRARY}) - LIST(APPEND INCLUDE_PATHS "\n" ${INCLUDE_ROOT}/bullet) + LIST(APPEND LIB_DEPENDENCIES_LIST + ${BULLET_DYNAMICS_LIBRARY} + ${BULLET_COLLISION_LIBRARY} + ${LINEAR_MATH_LIBRARY} + ) + LIST(APPEND INCLUDE_PATHS ${INCLUDE_ROOT}/bullet) endif() if(QT_MODULE) MESSAGE(STATUS "using QT5 modules : ${QT_MODULE}") if(";${QT_MODULE};" MATCHES ";core;") - find_package(Qt5Core REQUIRED) - if(Qt5Core_FOUND) - MESSAGE(STATUS "found QT core") - LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Core_LIBRARIES}) - add_definitions(${Qt5Core_DEFINITIONS}) - LIST(APPEND INCLUDES_PATHS ${Qt5Core_INCLUDES}) - endif() + find_package(Qt5Core REQUIRED) + if(Qt5Core_FOUND) + MESSAGE(STATUS "found QT core") + LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Core_LIBRARIES}) + add_definitions(${Qt5Core_DEFINITIONS}) + LIST(APPEND INCLUDES_PATHS ${Qt5Core_INCLUDES}) + endif() endif() if(";${QT_MODULE};" MATCHES ";gui;") - find_package(Qt5Gui REQUIRED) - if(Qt5Gui_FOUND) - MESSAGE(STATUS "found QT gui") - LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Gui_LIBRARIES}) - add_definitions(${Qt5Gui_DEFINITIONS}) - LIST(APPEND INCLUDES_PATHS ${Qt5Gui_INCLUDES}) - endif() + find_package(Qt5Gui REQUIRED) + if(Qt5Gui_FOUND) + MESSAGE(STATUS "found QT gui") + LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Gui_LIBRARIES}) + add_definitions(${Qt5Gui_DEFINITIONS}) + LIST(APPEND INCLUDES_PATHS ${Qt5Gui_INCLUDES}) + endif() endif() if(";${QT_MODULE};" MATCHES ";opengl;") find_package(Qt5OpenGL REQUIRED) if(Qt5OpenGL_FOUND) - MESSAGE(STATUS "found QT opengl") + MESSAGE(STATUS "found QT opengl") LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5OpenGL_LIBRARIES}) add_definitions(${Qt5OpenGL_DEFINITIONS}) LIST(APPEND INCLUDE_PATHS ${Qt5OpenGL_INCLUDES}) endif() endif() if(";${QT_MODULE};" MATCHES ";widgets;") - find_package(Qt5Widgets REQUIRED) - if(Qt5Widgets_FOUND) - MESSAGE(STATUS "found QT widgets") - LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Widgets_LIBRARIES}) - add_definitions(${Qt5Widgets_DEFINITIONS}) - LIST(APPEND INCLUDE_PATHS ${Qt5Widgets_INCLUDES}) - endif() + find_package(Qt5Widgets REQUIRED) + if(Qt5Widgets_FOUND) + MESSAGE(STATUS "found QT widgets") + LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Widgets_LIBRARIES}) + add_definitions(${Qt5Widgets_DEFINITIONS}) + LIST(APPEND INCLUDE_PATHS ${Qt5Widgets_INCLUDES}) + endif() endif() if(";${QT_MODULE};" MATCHES ";network;") - find_package(Qt5Network REQUIRED) - if(Qt5Network_FOUND) - MESSAGE(STATUS "found QT network") - LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Network_LIBRARIES}) - add_definitions(${Qt5Network_DEFINITIONS}) - LIST(APPEND INCLUDES_PATHS ${Qt5Network_INCLUDES}) - endif() + find_package(Qt5Network REQUIRED) + if(Qt5Network_FOUND) + MESSAGE(STATUS "found QT network") + LIST(APPEND LIB_DEPENDENCIES_LIST ${Qt5Network_LIBRARIES}) + add_definitions(${Qt5Network_DEFINITIONS}) + LIST(APPEND INCLUDES_PATHS ${Qt5Network_INCLUDES}) + endif() endif() endif() @@ -328,7 +343,7 @@ if(USE_RENDERER) set(USE_OPENGL True) - LIST(APPEND INCLUDE_PATHS "\n" ${PROJECT_SOURCE_DIR}/../sparrowrenderer/src) + LIST(APPEND INCLUDE_PATHS ${PROJECT_SOURCE_DIR}/../sparrowrenderer/src) LIST(APPEND LIB_DEPENDENCIES_LIST ${SPARROW_RENDERER_LIBRARY}) endif()