git repos / blockattack-game

blame: CMakeLists.txt

normal view · raw

d3ff6f07 sago007 2016-01-16 14:48 1
cmake_minimum_required(VERSION 2.8.7)
e566d265 sago007 2016-01-16 14:19 2
project (blockattack)
e566d265 sago007 2016-01-16 14:19 3
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${blockattack_SOURCE_DIR}/source/misc/cmake")
e566d265 sago007 2016-01-16 14:19 4
set(BIN_DIR ${blockattack_SOURCE_DIR}/Game)
e566d265 sago007 2016-01-16 14:19 5
5614ab55 sago007 2016-01-17 13:44 6
# Define install paths
2c2c318c sago007 2016-01-17 15:17 7
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE STRING "Install executable in this directory")
5614ab55 sago007 2016-01-17 13:44 8
set(INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/blockattack" CACHE STRING "Install data to this directory")
d3c158b6 sago007 2016-01-17 16:31 9
set(INSTALL_MAN_DIR "/usr/share/man/man6" CACHE STRING "Install the man page to this directory")
eb29cedf sago007 2016-01-17 15:59 10
set(INSTALL_APPLICATIONS_DIR "/usr/share/applications" CACHE STRING "Install the .desktop file to this directory")
eb29cedf sago007 2016-01-17 15:59 11
set(INSTALL_ICONS_DIR "/usr/share/icons/hicolor" CACHE STRING "Install the icon in a subfolder in this directory")
2c2c318c sago007 2016-01-17 15:17 12
daad7b02 sago007 2016-01-19 19:33 13
# This sets up the exe icon for windows under mingw.
daad7b02 sago007 2016-01-19 19:33 14
# Taken from https://hansonry.wordpress.com/2010/12/15/windows-application-icon-using-mingw-and-cmake/
daad7b02 sago007 2016-01-19 19:33 15
set(RES_FILES "")
daad7b02 sago007 2016-01-19 19:33 16
if(MINGW)
daad7b02 sago007 2016-01-19 19:33 17
 set(RES_FILES "${blockattack_SOURCE_DIR}/source/code/winicon.rc")
daad7b02 sago007 2016-01-19 19:33 18
 set(CMAKE_RC_COMPILER_INIT windres)
daad7b02 sago007 2016-01-19 19:33 19
 ENABLE_LANGUAGE(RC)
daad7b02 sago007 2016-01-19 19:33 20
 SET(CMAKE_RC_COMPILE_OBJECT
daad7b02 sago007 2016-01-19 19:33 21
 "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
daad7b02 sago007 2016-01-19 19:33 22
endif(MINGW)
daad7b02 sago007 2016-01-19 19:33 23
daad7b02 sago007 2016-01-19 19:33 24
if (WIN32)
daad7b02 sago007 2016-01-19 19:33 25
SET(GUI_TYPE WIN32)
daad7b02 sago007 2016-01-19 19:33 26
endif()
daad7b02 sago007 2016-01-19 19:33 27
344e2b89 sago007 2016-01-18 21:33 28
if (!WIN32)
2c2c318c sago007 2016-01-17 15:17 29
#The path to the data dir must be compiled into the binary
2c2c318c sago007 2016-01-17 15:17 30
add_definitions(-DSHAREDIR=\"${INSTALL_DATA_DIR}\")
344e2b89 sago007 2016-01-18 21:33 31
endif()
e566d265 sago007 2016-01-16 14:19 32
e566d265 sago007 2016-01-16 14:19 33
#Compiler options
2c2c318c sago007 2016-01-17 15:17 34
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-sign-compare -std=c++11")
e566d265 sago007 2016-01-16 14:19 35
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -g")
e566d265 sago007 2016-01-16 14:19 36
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O2")
e566d265 sago007 2016-01-16 14:19 37
2c2c318c sago007 2016-01-17 15:17 38
#Setup SDL2
e566d265 sago007 2016-01-16 14:19 39
find_package(SDL2 REQUIRED)
e566d265 sago007 2016-01-16 14:19 40
include_directories(${SDL2_INCLUDE_DIR})
5614ab55 sago007 2016-01-17 13:44 41
2c2c318c sago007 2016-01-17 15:17 42
#Setup things that use pkg-config
5614ab55 sago007 2016-01-17 13:44 43
find_package(PkgConfig REQUIRED)
5614ab55 sago007 2016-01-17 13:44 44
pkg_search_module(SDL2MIXER REQUIRED SDL2_mixer)
5614ab55 sago007 2016-01-17 13:44 45
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image)
5614ab55 sago007 2016-01-17 13:44 46
pkg_search_module(SDL2TTF REQUIRED SDL2_ttf)
5614ab55 sago007 2016-01-17 13:44 47
2c2c318c sago007 2016-01-17 15:17 48
#Find all sources but one
e566d265 sago007 2016-01-16 14:19 49
file(GLOB SOURCES "source/code/*.cpp" "source/code/*/*.cpp")
e566d265 sago007 2016-01-16 14:19 50
#I am still trying to get BlockGame to compile as a source file
e566d265 sago007 2016-01-16 14:19 51
list(REMOVE_ITEM SOURCES "${blockattack_SOURCE_DIR}/source/code/BlockGame.cpp")
2c2c318c sago007 2016-01-17 15:17 52
daad7b02 sago007 2016-01-19 19:33 53
2c2c318c sago007 2016-01-17 15:17 54
#Some messages to figure out what cmake does
e566d265 sago007 2016-01-16 14:19 55
message("${SOURCES}")
5614ab55 sago007 2016-01-17 13:44 56
message("${CMAKE_EXE_LINKER_FLAGS}")
2c2c318c sago007 2016-01-17 15:17 57
2c2c318c sago007 2016-01-17 15:17 58
#building/compiling/linking
daad7b02 sago007 2016-01-19 19:33 59
add_executable(blockattack ${GUI_TYPE} ${SOURCES} ${RES_FILES})
e566d265 sago007 2016-01-16 14:19 60
target_link_libraries( blockattack ${SDL2_LIBRARY})
5614ab55 sago007 2016-01-17 13:44 61
target_link_libraries( blockattack physfs jsoncpp)
5614ab55 sago007 2016-01-17 13:44 62
target_link_libraries( blockattack ${SDL2MIXER_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES})
e566d265 sago007 2016-01-16 14:19 63
set_target_properties( blockattack PROPERTIES RUNTIME_OUTPUT_DIRECTORY Game)
2c2c318c sago007 2016-01-17 15:17 64
2c2c318c sago007 2016-01-17 15:17 65
#Installing
2c2c318c sago007 2016-01-17 15:17 66
install(TARGETS blockattack RUNTIME DESTINATION ${INSTALL_BIN_DIR} )
2c2c318c sago007 2016-01-17 15:17 67
install(FILES Game/blockattack.data DESTINATION ${INSTALL_DATA_DIR} )
2c2c318c sago007 2016-01-17 15:17 68
install(FILES man/blockattack.6.gz DESTINATION ${INSTALL_MAN_DIR} )
2c2c318c sago007 2016-01-17 15:17 69
install(FILES source/misc/blockattack.desktop DESTINATION ${INSTALL_APPLICATIONS_DIR} )
d3c158b6 sago007 2016-01-17 16:31 70
install(FILES source/misc/icons/blockattack.xpm DESTINATION "${INSTALL_ICONS_DIR}/200x200/apps" RENAME blockattack.xpm )
d3c158b6 sago007 2016-01-17 16:31 71
install(FILES source/misc/icons/blockattack64.xpm DESTINATION "${INSTALL_ICONS_DIR}/64x64/apps" RENAME blockattack.xpm )
d3c158b6 sago007 2016-01-17 16:31 72
install(FILES source/misc/icons/blockattack32.xpm DESTINATION "${INSTALL_ICONS_DIR}/32x32/apps" RENAME blockattack.xpm )
1970-01-01 00:00 73