1
1
cmake_minimum_required (VERSION 2.6)
2
+
2
3
if (${CMAKE_VERSION} STREQUAL "2.8.2" )
3
- # bug http://vtk.org/Bug/view.php?id=11020
4
- message ( WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!" )
5
- endif (${CMAKE_VERSION} STREQUAL "2.8.2" )
4
+ # Bug http://vtk.org/Bug/view.php?id=11020
5
+ message (WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!" )
6
+ endif ()
6
7
7
8
# This can be read from ${PROJECT_NAME} after project() is called
8
- project (minetest)
9
+ project (Minetest)
10
+ string (TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
9
11
10
- set (VERSION_EXTRA "" CACHE STRING "Stuff to append to version string" )
11
12
12
- # Also remember to set PROTOCOL_VERSION in clientserver .h when releasing
13
+ # Also remember to set PROTOCOL_VERSION in network/networkprotocol .h when releasing
13
14
set (VERSION_MAJOR 0)
14
15
set (VERSION_MINOR 4)
15
16
set (VERSION_PATCH 12)
16
- set (VERSION_PATCH_ORIG ${VERSION_PATCH} )
17
+ set (VERSION_EXTRA "" CACHE STRING "Stuff to append to version string" )
17
18
19
+ set (VERSION_STRING "${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} " )
18
20
if (VERSION_EXTRA)
19
- set (VERSION_PATCH ${VERSION_PATCH } -${VERSION_EXTRA} )
21
+ set (VERSION_STRING ${VERSION_STRING } -${VERSION_EXTRA} )
20
22
else ()
21
23
# Comment the following line during release
22
- set (VERSION_PATCH ${VERSION_PATCH } -dev)
24
+ set (VERSION_STRING " ${VERSION_STRING } -dev" )
23
25
endif ()
24
- set (VERSION_STRING "${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} " )
25
26
26
- MESSAGE (STATUS "*** Will build version ${VERSION_STRING} ***" )
27
+ message (STATUS "*** Will build version ${VERSION_STRING} ***" )
27
28
28
- # Configuration options
29
29
30
+ # Configuration options
31
+ set (DEFAULT_RUN_IN_PLACE FALSE )
30
32
if (WIN32 )
31
- set (RUN_IN_PLACE 1 CACHE BOOL "Run directly in source directory structure" )
32
- else ()
33
- set (RUN_IN_PLACE 0 CACHE BOOL "Run directly in source directory structure" )
33
+ set (DEFAULT_RUN_IN_PLACE TRUE )
34
34
endif ()
35
+ set (RUN_IN_PLACE ${DEFAULT_RUN_IN_PLACE} CACHE BOOL
36
+ "Run directly in source directory structure" )
35
37
36
- # RUN_IN_PLACE is exported as a #define value, ensure it's 1/0 instead of ON/OFF
37
- if (RUN_IN_PLACE)
38
- set (RUN_IN_PLACE 1)
39
- else ()
40
- set (RUN_IN_PLACE 0)
41
- endif ()
42
38
43
- set (BUILD_CLIENT 1 CACHE BOOL "Build client" )
44
- if (WIN32 OR APPLE )
45
- set (BUILD_SERVER 0 CACHE BOOL "Build server" )
46
- else ()
47
- set (BUILD_SERVER 1 CACHE BOOL "Build server" )
48
- endif ()
39
+ set (BUILD_CLIENT TRUE CACHE BOOL "Build client" )
40
+ set (BUILD_SERVER FALSE CACHE BOOL "Build server" )
49
41
50
- set (WARN_ALL 1 CACHE BOOL "Enable -Wall for Release build" )
42
+
43
+ set (WARN_ALL TRUE CACHE BOOL "Enable -Wall for Release build" )
51
44
52
45
if (NOT CMAKE_BUILD_TYPE )
53
46
# Default to release
54
47
set (CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE)
55
48
endif ()
56
49
50
+
57
51
# Included stuff
58
52
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR} /cmake/Modules/" )
59
- include ( ${CMAKE_SOURCE_DIR} /cmake/Modules/misc.cmake)
53
+
60
54
61
55
# This is done here so that relative search paths are more reasnable
62
56
find_package (Irrlicht)
63
57
64
- #
58
+
65
59
# Installation
66
- #
67
60
68
61
if (WIN32 )
69
62
set (SHAREDIR "." )
@@ -72,11 +65,11 @@ if(WIN32)
72
65
set (EXAMPLE_CONF_DIR "." )
73
66
set (LOCALEDIR "locale" )
74
67
elseif (APPLE )
75
- set (BUNDLE_NAME ${PROJECT_NAME } .app)
68
+ set (BUNDLE_NAME ${PROJECT_NAME_LOWER } .app)
76
69
set (BUNDLE_PATH "${BUNDLE_NAME} " )
77
70
set (BINDIR ${BUNDLE_NAME} /Contents/MacOS)
78
71
set (SHAREDIR ${BUNDLE_NAME} /Contents/Resources)
79
- set (DOCDIR "${SHAREDIR} /${PROJECT_NAME } " )
72
+ set (DOCDIR "${SHAREDIR} /${PROJECT_NAME_LOWER } " )
80
73
set (EXAMPLE_CONF_DIR ${DOCDIR} )
81
74
set (LOCALEDIR "${SHAREDIR} /locale" )
82
75
elseif (UNIX ) # Linux, BSD etc
@@ -91,15 +84,15 @@ elseif(UNIX) # Linux, BSD etc
91
84
set (ICONDIR "unix/icons" )
92
85
set (LOCALEDIR "locale" )
93
86
else ()
94
- set (SHAREDIR "${CMAKE_INSTALL_PREFIX} /share/${PROJECT_NAME } " )
87
+ set (SHAREDIR "${CMAKE_INSTALL_PREFIX} /share/${PROJECT_NAME_LOWER } " )
95
88
set (BINDIR "${CMAKE_INSTALL_PREFIX} /bin" )
96
- set (DOCDIR "${CMAKE_INSTALL_PREFIX} /share/doc/${PROJECT_NAME } " )
89
+ set (DOCDIR "${CMAKE_INSTALL_PREFIX} /share/doc/${PROJECT_NAME_LOWER } " )
97
90
set (MANDIR "${CMAKE_INSTALL_PREFIX} /share/man" )
98
91
set (EXAMPLE_CONF_DIR ${DOCDIR} )
99
92
set (XDG_APPS_DIR "${CMAKE_INSTALL_PREFIX} /share/applications" )
100
93
set (APPDATADIR "${CMAKE_INSTALL_PREFIX} /share/appdata" )
101
94
set (ICONDIR "${CMAKE_INSTALL_PREFIX} /share/icons" )
102
- set (LOCALEDIR "${CMAKE_INSTALL_PREFIX} /share/${PROJECT_NAME } /locale" )
95
+ set (LOCALEDIR "${CMAKE_INSTALL_PREFIX} /share/${PROJECT_NAME_LOWER } /locale" )
103
96
endif ()
104
97
endif ()
105
98
@@ -108,42 +101,50 @@ if(NOT CUSTOM_SHAREDIR STREQUAL "")
108
101
set (SHAREDIR "${CUSTOM_SHAREDIR} " )
109
102
message (STATUS "Using SHAREDIR=${SHAREDIR} " )
110
103
endif ()
104
+
111
105
set (CUSTOM_BINDIR "" CACHE STRING "Directory to install binaries into" )
112
106
if (NOT CUSTOM_BINDIR STREQUAL "" )
113
107
set (BINDIR "${CUSTOM_BINDIR} " )
114
108
message (STATUS "Using BINDIR=${BINDIR} " )
115
109
endif ()
110
+
116
111
set (CUSTOM_DOCDIR "" CACHE STRING "Directory to install documentation into" )
117
112
if (NOT CUSTOM_DOCDIR STREQUAL "" )
118
113
set (DOCDIR "${CUSTOM_DOCDIR} " )
119
114
message (STATUS "Using DOCDIR=${DOCDIR} " )
120
115
endif ()
116
+
121
117
set (CUSTOM_MANDIR "" CACHE STRING "Directory to install manpages into" )
122
118
if (NOT CUSTOM_MANDIR STREQUAL "" )
123
119
set (MANDIR "${CUSTOM_MANDIR} " )
124
120
message (STATUS "Using MANDIR=${MANDIR} " )
125
121
endif ()
122
+
126
123
set (CUSTOM_EXAMPLE_CONF_DIR "" CACHE STRING "Directory to install example config file into" )
127
124
if (NOT CUSTOM_EXAMPLE_CONF_DIR STREQUAL "" )
128
125
set (EXAMPLE_CONF_DIR "${CUSTOM_EXAMPLE_CONF_DIR} " )
129
126
message (STATUS "Using EXAMPLE_CONF_DIR=${EXAMPLE_CONF_DIR} " )
130
127
endif ()
128
+
131
129
set (CUSTOM_XDG_APPS_DIR "" CACHE STRING "Directory to install .desktop files into" )
132
130
if (NOT CUSTOM_XDG_APPS_DIR STREQUAL "" )
133
131
set (XDG_APPS_DIR "${CUSTOM_XDG_APPS_DIR} " )
134
132
message (STATUS "Using XDG_APPS_DIR=${XDG_APPS_DIR} " )
135
133
endif ()
134
+
136
135
set (CUSTOM_ICONDIR "" CACHE STRING "Directory to install icons into" )
137
136
if (NOT CUSTOM_ICONDIR STREQUAL "" )
138
137
set (ICONDIR "${CUSTOM_ICONDIR} " )
139
138
message (STATUS "Using ICONDIR=${ICONDIR} " )
140
139
endif ()
140
+
141
141
set (CUSTOM_LOCALEDIR "" CACHE STRING "Directory to install l10n files into" )
142
142
if (NOT CUSTOM_LOCALEDIR STREQUAL "" )
143
143
set (LOCALEDIR "${CUSTOM_LOCALEDIR} " )
144
144
message (STATUS "Using LOCALEDIR=${LOCALEDIR} " )
145
145
endif ()
146
146
147
+
147
148
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /builtin" DESTINATION "${SHAREDIR} " )
148
149
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /client" DESTINATION "${SHAREDIR} " )
149
150
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /games/minimal" DESTINATION "${SHAREDIR} /games" )
@@ -183,13 +184,13 @@ if(APPLE)
183
184
install (FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH} /Contents" )
184
185
endif ()
185
186
186
- #
187
+
187
188
# Subdirectories
188
189
# Be sure to add all relevant definitions above this
189
- #
190
190
191
191
add_subdirectory (src)
192
192
193
+
193
194
# CPack
194
195
195
196
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "An InfiniMiner/Minecraft inspired game" )
@@ -202,9 +203,9 @@ set(CPACK_PACKAGE_CONTACT "Perttu Ahola <celeron55@gmail.com>")
202
203
if (WIN32 )
203
204
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
204
205
set (CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME} -${VERSION_STRING} -win64" )
205
- else (CMAKE_SIZEOF_VOID_P EQUAL 8 )
206
+ else ()
206
207
set (CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME} -${VERSION_STRING} -win32" )
207
- endif (CMAKE_SIZEOF_VOID_P EQUAL 8 )
208
+ endif ()
208
209
209
210
set (CPACK_GENERATOR ZIP)
210
211
elseif (APPLE )
@@ -219,14 +220,16 @@ endif()
219
220
220
221
include (CPack)
221
222
223
+
222
224
# Add a target to generate API documentation with Doxygen
223
225
find_package (Doxygen)
224
226
if (DOXYGEN_FOUND)
225
- configure_file (${CMAKE_CURRENT_SOURCE_DIR} /doc /Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR} /doc /Doxyfile @ONLY)
227
+ configure_file (${CMAKE_CURRENT_SOURCE_DIR} /doc /Doxyfile.in
228
+ ${CMAKE_CURRENT_BINARY_DIR} /doc /Doxyfile @ONLY)
226
229
add_custom_target (doc
227
230
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR} /doc /Doxyfile
228
231
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /doc
229
232
COMMENT "Generating API documentation with Doxygen" VERBATIM
230
233
)
231
- endif (DOXYGEN_FOUND )
234
+ endif ()
232
235
0 commit comments