X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=CMakeLists.txt;h=baa37167302bde12d870b8265e0102de99d3a918;hb=423d148f5092d47a5f97ea64b74ad65ca89ba67d;hp=ab32f9b787075e62bd2f00ce6f2f1ab3df38ba3b;hpb=44e69c96435ae9e30bd7be23e272dc7b217b78a9;p=supertux.git diff --git a/CMakeLists.txt b/CMakeLists.txt index ab32f9b78..baa371673 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,10 +34,7 @@ # # FIXME: create config.h from config.h.in -# FIXME: compile miniswig -# FIXME: use miniswig to create squirrel wrappers # FIXME: create messages.pot for levels -# FIXME: provide working install target # @@ -53,8 +50,9 @@ PROJECT(SUPERTUX) set(DEBUG 0 CACHE BOOL "Build with debugging options") set(ENABLE_BINRELOC 0 CACHE BOOL "Enable autopackage's BINRELOC features") -set(APPDATADIR "" CACHE STRING "APPDATADIR for autopackage's BINRELOC features") +set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "APPDATADIR for autopackage's BINRELOC features") set(ENABLE_SQDBG 0 CACHE BOOL "Build squirrel script interpreter with debugging options") +set(ENABLE_OPENGL 1 CACHE BOOL "Enable OpenGL support") ## Search here for additional cmake modules (for finding deps) @@ -70,9 +68,14 @@ FIND_PACKAGE(SDL_image REQUIRED) INCLUDE_DIRECTORIES(${SDLIMAGE_INCLUDE_DIR}) LINK_LIBRARIES(${SDLIMAGE_LIBRARY}) -FIND_PACKAGE(OpenGL REQUIRED) -INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) -LINK_LIBRARIES(${OPENGL_LIBRARY}) +IF(ENABLE_OPENGL) + FIND_PACKAGE(OpenGL) + IF(${OPENGL_FOUND} STREQUAL "YES") + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + LINK_LIBRARIES(${OPENGL_LIBRARY}) + SET(HAVE_OPENGL TRUE) + ENDIF(${OPENGL_FOUND} STREQUAL "YES") +ENDIF(ENABLE_OPENGL) FIND_PACKAGE(OpenAL REQUIRED) INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) @@ -99,6 +102,9 @@ INCLUDE(ConfigureChecks) configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h ) include_directories (${CMAKE_BINARY_DIR}/) +## Also execute instructions in tools/miniswig/CMakeLists.txt +ADD_SUBDIRECTORY(tools/miniswig) + ## Also execute instructions in src/squirrel/CMakeLists.txt ADD_SUBDIRECTORY(src/squirrel) @@ -116,25 +122,38 @@ include_directories (${SUPERTUX_SOURCE_DIR}/src/squirrel/include/) FILE(GLOB SUPERTUX_SOURCES RELATIVE ${SUPERTUX_SOURCE_DIR} src/*.cpp src/audio/*.cpp src/badguy/*.cpp src/binreloc/*.cpp src/control/*.cpp src/gui/*.cpp src/lisp/*.cpp src/math/*.cpp src/object/*.cpp src/physfs/*.cpp src/sprite/*.cpp src/tinygettext/*.cpp src/trigger/*.cpp src/video/*.cpp src/worldmap/*.cpp src/scripting/*.cpp) -## If xgettext is available, generate messages.pot for sources +## Generate miniswig wrapper -FIND_PROGRAM( - XGETTEXT - NAMES "xgettext" - PATHS "/usr/bin" +ADD_CUSTOM_COMMAND( + OUTPUT ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.hpp + COMMAND cd ${SUPERTUX_SOURCE_DIR} && ${CMAKE_CXX_COMPILER} + ARGS -x "c++" -E -CC -DSCRIPTING_API src/scripting/wrapper.interface.hpp -o ${SUPERTUX_BINARY_DIR}/miniswig.tmp + COMMAND tools/miniswig/miniswig + 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 + DEPENDS src/scripting/wrapper.interface.hpp tools/miniswig/miniswig ) -IF(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") - MESSAGE(STATUS "Warning: xgettext not found - will not update messages.pot") -ELSE(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") - MESSAGE(STATUS "Found xgettext: ${XGETTEXT}") - SET(MESSAGES_POT_FILE ${SUPERTUX_SOURCE_DIR}/data/locale/messages.pot) - ADD_CUSTOM_TARGET( - supertux-messages.pot ALL - COMMAND "/usr/bin/xgettext" -k_ -C -o ${MESSAGES_POT_FILE} ${SUPERTUX_SOURCES} - DEPENDS ${SUPERTUX_SOURCES} - WORKING_DIRECTORY ${SUPERTUX_SOURCE_DIR} - ) -ENDIF(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") + +SET(SUPERTUX_SOURCES ${SUPERTUX_SOURCE_DIR}/src/scripting/wrapper.cpp ${SUPERTUX_SOURCES}) + +## If xgettext is available, generate messages.pot for sources + +#FIND_PROGRAM( +# XGETTEXT +# NAMES "xgettext" +# PATHS "/usr/bin" +#) +#IF(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") +# MESSAGE(STATUS "Warning: xgettext not found - will not update messages.pot") +#ELSE(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") +# MESSAGE(STATUS "Found xgettext: ${XGETTEXT}") +# SET(MESSAGES_POT_FILE ${SUPERTUX_SOURCE_DIR}/data/locale/messages.pot) +# ADD_CUSTOM_TARGET( +# supertux-messages.pot ALL +# COMMAND "/usr/bin/xgettext" -k_ -C -o ${MESSAGES_POT_FILE} ${SUPERTUX_SOURCES} +# DEPENDS ${SUPERTUX_SOURCES} +# WORKING_DIRECTORY ${SUPERTUX_SOURCE_DIR} +# ) +#ENDIF(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND") ## Some additional compiler switches @@ -142,18 +161,36 @@ ADD_DEFINITIONS(-O2 -fno-strict-aliasing) ## Add target for supertux binary -ADD_EXECUTABLE(supertux ${SUPERTUX_SOURCES} ) +ADD_EXECUTABLE(supertux2 ${SUPERTUX_SOURCES}) ## Link supertux binary with squirrel -TARGET_LINK_LIBRARIES(supertux squirrel) +TARGET_LINK_LIBRARIES(supertux2 squirrel) ## After building, copy binary to source root ADD_CUSTOM_COMMAND( - TARGET supertux + TARGET supertux2 POST_BUILD COMMAND ${CMAKE_COMMAND} - ARGS -E copy supertux ${SUPERTUX_SOURCE_DIR}/supertux + ARGS -E copy supertux2 ${SUPERTUX_SOURCE_DIR}/supertux2 ) +## Install stuff + +INSTALL(TARGETS supertux2 DESTINATION bin) + +INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.png ${SUPERTUX_SOURCE_DIR}/data/images/engine/icons/supertux.xpm DESTINATION share/pixmaps) + +INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/supertux2.desktop DESTINATION share/applications) + +INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/INSTALL ${SUPERTUX_SOURCE_DIR}/README ${SUPERTUX_SOURCE_DIR}/COPYING ${SUPERTUX_SOURCE_DIR}/WHATSNEW.txt DESTINATION doc/supertux-0.3.x) + +INSTALL(FILES ${SUPERTUX_SOURCE_DIR}/data/credits.txt ${SUPERTUX_SOURCE_DIR}/data/camera.cfg DESTINATION share/supertux2) +INSTALL(DIRECTORY data/images DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/levels DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/music DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/scripts DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/speech DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/sounds DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE) +INSTALL(DIRECTORY data/locale DESTINATION share/supertux2 PATTERN ".svn" EXCLUDE)