2016-05-24 19:02:17 +00:00
|
|
|
|
cmake_minimum_required(VERSION 2.8)
|
2016-04-11 21:38:03 +00:00
|
|
|
|
project(skizzle)
|
2016-03-12 18:03:01 +00:00
|
|
|
|
|
|
|
|
|
# Inclusion des fichiers d'en-tête et de source
|
|
|
|
|
include_directories(include)
|
2016-04-20 16:31:53 +00:00
|
|
|
|
file(GLOB_RECURSE SOURCES "src/*.cpp")
|
2016-03-12 18:03:01 +00:00
|
|
|
|
|
|
|
|
|
# Affichage de tous les avertisements
|
|
|
|
|
if(MSVC)
|
|
|
|
|
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
|
|
|
|
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
|
else()
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
|
|
|
|
endif()
|
|
|
|
|
elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
|
|
|
|
|
endif()
|
|
|
|
|
|
2016-05-23 20:50:03 +00:00
|
|
|
|
# Activation du standard C++11 sur GCC
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
2016-05-28 16:23:09 +00:00
|
|
|
|
include(CheckCXXCompilerFlag)
|
2016-05-23 20:50:03 +00:00
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
2016-05-28 16:23:09 +00:00
|
|
|
|
|
2016-05-23 20:50:03 +00:00
|
|
|
|
if(COMPILER_SUPPORTS_CXX11)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
|
|
|
elseif(COMPILER_SUPPORTS_CXX0X)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
|
|
|
else()
|
2016-05-29 22:33:42 +00:00
|
|
|
|
message(STATUS "Votre version de gcc ne supporte pas C++11. \
|
|
|
|
|
Le projet ne compilera probablement pas. Les versions de gcc \
|
|
|
|
|
compatibles sont 4.6 et supérieures.")
|
2016-05-23 20:50:03 +00:00
|
|
|
|
endif()
|
2016-03-21 18:49:47 +00:00
|
|
|
|
endif()
|
2016-03-12 18:03:01 +00:00
|
|
|
|
|
|
|
|
|
# Recherche des librairies
|
2016-05-29 22:33:42 +00:00
|
|
|
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
|
|
|
|
add_executable(${CMAKE_PROJECT_NAME} ${SOURCES})
|
2016-04-10 10:27:06 +00:00
|
|
|
|
|
2016-04-12 16:11:27 +00:00
|
|
|
|
find_package(SFML 2.3.2 REQUIRED system window graphics network audio)
|
2016-05-29 22:33:42 +00:00
|
|
|
|
find_package(Boost 1.58.0 COMPONENTS system filesystem)
|
2016-04-18 10:05:45 +00:00
|
|
|
|
find_package(SFGUI 0.2.3 REQUIRED)
|
2016-04-10 10:27:06 +00:00
|
|
|
|
|
2016-05-24 19:02:17 +00:00
|
|
|
|
include_directories(${SFML_INCLUDE_DIR})
|
2016-04-10 10:27:06 +00:00
|
|
|
|
include_directories(${Boost_INCLUDE_DIRS})
|
2016-04-18 10:05:45 +00:00
|
|
|
|
include_directories(${SFGUI_INCLUDE_DIR})
|
2016-04-10 10:27:06 +00:00
|
|
|
|
|
2016-05-29 22:33:42 +00:00
|
|
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} ${SFML_LIBRARIES})
|
|
|
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} ${Boost_LIBRARIES})
|
|
|
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} ${SFGUI_LIBRARY})
|
2016-03-12 18:03:01 +00:00
|
|
|
|
|
2016-05-29 22:33:42 +00:00
|
|
|
|
# Informations pour la création des packages
|
|
|
|
|
set(CPACK_PACKAGE_CONTACT "Maëlle Beuret, Rémi Cérès, Mattéo Delabre")
|
|
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Skizzle est un jeu inspiré des jeux de \
|
|
|
|
|
plateformes, des jeux de réflexion et de coopération.")
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS)
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR "1")
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH "0")
|
|
|
|
|
|
|
|
|
|
# Création des packages en fonction du système actuel
|
|
|
|
|
if(WIN32)
|
|
|
|
|
set(CPACK_GENERATOR "NSIS")
|
|
|
|
|
|
|
|
|
|
#############################################
|
|
|
|
|
# TODO: ajout des instructions pour Windows #
|
|
|
|
|
#############################################
|
|
|
|
|
|
|
|
|
|
elseif(UNIX AND NOT APPLE)
|
|
|
|
|
set(CPACK_GENERATOR "DEB")
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "games")
|
|
|
|
|
|
|
|
|
|
# Installation de l'exécutable
|
|
|
|
|
install(TARGETS ${CMAKE_PROJECT_NAME} DESTINATION games)
|
|
|
|
|
|
|
|
|
|
# Installation de la documentation et des ressources
|
|
|
|
|
install(FILES README.md DESTINATION share/${CMAKE_PROJECT_NAME})
|
|
|
|
|
install(DIRECTORY res docs DESTINATION share/${CMAKE_PROJECT_NAME})
|
|
|
|
|
|
|
|
|
|
# Installation des icônes
|
|
|
|
|
install(FILES cmake/${CMAKE_PROJECT_NAME}.svg DESTINATION share/pixmaps)
|
|
|
|
|
install(
|
|
|
|
|
FILES cmake/${CMAKE_PROJECT_NAME}-128.png
|
|
|
|
|
RENAME ${CMAKE_PROJECT_NAME}.png
|
|
|
|
|
DESTINATION share/pixmaps
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
foreach(ICON_SIZE 16 32 48 64 128 256 512)
|
|
|
|
|
install(
|
|
|
|
|
FILES cmake/${CMAKE_PROJECT_NAME}-${ICON_SIZE}.png
|
|
|
|
|
RENAME ${CMAKE_PROJECT_NAME}.png
|
|
|
|
|
DESTINATION share/icons/hicolor/${ICON_SIZE}x${ICON_SIZE}/apps
|
|
|
|
|
)
|
|
|
|
|
endforeach(ICON_SIZE)
|
|
|
|
|
|
|
|
|
|
# Installation du fichier d'application
|
|
|
|
|
install(
|
|
|
|
|
FILES cmake/${CMAKE_PROJECT_NAME}.desktop
|
|
|
|
|
DESTINATION share/applications
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
message(STATUS "Votre plateforme n'a pas été configurée pour produire \
|
|
|
|
|
des packages. La commande 'make package' ne fonctionnera pas, mais le \
|
|
|
|
|
projet peut compiler et vous serez en mesure de l'exécuter.")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
include(CPack)
|