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
bbd397a5 sago007 2019-05-25 12:49 6
SET(CPACK_PACKAGE_VERSION "2.5.0")
b1a99ae7 Poul Sander 2016-05-27 21:08 7
SET(CPACK_PACKAGE_VERSION_MAJOR "2")
98294fa5 sago007 2019-03-10 14:55 8
SET(CPACK_PACKAGE_VERSION_MINOR "5")
b1a99ae7 Poul Sander 2016-05-27 21:08 9
SET(CPACK_PACKAGE_VERSION_PATCH "0")
b1a99ae7 Poul Sander 2016-05-27 21:08 10
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Block Attack - Rise of the Blocks ${CPACK_PACKAGE_VERSION}")
b1a99ae7 Poul Sander 2016-05-27 21:08 11
SET(CPACK_PACKAGE_VENDOR "Poul Sander")
b1a99ae7 Poul Sander 2016-05-27 21:08 12
INCLUDE(CPack)
b1a99ae7 Poul Sander 2016-05-27 21:08 13
5614ab55 sago007 2016-01-17 13:44 14
# Define install paths
b1a99ae7 Poul Sander 2016-05-27 21:08 15
set(INSTALL_BIN_DIR "bin" CACHE STRING "Install executable in this directory")
b1a99ae7 Poul Sander 2016-05-27 21:08 16
set(INSTALL_DATA_DIR "share/blockattack" CACHE STRING "Install data to this directory")
b240dbfa Michael Straube 2017-01-09 18:25 17
set(INSTALL_MAN_DIR "share/man/man6" CACHE STRING "Install the man page to this directory")
b240dbfa Michael Straube 2017-01-09 18:25 18
set(INSTALL_APPLICATIONS_DIR "share/applications" CACHE STRING "Install the .desktop file to this directory")
b240dbfa Michael Straube 2017-01-09 18:25 19
set(INSTALL_ICONS_DIR "share/icons/hicolor" CACHE STRING "Install the icon in a subfolder in this directory")
9779d6e3 sago007 2016-04-30 11:35 20
set(INSTALL_LOCALE_DIR "${INSTALL_DATA_DIR}/locale/" CACHE STRING "Install translation to this dir")
28735382 sago007 2019-04-28 11:01 21
set(INSTALL_METAINFO_DIR "share/metainfo" CACHE STRING "Install appstream matedata to this directory")
2c2c318c sago007 2016-01-17 15:17 22
daad7b02 sago007 2016-01-19 19:33 23
# This sets up the exe icon for windows under mingw.
daad7b02 sago007 2016-01-19 19:33 24
# Taken from https://hansonry.wordpress.com/2010/12/15/windows-application-icon-using-mingw-and-cmake/
daad7b02 sago007 2016-01-19 19:33 25
set(RES_FILES "")
daad7b02 sago007 2016-01-19 19:33 26
if(MINGW)
daad7b02 sago007 2016-01-19 19:33 27
 set(RES_FILES "${blockattack_SOURCE_DIR}/source/code/winicon.rc")
daad7b02 sago007 2016-01-19 19:33 28
 set(CMAKE_RC_COMPILER_INIT windres)
daad7b02 sago007 2016-01-19 19:33 29
 ENABLE_LANGUAGE(RC)
daad7b02 sago007 2016-01-19 19:33 30
 SET(CMAKE_RC_COMPILE_OBJECT
daad7b02 sago007 2016-01-19 19:33 31
 "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
daad7b02 sago007 2016-01-19 19:33 32
endif(MINGW)
daad7b02 sago007 2016-01-19 19:33 33
daad7b02 sago007 2016-01-19 19:33 34
if (WIN32)
6b427a55 Poul Sander 2019-02-13 17:49 35
      SET(GUI_TYPE WIN32)
6b427a55 Poul Sander 2019-02-13 17:49 36
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
6b427a55 Poul Sander 2019-02-13 17:49 37
	if(NOT _WIN32_WINNT AND NOT WINVER)
6b427a55 Poul Sander 2019-02-13 17:49 38
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=0x0601 -DWINVER=0x0601")
6b427a55 Poul Sander 2019-02-13 17:49 39
	endif()
daad7b02 sago007 2016-01-19 19:33 40
endif()
daad7b02 sago007 2016-01-19 19:33 41
ab86a00f sago007 2017-08-31 19:08 42
if (NOT WIN32 AND NOT STANDALONE)
2c2c318c sago007 2016-01-17 15:17 43
#The path to the data dir must be compiled into the binary
b1a99ae7 Poul Sander 2016-05-27 21:08 44
add_definitions(-DSHAREDIR=\"${CMAKE_INSTALL_PREFIX}/${INSTALL_DATA_DIR}\")
b1a99ae7 Poul Sander 2016-05-27 21:08 45
add_definitions(-DLOCALEDIR=\"${CMAKE_INSTALL_PREFIX}/${INSTALL_LOCALE_DIR}\")
344e2b89 sago007 2016-01-18 21:33 46
endif()
e566d265 sago007 2016-01-16 14:19 47
e566d265 sago007 2016-01-16 14:19 48
#Compiler options
e49cda71 Poul Sander 2019-05-22 15:48 49
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++11")
d9476292 sago007 2016-04-29 17:20 50
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -g -DDEBUG")
e566d265 sago007 2016-01-16 14:19 51
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O2")
e566d265 sago007 2016-01-16 14:19 52
40989ad4 sago007 2017-12-05 22:15 53
#Newer versions of gcc fails for Cereal.
40989ad4 sago007 2017-12-05 22:15 54
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-fallthrough")
40989ad4 sago007 2017-12-05 22:15 55
2c2c318c sago007 2016-01-17 15:17 56
#Setup SDL2
e566d265 sago007 2016-01-16 14:19 57
find_package(SDL2 REQUIRED)
e566d265 sago007 2016-01-16 14:19 58
include_directories(${SDL2_INCLUDE_DIR})
5614ab55 sago007 2016-01-17 13:44 59
2c2c318c sago007 2016-01-17 15:17 60
#Setup things that use pkg-config
5614ab55 sago007 2016-01-17 13:44 61
find_package(PkgConfig REQUIRED)
5614ab55 sago007 2016-01-17 13:44 62
pkg_search_module(SDL2MIXER REQUIRED SDL2_mixer)
5614ab55 sago007 2016-01-17 13:44 63
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image)
5614ab55 sago007 2016-01-17 13:44 64
pkg_search_module(SDL2TTF REQUIRED SDL2_ttf)
5614ab55 sago007 2016-01-17 13:44 65
c8b43ea3 sago007 2016-02-02 18:20 66
find_package(Boost COMPONENTS program_options REQUIRED)
c8b43ea3 sago007 2016-02-02 18:20 67
2c2c318c sago007 2016-01-17 15:17 68
#Find all sources but one
bdb080e6 sago007 2016-01-22 18:35 69
file(GLOB SOURCES "source/code/*.cpp" "source/code/*/*.cpp" "source/code/Libs/*.c")
e566d265 sago007 2016-01-16 14:19 70
#I am still trying to get BlockGame to compile as a source file
1f6aecf9 sago007 2016-02-20 12:53 71
#list(REMOVE_ITEM SOURCES "${blockattack_SOURCE_DIR}/source/code/BlockGame.cpp")
2c2c318c sago007 2016-01-17 15:17 72
2c2c318c sago007 2016-01-17 15:17 73
#Some messages to figure out what cmake does
e566d265 sago007 2016-01-16 14:19 74
message("${SOURCES}")
5614ab55 sago007 2016-01-17 13:44 75
message("${CMAKE_EXE_LINKER_FLAGS}")
2c2c318c sago007 2016-01-17 15:17 76
7a956470 sago007 2016-02-14 17:09 77
include_directories("source/code/Libs/include")
98273512 sago007 2017-03-18 12:49 78
include_directories("source/code/Libs/include/cereal/external")  #Contains rapidjson
7a956470 sago007 2016-02-14 17:09 79
2c2c318c sago007 2016-01-17 15:17 80
#building/compiling/linking
daad7b02 sago007 2016-01-19 19:33 81
add_executable(blockattack ${GUI_TYPE} ${SOURCES} ${RES_FILES})
e566d265 sago007 2016-01-16 14:19 82
target_link_libraries( blockattack ${SDL2_LIBRARY})
cabda704 Poul Sander 2017-01-09 17:28 83
target_link_libraries( blockattack physfs)
5614ab55 sago007 2016-01-17 13:44 84
target_link_libraries( blockattack ${SDL2MIXER_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES})
c8b43ea3 sago007 2016-02-02 18:20 85
target_link_libraries( blockattack ${Boost_LIBRARIES} )
e566d265 sago007 2016-01-16 14:19 86
set_target_properties( blockattack PROPERTIES RUNTIME_OUTPUT_DIRECTORY Game)
2c2c318c sago007 2016-01-17 15:17 87
2c2c318c sago007 2016-01-17 15:17 88
#Installing
2c2c318c sago007 2016-01-17 15:17 89
install(TARGETS blockattack RUNTIME DESTINATION ${INSTALL_BIN_DIR} )
2c2c318c sago007 2016-01-17 15:17 90
install(FILES Game/blockattack.data DESTINATION ${INSTALL_DATA_DIR} )
2c2c318c sago007 2016-01-17 15:17 91
install(FILES man/blockattack.6.gz DESTINATION ${INSTALL_MAN_DIR} )
2c2c318c sago007 2016-01-17 15:17 92
install(FILES source/misc/blockattack.desktop DESTINATION ${INSTALL_APPLICATIONS_DIR} )
28735382 sago007 2019-04-28 11:01 93
install(FILES source/misc/net.blockattack.game.metainfo.xml DESTINATION ${INSTALL_METAINFO_DIR} )
a3d544be sago007 2016-04-17 14:07 94
install(FILES source/misc/icons/blockattack16.xpm DESTINATION "${INSTALL_ICONS_DIR}/16x16/apps" RENAME blockattack.xpm )
a3d544be sago007 2016-04-17 14:07 95
install(FILES source/misc/icons/blockattack48.xpm DESTINATION "${INSTALL_ICONS_DIR}/48x48/apps" RENAME blockattack.xpm )
a3d544be sago007 2016-04-17 14:07 96
install(FILES source/misc/icons/blockattack128.xpm DESTINATION "${INSTALL_ICONS_DIR}/128x128/apps" RENAME blockattack.xpm )
a3d544be sago007 2016-04-17 14:07 97
install(FILES source/misc/icons/blockattack256.xpm DESTINATION "${INSTALL_ICONS_DIR}/256x256/apps" RENAME blockattack.xpm )
d3c158b6 sago007 2016-01-17 16:31 98
install(FILES source/misc/icons/blockattack64.xpm DESTINATION "${INSTALL_ICONS_DIR}/64x64/apps" RENAME blockattack.xpm )
d3c158b6 sago007 2016-01-17 16:31 99
install(FILES source/misc/icons/blockattack32.xpm DESTINATION "${INSTALL_ICONS_DIR}/32x32/apps" RENAME blockattack.xpm )
b1a99ae7 Poul Sander 2016-05-27 21:08 100
install(DIRECTORY source/misc/translation/locale/ DESTINATION "${INSTALL_LOCALE_DIR}")
1970-01-01 00:00 101