| 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) |
| f31fade1 |
sago007 |
2016-02-06 21:37 |
26 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") |
| daad7b02 |
sago007 |
2016-01-19 19:33 |
27 |
endif() |
| daad7b02 |
sago007 |
2016-01-19 19:33 |
28 |
|
| 242996f8 |
sago007 |
2016-02-06 10:13 |
29 |
if (NOT WIN32) |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
30 |
#The path to the data dir must be compiled into the binary |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
31 |
add_definitions(-DSHAREDIR=\"${INSTALL_DATA_DIR}\") |
| 344e2b89 |
sago007 |
2016-01-18 21:33 |
32 |
endif() |
| e566d265 |
sago007 |
2016-01-16 14:19 |
33 |
|
| e566d265 |
sago007 |
2016-01-16 14:19 |
34 |
#Compiler options |
| daa8f1cf |
sago007 |
2016-01-23 10:57 |
35 |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11") |
| e566d265 |
sago007 |
2016-01-16 14:19 |
36 |
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -g") |
| e566d265 |
sago007 |
2016-01-16 14:19 |
37 |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O2") |
| e566d265 |
sago007 |
2016-01-16 14:19 |
38 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
39 |
#Setup SDL2 |
| e566d265 |
sago007 |
2016-01-16 14:19 |
40 |
find_package(SDL2 REQUIRED) |
| e566d265 |
sago007 |
2016-01-16 14:19 |
41 |
include_directories(${SDL2_INCLUDE_DIR}) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
42 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
43 |
#Setup things that use pkg-config |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
44 |
find_package(PkgConfig REQUIRED) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
45 |
pkg_search_module(SDL2MIXER REQUIRED SDL2_mixer) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
46 |
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
47 |
pkg_search_module(SDL2TTF REQUIRED SDL2_ttf) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
48 |
|
| c8b43ea3 |
sago007 |
2016-02-02 18:20 |
49 |
find_package(Boost COMPONENTS program_options REQUIRED) |
| c8b43ea3 |
sago007 |
2016-02-02 18:20 |
50 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
51 |
#Find all sources but one |
| bdb080e6 |
sago007 |
2016-01-22 18:35 |
52 |
file(GLOB SOURCES "source/code/*.cpp" "source/code/*/*.cpp" "source/code/Libs/*.c") |
| e566d265 |
sago007 |
2016-01-16 14:19 |
53 |
#I am still trying to get BlockGame to compile as a source file |
| 1f6aecf9 |
sago007 |
2016-02-20 12:53 |
54 |
#list(REMOVE_ITEM SOURCES "${blockattack_SOURCE_DIR}/source/code/BlockGame.cpp") |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
55 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
56 |
#Some messages to figure out what cmake does |
| e566d265 |
sago007 |
2016-01-16 14:19 |
57 |
message("${SOURCES}") |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
58 |
message("${CMAKE_EXE_LINKER_FLAGS}") |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
59 |
|
| 7a956470 |
sago007 |
2016-02-14 17:09 |
60 |
include_directories("source/code/Libs/include") |
| 7a956470 |
sago007 |
2016-02-14 17:09 |
61 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
62 |
#building/compiling/linking |
| daad7b02 |
sago007 |
2016-01-19 19:33 |
63 |
add_executable(blockattack ${GUI_TYPE} ${SOURCES} ${RES_FILES}) |
| e566d265 |
sago007 |
2016-01-16 14:19 |
64 |
target_link_libraries( blockattack ${SDL2_LIBRARY}) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
65 |
target_link_libraries( blockattack physfs jsoncpp) |
| 5614ab55 |
sago007 |
2016-01-17 13:44 |
66 |
target_link_libraries( blockattack ${SDL2MIXER_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES}) |
| c8b43ea3 |
sago007 |
2016-02-02 18:20 |
67 |
target_link_libraries( blockattack ${Boost_LIBRARIES} ) |
| e566d265 |
sago007 |
2016-01-16 14:19 |
68 |
set_target_properties( blockattack PROPERTIES RUNTIME_OUTPUT_DIRECTORY Game) |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
69 |
|
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
70 |
#Installing |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
71 |
install(TARGETS blockattack RUNTIME DESTINATION ${INSTALL_BIN_DIR} ) |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
72 |
install(FILES Game/blockattack.data DESTINATION ${INSTALL_DATA_DIR} ) |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
73 |
install(FILES man/blockattack.6.gz DESTINATION ${INSTALL_MAN_DIR} ) |
| 2c2c318c |
sago007 |
2016-01-17 15:17 |
74 |
install(FILES source/misc/blockattack.desktop DESTINATION ${INSTALL_APPLICATIONS_DIR} ) |
| d3c158b6 |
sago007 |
2016-01-17 16:31 |
75 |
install(FILES source/misc/icons/blockattack.xpm DESTINATION "${INSTALL_ICONS_DIR}/200x200/apps" RENAME blockattack.xpm ) |
| d3c158b6 |
sago007 |
2016-01-17 16:31 |
76 |
install(FILES source/misc/icons/blockattack64.xpm DESTINATION "${INSTALL_ICONS_DIR}/64x64/apps" RENAME blockattack.xpm ) |
| d3c158b6 |
sago007 |
2016-01-17 16:31 |
77 |
install(FILES source/misc/icons/blockattack32.xpm DESTINATION "${INSTALL_ICONS_DIR}/32x32/apps" RENAME blockattack.xpm ) |
|
|
1970-01-01 00:00 |
78 |
|