e6b70a71b5d7e589889ee8922c6401cbcd06c893
[supertux.git] / CMakeLists.txt
1 #\r
2 # SuperTux - root build script\r
3 # Copyright (C) 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>\r
4 #\r
5 # This program is free software; you can redistribute it and/or modify\r
6 # it under the terms of the GNU General Public License as published by\r
7 # the Free Software Foundation; either version 2 of the License, or\r
8 # (at your option) any later version.\r
9\r
10 # This program is distributed in the hope that it will be useful,\r
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 # GNU General Public License for more details.\r
14\r
15 # You should have received a copy of the GNU General Public License\r
16 # along with this program; if not, write to the Free Software\r
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
18 #\r
19 \r
20 \r
21 #\r
22 # INSTRUCTIONS:\r
23 # -------------\r
24 #\r
25 # Create a directory build/ and change to it. Run\r
26 #\r
27 #   cmake ..\r
28 #\r
29 # This creates a set of Makefiles to build the project. Run\r
30 #\r
31 #   make\r
32 #\r
33 \r
34 \r
35 ## Project name to use as command prefix\r
36 \r
37 PROJECT(SUPERTUX)\r
38 \r
39 \r
40 ### CMake configuration\r
41 \r
42 # allow building with old CMake. Use some bundled modules as a fallback\r
43 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)\r
44 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SUPERTUX_SOURCE_DIR}/mk/cmake)\r
45 \r
46 # move some config clutter to the advanced section\r
47 MARK_AS_ADVANCED(\r
48         CMAKE_BACKWARDS_COMPATIBILITY\r
49         CMAKE_BUILD_TYPE\r
50         CMAKE_INSTALL_PREFIX\r
51         EXECUTABLE_OUTPUT_PATH\r
52         LIBRARY_OUTPUT_PATH\r
53         CMAKE_OSX_ARCHITECTURES\r
54         CMAKE_OSX_SYSROOT\r
55 )\r
56 \r
57 ## For autopackage\r
58 MARK_AS_ADVANCED(\r
59         ENABLE_BINRELOC\r
60         APPDATADIR\r
61 )\r
62 OPTION(ENABLE_BINRELOC "Enable autopackage's BINRELOC features" OFF)\r
63 SET(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/games/supertux2")\r
64 \r
65 ## Check endianess\r
66 \r
67 INCLUDE(TestBigEndian)\r
68 TEST_BIG_ENDIAN(WORDS_BIGENDIAN)\r
69 \r
70 ## Add lots of dependencies to compiler switches\r
71 \r
72 FIND_PACKAGE(SDL REQUIRED)\r
73 MARK_AS_ADVANCED(\r
74         SDLMAIN_LIBRARY\r
75         SDL_INCLUDE_DIR\r
76         SDL_LIBRARY\r
77 )\r
78 INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})\r
79 \r
80 FIND_PACKAGE(SDL_image REQUIRED)\r
81 MARK_AS_ADVANCED(\r
82         SDLIMAGE_INCLUDE_DIR\r
83         SDLIMAGE_LIBRARY\r
84 )\r
85 INCLUDE_DIRECTORIES(${SDLIMAGE_INCLUDE_DIR})\r
86 \r
87 OPTION(ENABLE_OPENGL "Enable OpenGL support" ON)\r
88 IF(ENABLE_OPENGL)\r
89   FIND_PACKAGE(OpenGL)\r
90   IF(${OPENGL_FOUND} STREQUAL "YES")\r
91     INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})\r
92     SET(HAVE_OPENGL TRUE)\r
93   ENDIF(${OPENGL_FOUND} STREQUAL "YES")\r
94 ENDIF(ENABLE_OPENGL)\r
95 \r
96 FIND_PACKAGE(OpenAL REQUIRED)\r
97 MARK_AS_ADVANCED(\r
98         OPENAL_INCLUDE_DIR\r
99         OPENAL_LIBRARY\r
100 )\r
101 INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})\r
102 \r
103 FIND_PACKAGE(OggVorbis REQUIRED)\r
104 MARK_AS_ADVANCED(\r
105         OGG_LIBRARY\r
106         VORBISENC_LIBRARY\r
107         VORBISFILE_LIBRARY\r
108         VORBIS_INCLUDE_DIR\r
109         VORBIS_LIBRARY\r
110 )\r
111 INCLUDE_DIRECTORIES(${OGGVORBIS_INCLUDE_DIR})\r
112 \r
113 FIND_PACKAGE(PhysFS REQUIRED)\r
114 MARK_AS_ADVANCED(\r
115         PHYSFS_INCLUDE_DIR\r
116         PHYSFS_LIBRARY\r
117 )\r
118 INCLUDE_DIRECTORIES(${PHYSFS_INCLUDE_DIR})\r
119 \r
120 FIND_PACKAGE(CURL)\r
121 IF(CURL_FOUND)\r
122   INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})\r
123   SET(HAVE_LIBCURL TRUE)\r
124 ENDIF(CURL_FOUND)\r
125 \r
126 #FIND_PACKAGE(ICONV REQUIRED)\r
127 #INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})\r
128 #LINK_LIBRARIES(${ICONV_LIBRARY})\r
129 \r
130 ## Find revision of WC\r
131 FIND_PACKAGE(Subversion)\r
132 IF(Subversion_FOUND)\r
133   Subversion_WC_INFO(${SUPERTUX_SOURCE_DIR} SUPERTUX)\r
134   SET(REVISION " r${SUPERTUX_WC_REVISION}")\r
135 ENDIF(Subversion_FOUND)\r
136 \r
137 ## Check platform-dependent build options\r
138 \r
139 INCLUDE(ConfigureChecks)\r
140 \r
141 ## Create config.h\r
142 \r
143 configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h )\r
144 include_directories (${CMAKE_BINARY_DIR}/)\r
145 \r
146 ## Also execute instructions in src/squirrel/CMakeLists.txt\r
147 \r
148 ADD_SUBDIRECTORY(src/squirrel)\r
149 \r
150 ## Add squirrel lib dir to search path\r
151 \r
152 LINK_DIRECTORIES(src/squirrel)\r
153 \r
154 ## Some additional include paths\r
155 \r
156 include_directories (${SUPERTUX_SOURCE_DIR}/src/)\r
157 include_directories (${SUPERTUX_SOURCE_DIR}/src/squirrel/include/)\r
158 \r
159 ## Build list of sources for supertux binary\r
160 \r
161 FILE(GLOB SUPERTUX_SOURCES RELATIVE ${SUPERTUX_SOURCE_DIR} src/*.cpp src/*/*.cpp src/obstack/*.c)\r
162 \r
163 ## Precompile "a few" headers in GCC\r
164 OPTION(PRECOMPILE_HEADERS "Precompile headers (experimental)" OFF)\r
165 IF(PRECOMPILE_HEADERS)\r
166   FILE(GLOB PRECOMPILED_HEADERS RELATIVE ${SUPERTUX_SOURCE_DIR} src/badguy/badguy.hpp\r
167            src/scripting/wrapper.hpp src/video/*.hpp src/math/*.hpp)\r
168   FILE(WRITE ${SUPERTUX_BINARY_DIR}/precompile.hh "// Precompiled headers\n")\r
169   FILE(APPEND ${SUPERTUX_BINARY_DIR}/precompile.hh "#ifndef __SUPERTUX_PRECOMPILED_HEADER\n")\r
170   FILE(APPEND ${SUPERTUX_BINARY_DIR}/precompile.hh "#define __SUPERTUX_PRECOMPILED_HEADER\n")\r
171   FOREACH(PRECOMPILED_HEADER ${PRECOMPILED_HEADERS})\r
172     FILE(RELATIVE_PATH PRECOMPILED_HEADER ${SUPERTUX_SOURCE_DIR}/src "${SUPERTUX_SOURCE_DIR}/${PRECOMPILED_HEADER}")\r
173     FILE(APPEND ${SUPERTUX_BINARY_DIR}/precompile.hh "#include \"${PRECOMPILED_HEADER}\"\n")\r
174   ENDFOREACH(PRECOMPILED_HEADER)\r
175   FILE(APPEND ${SUPERTUX_BINARY_DIR}/precompile.hh "#endif /*__SUPERTUX_PRECOMPILED_HEADER*/\n")\r
176   ADD_CUSTOM_COMMAND(\r
177     OUTPUT ${SUPERTUX_BINARY_DIR}/precompile.hh.gch\r
178     COMMAND ${CMAKE_CXX_COMPILER} -x "c++-header" $(CXX_FLAGS) ${SUPERTUX_BINARY_DIR}/precompile.hh\r
179     DEPENDS ${PRECOMPILED_HEADERS}\r
180     COMMENT "Building precompiled header..."\r
181   )\r
182   ## Make certain it is built\r
183   SET(SUPERTUX_SOURCES ${SUPERTUX_BINARY_DIR}/precompile.hh.gch ${SUPERTUX_SOURCES})\r
184   SET(CMAKE_CXX_FLAGS "-include ${SUPERTUX_BINARY_DIR}/precompile.hh" ${CMAKE_CXX_FLAGS})\r
185 ELSE(PRECOMPILE_HEADERS)\r
186   IF(EXISTS ${SUPERTUX_BINARY_DIR}/precompile.hh)\r
187     FILE(REMOVE ${SUPERTUX_BINARY_DIR}/precompile.hh)\r
188   ENDIF(EXISTS ${SUPERTUX_BINARY_DIR}/precompile.hh)\r
189   IF(EXISTS ${SUPERTUX_BINARY_DIR}/precompile.hh.gch)\r
190     FILE(REMOVE ${SUPERTUX_BINARY_DIR}/precompile.hh.gch)\r
191   ENDIF(EXISTS ${SUPERTUX_BINARY_DIR}/precompile.hh.gch)\r
192 ENDIF(PRECOMPILE_HEADERS)\r
193 \r
194 \r
195 ## Debug options\r
196 \r
197 OPTION(DEBUG "Build with debugging options" OFF)\r
198 OPTION(PROFILE "Build with profiling information" OFF)\r
199 OPTION(WERROR "Stops on first compiler warning in debug mode" ON)\r
200 IF(CMAKE_COMPILER_IS_GNUCC)\r
201   ADD_DEFINITIONS(-Wall -W)\r
202   IF (DEBUG)\r
203     REMOVE_DEFINITIONS(-O2)\r
204     ADD_DEFINITIONS(-O0 -g)\r
205     IF(WERROR)\r
206       ADD_DEFINITIONS(-Werror)\r
207     ENDIF(WERROR)\r
208   ELSE (DEBUG)\r
209     ADD_DEFINITIONS(-O2)\r
210     REMOVE_DEFINITIONS(-O0 -g)\r
211   ENDIF (DEBUG)\r
212   IF (PROFILE)\r
213     ADD_DEFINITIONS(-pg)\r
214   ELSE (PROFILE)\r
215     REMOVE_DEFINITIONS(-pg)\r
216   ENDIF (PROFILE)\r
217 ENDIF(CMAKE_COMPILER_IS_GNUCC)\r
218 \r
219 ## Add in squirrel debug stuff\r
220 \r
221 OPTION(ENABLE_SQDBG "Build squirrel script interpreter with debugging options" OFF)\r
222 IF(ENABLE_SQDBG)\r
223   include_directories (${SUPERTUX_SOURCE_DIR}/src/squirrel/)\r
224   FILE(GLOB SQDBG_SOURCES RELATIVE ${SUPERTUX_SOURCE_DIR} src/squirrel/sqdbg/*.cpp)\r
225   SET(SUPERTUX_SOURCES ${SQDBG_SOURCES} ${SUPERTUX_SOURCES})\r
226 ENDIF(ENABLE_SQDBG)\r
227 \r
228 ## Build miniswig and generate miniswig wrapper\r
229 \r
230 OPTION(GENERATE_WRAPPER "Build miniswig and generate the wrapper" ${DEBUG})\r
231 IF(GENERATE_WRAPPER)\r
232   ADD_SUBDIRECTORY(tools/miniswig)\r
233   FILE(GLOB GENERATE_WRAPPER_SOURCES RELATIVE ${SUPERTUX_SOURCE_DIR} src/scripting/*.?pp)\r
234   LIST(REMOVE_ITEM GENERATE_WRAPPER_SOURCES "src/scripting/wrapper.cpp" "src/scripting/wrapper.hpp")\r
235   ADD_CUSTOM_COMMAND(\r
236     OUTPUT ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.hpp\r
237     COMMAND cd ${SUPERTUX_SOURCE_DIR} && ${CMAKE_CXX_COMPILER}\r
238     ARGS -x "c++" -E -CC -DSCRIPTING_API src/scripting/wrapper.interface.hpp -o ${SUPERTUX_BINARY_DIR}/miniswig.tmp\r
239     COMMAND tools/miniswig/miniswig\r
240     ARGS --input miniswig.tmp --output-cpp ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp --output-hpp ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.hpp --module supertux --select-namespace Scripting\r
241     DEPENDS ${GENERATE_WRAPPER_SOURCES} tools/miniswig/miniswig\r
242   )\r
243 ENDIF(GENERATE_WRAPPER)\r
244 \r
245 IF(NOT EXISTS ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp)\r
246   SET(SUPERTUX_SOURCES ${SUPERTUX_SOURCES} ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp)\r
247 ENDIF(NOT EXISTS ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp)\r
248 \r
249 ## If xgettext is available, generate messages.pot for sources\r
250 \r
251 OPTION(GENERATE_MESSAGESPOT "Generate messages.pot files" ${DEBUG})\r
252 IF(GENERATE_MESSAGESPOT)\r
253   MARK_AS_ADVANCED(\r
254     XGETTEXT_EXECUTABLE\r
255   )\r
256   FIND_PROGRAM(XGETTEXT_EXECUTABLE xgettext)\r
257   IF(NOT XGETTEXT_EXECUTABLE)\r
258     MESSAGE(STATUS "Warning: xgettext not found - will not update messages.pot")\r
259   ELSE(NOT XGETTEXT_EXECUTABLE)\r
260     MESSAGE(STATUS "Found xgettext: ${XGETTEXT_EXECUTABLE}")\r
261 \r
262     SET(MESSAGES_POT_FILE ${SUPERTUX_SOURCE_DIR}/data/locale/messages.pot)\r
263     ADD_CUSTOM_COMMAND(\r
264       OUTPUT ${MESSAGES_POT_FILE}\r
265       COMMAND ${XGETTEXT_EXECUTABLE}\r
266       ARGS --keyword=_ --language=C++ --output=${MESSAGES_POT_FILE} ${SUPERTUX_SOURCES}\r
267       DEPENDS ${SUPERTUX_SOURCES}\r
268       WORKING_DIRECTORY ${SUPERTUX_SOURCE_DIR}\r
269       COMMENT "Generating POT file ${MESSAGES_POT_FILE}"\r
270     )\r
271     LIST(APPEND MESSAGES_POT_FILES ${MESSAGES_POT_FILE})\r
272 \r
273     FILE(GLOB SUPERTUX_LEVEL_DIRS RELATIVE ${SUPERTUX_SOURCE_DIR} data/levels/*)\r
274     LIST(REMOVE_ITEM SUPERTUX_LEVEL_DIRS "data/levels/.svn")\r
275     FOREACH(SUPERTUX_LEVEL_DIR ${SUPERTUX_LEVEL_DIRS})\r
276       FILE(GLOB SUPERTUX_LEVELS RELATIVE ${SUPERTUX_SOURCE_DIR} ${SUPERTUX_LEVEL_DIR}/*.stl ${SUPERTUX_LEVEL_DIR}/*.stwm ${SUPERTUX_LEVEL_DIR}/*.txt)\r
277 \r
278       ## Do not add target if SUPERTUX_LEVELS is empty. This is needed for cmake <=2.4\r
279       IF(SUPERTUX_LEVELS)\r
280       SET(MESSAGES_POT_FILE ${SUPERTUX_SOURCE_DIR}/${SUPERTUX_LEVEL_DIR}/messages.pot)\r
281       ADD_CUSTOM_COMMAND(\r
282         OUTPUT ${MESSAGES_POT_FILE}\r
283         COMMAND ${XGETTEXT_EXECUTABLE}\r
284         ARGS --keyword="_:1" --language=Lisp --sort-by-file --output=${MESSAGES_POT_FILE} ${SUPERTUX_LEVELS}\r
285         DEPENDS ${SUPERTUX_LEVELS}\r
286         WORKING_DIRECTORY ${SUPERTUX_SOURCE_DIR}\r
287         COMMENT "Generating POT file ${MESSAGES_POT_FILE}"\r
288       )\r
289       LIST(APPEND MESSAGES_POT_FILES ${MESSAGES_POT_FILE})\r
290       ENDIF(SUPERTUX_LEVELS)\r
291 \r
292     ENDFOREACH(SUPERTUX_LEVEL_DIR)\r
293 \r
294     ADD_CUSTOM_TARGET(\r
295       supertux2-messages ALL \r
296       DEPENDS ${MESSAGES_POT_FILES}\r
297     )\r
298 \r
299   ENDIF(NOT XGETTEXT_EXECUTABLE)\r
300 ENDIF(GENERATE_MESSAGESPOT)\r
301 \r
302 ## Some additional compiler switches\r
303 IF(CMAKE_COMPILER_IS_GNUCC)\r
304   ADD_DEFINITIONS(-fno-strict-aliasing)\r
305 ENDIF(CMAKE_COMPILER_IS_GNUCC)\r
306 \r
307 IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
308   ADD_DEFINITIONS(-DMACOSX)\r
309 ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
310 \r
311 \r
312 ## On Windows, add an icon\r
313 \r
314 IF(WIN32)\r
315   SET(SUPERTUX_SOURCES ${SUPERTUX_SOURCES} ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.rc)\r
316   IF(MINGW)\r
317     ADD_CUSTOM_COMMAND(\r
318     OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o\r
319     COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons -i${CMAKE_CURRENT_SOURCE_DIR}/data/images/engine/icons/supertux.rc -o ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o)\r
320     SET(SUPERTUX_SOURCES ${SUPERTUX_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/supertux_rc.o)\r
321   ELSE(MINGW)\r
322     SET(SUPERTUX_EXE_SRCS ${SUPERTUX_EXE_SRCS} supertux.rc)\r
323   ENDIF(MINGW)\r
324 ENDIF(WIN32)\r
325 \r
326 ## Add binreloc.c if enabled\r
327 IF(ENABLE_BINRELOC)\r
328   SET(SUPERTUX_SOURCES ${SUPERTUX_SOURCES} ${SUPERTUX_SOURCE_DIR}/src/binreloc/binreloc.c)\r
329 ENDIF(ENABLE_BINRELOC)\r
330 \r
331 \r
332 ## Generate supertux executable in the right place\r
333 \r
334 SET(EXECUTABLE_OUTPUT_PATH ${SUPERTUX_SOURCE_DIR})\r
335 \r
336 ## Add target for supertux binary\r
337 \r
338 ADD_EXECUTABLE(supertux2 ${SUPERTUX_SOURCES})\r
339 \r
340 ## Link supertux binary with squirrel and other libraries\r
341 \r
342 TARGET_LINK_LIBRARIES(supertux2 squirrel)\r
343 TARGET_LINK_LIBRARIES(supertux2 ${SDL_LIBRARY})\r
344 TARGET_LINK_LIBRARIES(supertux2 ${SDLIMAGE_LIBRARY})\r
345 TARGET_LINK_LIBRARIES(supertux2 ${OPENAL_LIBRARY})\r
346 TARGET_LINK_LIBRARIES(supertux2 ${OGGVORBIS_LIBRARIES})\r
347 TARGET_LINK_LIBRARIES(supertux2 ${PHYSFS_LIBRARY})\r
348 IF(HAVE_OPENGL)\r
349     TARGET_LINK_LIBRARIES(supertux2 ${OPENGL_LIBRARY})\r
350 ENDIF(HAVE_OPENGL)\r
351 IF(HAVE_LIBCURL)\r
352   TARGET_LINK_LIBRARIES(supertux2 ${CURL_LIBRARY})\r
353 ENDIF(HAVE_LIBCURL)\r
354 \r
355 ## Install stuff\r
356 \r
357 IF(WIN32 AND NOT UNIX)\r
358 \r
359   SET(INSTALL_SUBDIR_BIN ".")\r
360   SET(INSTALL_SUBDIR_SHARE "data/")\r
361   SET(INSTALL_SUBDIR_DOC ".")\r
362 \r
363   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/SDL.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
364   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/SDL_image.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
365   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/iconv.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
366   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/libogg-0.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
367   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/libphysfs-1-0-0.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
368   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/OpenAl32.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
369   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/wrap_oal.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
370   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/libcurl-4.dll DESTINATION ${INSTALL_SUBDIR_BIN})\r
371 \r
372   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.png ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.ico DESTINATION ".")\r
373 \r
374 ELSE(WIN32 AND NOT UNIX)\r
375 IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
376 \r
377   SET(INSTALL_SUBDIR_BIN "SuperTux.app/Contents/MacOS/")\r
378   SET(INSTALL_SUBDIR_SHARE "SuperTux.app/Contents/Resources/data/")\r
379   SET(INSTALL_SUBDIR_DOC "SuperTux.app/Contents/Resources/")\r
380 \r
381   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/tools/darwin/info.plist DESTINATION "SuperTux.app/Contents/")\r
382 \r
383   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.png ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.icns DESTINATION "SuperTux.app/Contents/Resources/")\r
384 \r
385 ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
386 \r
387   SET(INSTALL_SUBDIR_BIN "games/")\r
388   SET(INSTALL_SUBDIR_SHARE "share/games/supertux2/")\r
389   SET(INSTALL_SUBDIR_DOC "share/doc/supertux2/")\r
390 \r
391   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/supertux2.desktop DESTINATION "share/applications")\r
392 \r
393   INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.png ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.xpm DESTINATION "share/pixmaps/")\r
394 \r
395 ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
396 ENDIF(WIN32 AND NOT UNIX)\r
397 \r
398 INSTALL(TARGETS supertux2 DESTINATION ${INSTALL_SUBDIR_BIN})\r
399 \r
400 INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/INSTALL ${SUPERTUX_SOURCE_DIR}/README ${SUPERTUX_SOURCE_DIR}/COPYING ${SUPERTUX_SOURCE_DIR}/WHATSNEW.txt DESTINATION ${INSTALL_SUBDIR_DOC})\r
401 \r
402 INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/credits.txt DESTINATION ${INSTALL_SUBDIR_SHARE})\r
403 INSTALL(DIRECTORY data/images DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
404 INSTALL(DIRECTORY data/levels DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
405 INSTALL(DIRECTORY data/music DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
406 INSTALL(DIRECTORY data/scripts DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
407 INSTALL(DIRECTORY data/speech DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
408 INSTALL(DIRECTORY data/sounds DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
409 INSTALL(DIRECTORY data/locale DESTINATION ${INSTALL_SUBDIR_SHARE} PATTERN ".svn" EXCLUDE)\r
410 \r
411 \r
412 ## CPack/Installation-specific stuff\r
413 \r
414 INCLUDE(InstallRequiredSystemLibraries)\r
415 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Jump'n'Run Game featuring Tux")\r
416 SET(CPACK_PACKAGE_VENDOR "SuperTux Devel Team")\r
417 SET(CPACK_PACKAGE_CONTACT "SuperTux Devel Team <supertux-devel@lists.lethargik.org>")\r
418 SET(CPACK_DEBIAN_PACKAGE_NAME "supertux2")\r
419 SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.5), libgcc1 (>= 1:4.1), libgl1-mesa-glx | libgl1, libogg0 (>= 1.1.3), libopenal0a, libphysfs-1.0-0, libsdl-image1.2 (>= 1.2.5), libsdl1.2debian (>= 1.2.10-1), libstdc++6 (>= 4.1.2), libvorbis0a (>= 1.1.2), libvorbisfile3 (>= 1.1.2), libcurl3 (>= 7.16)")\r
420 SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Classic 2D jump 'n run sidescroller with Tux\n SuperTux is a classic 2D jump 'n run sidescroller game in a similar\n style like the original SuperMario games. This release of SuperTux\n features 9 enemies, 26 playable levels, software and OpenGL rendering\n modes, configurable joystick and keyboard input, new music and\n completely redone graphics.\n .\n This is a development snapshot of SuperTux. It may suffer from\n critical bugs and has not been fully tested. \n .\n Homepage: http://supertux.lethargik.org/")\r
421 SET(CPACK_DEBIAN_PACKAGE_SECTION "games")\r
422 SET(CPACK_RPM_PACKAGE_NAME "supertux2")\r
423 SET(CPACK_RPM_PACKAGE_DESCRIPTION "Classic 2D jump 'n run sidescroller with Tux\n SuperTux is a classic 2D jump 'n run sidescroller game in a similar\n style like the original SuperMario games. This release of SuperTux\n features 9 enemies, 26 playable levels, software and OpenGL rendering\n modes, configurable joystick and keyboard input, new music and\n completely redone graphics.\n .\n This is a development snapshot of SuperTux. It may suffer from\n critical bugs and has not been fully tested. \n .\n Homepage: http://supertux.lethargik.org/")\r
424 SET(CPACK_RPM_PACKAGE_LICENSE "GNU General Public License (GPL)")\r
425 SET(CPACK_RPM_PACKAGE_GROUP "Amusements/Games/Action/Arcade")\r
426 IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
427   # The OS X PackageMaker doesn't seem to like files with no extension\r
428 ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
429   SET(CPACK_PACKAGE_DESCRIPTION_FILE "${SUPERTUX_SOURCE_DIR}/README")\r
430   SET(CPACK_RESOURCE_FILE_LICENSE "${SUPERTUX_SOURCE_DIR}/COPYING")\r
431 ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")\r
432 SET(CPACK_PACKAGE_VERSION_MAJOR "0")\r
433 SET(CPACK_PACKAGE_VERSION_MINOR "3")\r
434 SET(CPACK_PACKAGE_VERSION_PATCH "2-SVN")\r
435 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "SuperTux ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")\r
436 SET(CPACK_PACKAGE_EXECUTABLES "..\\\\supertux2" "SuperTux ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")\r
437 IF(WIN32 AND NOT UNIX)\r
438   SET(CPACK_NSIS_INSTALLED_ICON_NAME "..\\\\supertux2")\r
439   SET(CPACK_NSIS_DISPLAY_NAME "SuperTux ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")\r
440 ELSE(WIN32 AND NOT UNIX)\r
441 ENDIF(WIN32 AND NOT UNIX)\r
442 INCLUDE(CPack)\r
443 \r