#
-## (Optional) Generate noisy Makefile
-
-#SET(CMAKE_VERBOSE_MAKEFILE on)
-
## Project name to use as command prefix
PROJECT(SUPERTUX)
+
+### CMake configuration
+
+# allow building with old CMake. Use some bundled modules as a fallback
+CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SUPERTUX_SOURCE_DIR}/mk/cmake)
+
+# move some config clutter to the advanced section
+MARK_AS_ADVANCED(
+ CMAKE_BACKWARDS_COMPATIBILITY
+ CMAKE_BUILD_TYPE
+ CMAKE_INSTALL_PREFIX
+ EXECUTABLE_OUTPUT_PATH
+ LIBRARY_OUTPUT_PATH
+)
+
+
## Some default settings
-OPTION(DEBUG "Build with debugging options" FALSE)
-OPTION(ENABLE_BINRELOC "Enable autopackage's BINRELOC features" FALSE)
-OPTION(APPDATADIR "APPDATADIR for autopackage's BINRELOC features" "${CMAKE_INSTALL_PREFIX}/share")
OPTION(ENABLE_SQDBG "Build squirrel script interpreter with debugging options" FALSE)
OPTION(ENABLE_OPENGL "Enable OpenGL support" TRUE)
OPTION(GENERATE_WRAPPER "Build miniswig and generate the wrapper" ${DEBUG})
-## Search here for additional cmake modules (for finding deps)
-set(CMAKE_MODULE_PATH ${SUPERTUX_SOURCE_DIR}/mk/cmake ${CMAKE_MODULE_PATH})
+## For autopackage
+MARK_AS_ADVANCED(
+ ENABLE_BINRELOC
+ APPDATADIR
+)
+OPTION(ENABLE_BINRELOC "Enable autopackage's BINRELOC features" FALSE)
+OPTION(APPDATADIR "APPDATADIR for autopackage's BINRELOC features" "${CMAKE_INSTALL_PREFIX}/share")
## Check endianess
## Add lots of dependencies to compiler switches
FIND_PACKAGE(SDL REQUIRED)
+MARK_AS_ADVANCED(
+ SDLMAIN_LIBRARY
+ SDL_INCLUDE_DIR
+ SDL_LIBRARY
+)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
LINK_LIBRARIES(${SDL_LIBRARY})
FIND_PACKAGE(SDL_image REQUIRED)
+MARK_AS_ADVANCED(
+ SDLIMAGE_INCLUDE_DIR
+ SDLIMAGE_LIBRARY
+)
INCLUDE_DIRECTORIES(${SDLIMAGE_INCLUDE_DIR})
LINK_LIBRARIES(${SDLIMAGE_LIBRARY})
ENDIF(ENABLE_OPENGL)
FIND_PACKAGE(OpenAL REQUIRED)
+MARK_AS_ADVANCED(
+ OPENAL_INCLUDE_DIR
+ OPENAL_LIBRARY
+)
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
LINK_LIBRARIES(${OPENAL_LIBRARY})
FIND_PACKAGE(OggVorbis REQUIRED)
+MARK_AS_ADVANCED(
+ OGG_LIBRARY
+ VORBISENC_LIBRARY
+ VORBISFILE_LIBRARY
+ VORBIS_INCLUDE_DIR
+ VORBIS_LIBRARY
+)
INCLUDE_DIRECTORIES(${OGGVORBIS_INCLUDE_DIR})
LINK_LIBRARIES(${OGGVORBIS_LIBRARIES})
FIND_PACKAGE(PhysFS REQUIRED)
+MARK_AS_ADVANCED(
+ PHYSFS_INCLUDE_DIR
+ PHYSFS_LIBRARY
+)
INCLUDE_DIRECTORIES(${PHYSFS_INCLUDE_DIR})
LINK_LIBRARIES(${PHYSFS_LIBRARY})
+FIND_PACKAGE(CURL)
+IF(${CURL_FOUND})
+ INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
+ LINK_LIBRARIES(${CURL_LIBRARY})
+ SET(HAVE_LIBCURL TRUE)
+ENDIF(${CURL_FOUND})
+
#FIND_PACKAGE(ICONV REQUIRED)
#INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
#LINK_LIBRARIES(${ICONV_LIBRARY})
# )
#ENDIF(${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND")
+
+## Debug options
+
+OPTION(DEBUG "Build with debugging options" FALSE)
+OPTION(PROFILE "Build with profiling information" FALSE)
+IF(CMAKE_COMPILER_IS_GNUCC)
+ IF (DEBUG)
+ REMOVE_DEFINITIONS(-O2)
+ ADD_DEFINITIONS(-O0 -g -Wall -Werror)
+ ELSE (DEBUG)
+ ADD_DEFINITIONS(-O2)
+ REMOVE_DEFINITIONS(-O0 -g -Wall -Werror)
+ ENDIF (DEBUG)
+ IF (PROFILE)
+ ADD_DEFINITIONS(-pg)
+ ELSE (PROFILE)
+ REMOVE_DEFINITIONS(-pg)
+ ENDIF (PROFILE)
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+
## Some additional compiler switches
+IF(CMAKE_COMPILER_IS_GNUCC)
+ ADD_DEFINITIONS(-fno-strict-aliasing)
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
-ADD_DEFINITIONS(-O2 -fno-strict-aliasing)
## Generate supertux executable in the right place